@json-editor/json-editor 1.4.0-beta.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/.claude/settings.local.json +8 -0
  2. package/.env +2 -0
  3. package/.env-dist +2 -0
  4. package/.eslintrc +10 -0
  5. package/.github/PULL_REQUEST_TEMPLATE.md +9 -0
  6. package/.github/workflows/build.yml +70 -0
  7. package/.travis.yml +62 -16
  8. package/CHANGELOG.md +483 -113
  9. package/CONTRIBUTING.md +43 -4
  10. package/Makefile +26 -0
  11. package/README.md +632 -121
  12. package/README_ADDON.md +577 -0
  13. package/UPGRADING.md +46 -0
  14. package/build/CssToJson.js +55 -0
  15. package/codecept.conf.js +35 -0
  16. package/config/.eslintrc +7 -0
  17. package/config/codeceptjs_helpers.js +146 -0
  18. package/config/helpers.js +10 -0
  19. package/config/karma.conf.js +89 -0
  20. package/config/readme.md +31 -0
  21. package/config/webpack.common.js +71 -0
  22. package/config/webpack.dev.js +15 -0
  23. package/config/webpack.nonmin.js +19 -0
  24. package/config/webpack.prod.js +24 -0
  25. package/dist/jsoneditor.js +2 -11550
  26. package/dist/jsoneditor.js.LICENSE.txt +15 -0
  27. package/dist/nonmin/jsoneditor.js +31392 -0
  28. package/dist/nonmin/jsoneditor.js.map +1 -0
  29. package/docs/basic.html +2 -2
  30. package/docs/basic_person.json +2 -1
  31. package/docs/choices.html +86 -0
  32. package/docs/cleave.html +11 -19
  33. package/docs/colorpicker.html +194 -0
  34. package/docs/css_integration.html +56 -54
  35. package/docs/custom-editor.html +92 -0
  36. package/docs/datetime.html +48 -21
  37. package/docs/describedby.html +42 -35
  38. package/docs/enumsource.html +67 -0
  39. package/docs/form-submission.html +162 -0
  40. package/docs/imask.html +192 -0
  41. package/docs/index.html +600 -582
  42. package/docs/materialize_css.html +1 -1
  43. package/docs/meta-schema.html +793 -0
  44. package/docs/meta_schema.json +446 -400
  45. package/docs/polyfills/assign.js +29 -0
  46. package/docs/radio.html +9 -17
  47. package/docs/recursive.html +15 -17
  48. package/docs/scripts/ajv-validator.js +8695 -0
  49. package/docs/select2.html +15 -9
  50. package/docs/selectize.html +11 -9
  51. package/docs/signature.html +12 -11
  52. package/docs/starrating.html +5 -17
  53. package/docs/upload.html +33 -23
  54. package/docs/uuid.html +70 -0
  55. package/docs/wysiwyg.html +14 -7
  56. package/jasmine.json +11 -0
  57. package/package.json +74 -25
  58. package/release-notes.md +90 -0
  59. package/src/core.js +411 -611
  60. package/src/defaults.js +381 -327
  61. package/src/editor.js +733 -544
  62. package/src/editors/ace.js +90 -0
  63. package/src/editors/array/choices.js +104 -0
  64. package/src/editors/array/select2.js +112 -0
  65. package/src/editors/array/selectize.js +107 -130
  66. package/src/editors/array.css +9 -0
  67. package/src/editors/array.css.js +3 -0
  68. package/src/editors/array.js +812 -695
  69. package/src/editors/autocomplete.js +59 -0
  70. package/src/editors/base64.js +148 -129
  71. package/src/editors/button.js +104 -0
  72. package/src/editors/checkbox.js +111 -76
  73. package/src/editors/choices.css +3 -0
  74. package/src/editors/choices.css.js +3 -0
  75. package/src/editors/choices.js +71 -0
  76. package/src/editors/colorpicker.js +105 -0
  77. package/src/editors/datetime.js +93 -79
  78. package/src/editors/describedby.js +141 -125
  79. package/src/editors/enum.js +131 -116
  80. package/src/editors/hidden.js +100 -86
  81. package/src/editors/index.js +81 -0
  82. package/src/editors/info.js +28 -0
  83. package/src/editors/integer.js +21 -8
  84. package/src/editors/ip.js +36 -0
  85. package/src/editors/jodit.js +66 -0
  86. package/src/editors/multiple.js +380 -241
  87. package/src/editors/multiselect.js +207 -207
  88. package/src/editors/null.js +15 -11
  89. package/src/editors/number.js +39 -30
  90. package/src/editors/object.css +41 -0
  91. package/src/editors/object.css.js +3 -0
  92. package/src/editors/object.js +1190 -1068
  93. package/src/editors/radio.js +117 -101
  94. package/src/editors/sceditor.js +74 -0
  95. package/src/editors/select.js +318 -342
  96. package/src/editors/select2.js +112 -0
  97. package/src/editors/selectize.js +89 -338
  98. package/src/editors/signature.js +100 -104
  99. package/src/editors/simplemde.js +103 -0
  100. package/src/{styles → editors}/starrating.css +11 -2
  101. package/src/editors/starrating.css.js +3 -0
  102. package/src/editors/starrating.js +126 -95
  103. package/src/editors/stepper.js +27 -0
  104. package/src/editors/string.js +352 -426
  105. package/src/editors/table.js +486 -410
  106. package/src/editors/upload.js +297 -131
  107. package/src/editors/uuid.js +49 -0
  108. package/src/iconlib.js +22 -27
  109. package/src/iconlibs/bootstrap.js +28 -0
  110. package/src/iconlibs/bootstrap2.js +28 -17
  111. package/src/iconlibs/bootstrap3.js +28 -17
  112. package/src/iconlibs/fontawesome3.js +28 -17
  113. package/src/iconlibs/fontawesome4.js +28 -18
  114. package/src/iconlibs/fontawesome5.js +28 -18
  115. package/src/iconlibs/foundation2.js +24 -17
  116. package/src/iconlibs/foundation3.js +28 -17
  117. package/src/iconlibs/index.js +27 -0
  118. package/src/iconlibs/jqueryui.js +28 -17
  119. package/src/iconlibs/materialicons.js +49 -44
  120. package/src/iconlibs/openiconic.js +28 -0
  121. package/src/iconlibs/spectre.js +28 -0
  122. package/src/resolvers.js +135 -0
  123. package/src/schemaloader.js +639 -0
  124. package/src/style.css +157 -0
  125. package/src/style.css.js +3 -0
  126. package/src/templates/default.js +46 -51
  127. package/src/templates/ejs.js +8 -10
  128. package/src/templates/handlebars.js +1 -3
  129. package/src/templates/hogan.js +7 -9
  130. package/src/templates/index.js +21 -0
  131. package/src/templates/lodash.js +6 -8
  132. package/src/templates/markup.js +6 -8
  133. package/src/templates/mustache.js +6 -8
  134. package/src/templates/swig.js +1 -3
  135. package/src/templates/underscore.js +6 -8
  136. package/src/theme.js +717 -433
  137. package/src/themes/barebones.css +35 -0
  138. package/src/themes/barebones.css.js +3 -0
  139. package/src/themes/barebones.js +31 -0
  140. package/src/themes/bootstrap2.js +302 -265
  141. package/src/themes/bootstrap3.css +53 -0
  142. package/src/themes/bootstrap3.css.js +3 -0
  143. package/src/themes/bootstrap3.js +355 -262
  144. package/src/themes/bootstrap4.css +89 -0
  145. package/src/themes/bootstrap4.css.js +3 -0
  146. package/src/themes/bootstrap4.js +743 -237
  147. package/src/themes/bootstrap5.css +97 -0
  148. package/src/themes/bootstrap5.css.js +3 -0
  149. package/src/themes/bootstrap5.js +687 -0
  150. package/src/themes/foundation.js +535 -472
  151. package/src/themes/html.css +60 -0
  152. package/src/themes/html.css.js +3 -0
  153. package/src/themes/html.js +69 -82
  154. package/src/themes/index.js +29 -0
  155. package/src/themes/jqueryui.js +181 -167
  156. package/src/themes/materialize.js +263 -292
  157. package/src/themes/spectre.css +208 -0
  158. package/src/themes/spectre.css.js +3 -0
  159. package/src/themes/spectre.js +443 -0
  160. package/src/themes/tailwind.css +303 -0
  161. package/src/themes/tailwind.css.js +3 -0
  162. package/src/themes/tailwind.js +469 -0
  163. package/src/utilities.js +127 -68
  164. package/src/validator.js +909 -565
  165. package/src/validators/ip-validator.js +51 -0
  166. package/tests/Dockerfile +3 -0
  167. package/tests/README.md +25 -5
  168. package/tests/codeceptjs/codecept.json +9 -2
  169. package/tests/codeceptjs/constrains/contains_test.js +37 -0
  170. package/tests/codeceptjs/constrains/dependentRequired_test.js +33 -0
  171. package/tests/codeceptjs/constrains/dependentSchemas_test.js +16 -0
  172. package/tests/codeceptjs/constrains/if-then-else_test.js +186 -0
  173. package/tests/codeceptjs/core_test.js +534 -63
  174. package/tests/codeceptjs/editors/advanced_test.js +12 -9
  175. package/tests/codeceptjs/editors/array_any_of_test.js +50 -0
  176. package/tests/codeceptjs/editors/array_test.js +923 -657
  177. package/tests/codeceptjs/editors/autocomplete_test.js +15 -0
  178. package/tests/codeceptjs/editors/button_test.js +50 -0
  179. package/tests/codeceptjs/editors/checkbox_test.js +21 -6
  180. package/tests/codeceptjs/editors/colorpicker_test.js +29 -0
  181. package/tests/codeceptjs/editors/datetime_test.js +33 -0
  182. package/tests/codeceptjs/editors/inheritance_test.js +10 -0
  183. package/tests/codeceptjs/editors/integer_test.js +82 -64
  184. package/tests/codeceptjs/editors/jodit_test.js +23 -0
  185. package/tests/codeceptjs/editors/multiple_test.js +27 -0
  186. package/tests/codeceptjs/editors/multiselect_test.js +6 -7
  187. package/tests/codeceptjs/editors/number_test.js +75 -60
  188. package/tests/codeceptjs/editors/object_test.js +322 -80
  189. package/tests/codeceptjs/editors/option-no_default_values_test.js +42 -0
  190. package/tests/codeceptjs/editors/programmatic-changes_test.js +20 -0
  191. package/tests/codeceptjs/editors/purify_test.js +26 -0
  192. package/tests/codeceptjs/editors/radio_test.js +9 -0
  193. package/tests/codeceptjs/editors/range_test.js +10 -0
  194. package/tests/codeceptjs/editors/rating_test.js +10 -10
  195. package/tests/codeceptjs/editors/select_test.js +47 -18
  196. package/tests/codeceptjs/editors/starrating_test.js +15 -0
  197. package/tests/codeceptjs/editors/stepper_test.js +37 -0
  198. package/tests/codeceptjs/editors/string_test.js +107 -91
  199. package/tests/codeceptjs/editors/table-confirm-delete_test.js +60 -54
  200. package/tests/codeceptjs/editors/tabs_test.js +15 -11
  201. package/tests/codeceptjs/editors/uuid_test.js +48 -0
  202. package/tests/codeceptjs/editors/validation_test.js +13 -9
  203. package/tests/codeceptjs/issues/issue-gh-1133_test.js +9 -0
  204. package/tests/codeceptjs/issues/issue-gh-1158-2_test.js +10 -0
  205. package/tests/codeceptjs/issues/issue-gh-1158_test.js +8 -0
  206. package/tests/codeceptjs/issues/issue-gh-1164_test.js +9 -0
  207. package/tests/codeceptjs/issues/issue-gh-1171_test.js +11 -0
  208. package/tests/codeceptjs/issues/issue-gh-1211_test.js +17 -0
  209. package/tests/codeceptjs/issues/issue-gh-1257_test.js +11 -0
  210. package/tests/codeceptjs/issues/issue-gh-1272_test.js +21 -0
  211. package/tests/codeceptjs/issues/issue-gh-1330_test.js +8 -0
  212. package/tests/codeceptjs/issues/issue-gh-1338_test.js +18 -0
  213. package/tests/codeceptjs/issues/issue-gh-1347_test.js +8 -0
  214. package/tests/codeceptjs/issues/issue-gh-1364_test.js +13 -0
  215. package/tests/codeceptjs/issues/issue-gh-1367_test.js +11 -0
  216. package/tests/codeceptjs/issues/issue-gh-1383_test.js +9 -0
  217. package/tests/codeceptjs/issues/issue-gh-1384_test.js +9 -0
  218. package/tests/codeceptjs/issues/issue-gh-1410_test.js +13 -0
  219. package/tests/codeceptjs/issues/issue-gh-1422_test.js +9 -0
  220. package/tests/codeceptjs/issues/issue-gh-1431_test.js +12 -0
  221. package/tests/codeceptjs/issues/issue-gh-1439_test.js +12 -0
  222. package/tests/codeceptjs/issues/issue-gh-1452_test.js +10 -0
  223. package/tests/codeceptjs/issues/issue-gh-1453_test.js +18 -0
  224. package/tests/codeceptjs/issues/issue-gh-1461_test.js +14 -0
  225. package/tests/codeceptjs/issues/issue-gh-1463_test.js +9 -0
  226. package/tests/codeceptjs/issues/issue-gh-1471_test.js +17 -0
  227. package/tests/codeceptjs/issues/issue-gh-1485_test.js +13 -0
  228. package/tests/codeceptjs/issues/issue-gh-1491_test.js +9 -0
  229. package/tests/codeceptjs/issues/issue-gh-1525_test.js +9 -0
  230. package/tests/codeceptjs/issues/issue-gh-1536_test.js +12 -0
  231. package/tests/codeceptjs/issues/issue-gh-1538_test.js +10 -0
  232. package/tests/codeceptjs/issues/issue-gh-1541_test.js +8 -0
  233. package/tests/codeceptjs/issues/issue-gh-1559_test.js +15 -0
  234. package/tests/codeceptjs/issues/issue-gh-1562_test.js +12 -0
  235. package/tests/codeceptjs/issues/issue-gh-1586_test.js +15 -0
  236. package/tests/codeceptjs/issues/issue-gh-1636_test.js +9 -0
  237. package/tests/codeceptjs/issues/issue-gh-795_test.js +13 -0
  238. package/tests/codeceptjs/issues/issue-gh-810_test.js +52 -0
  239. package/tests/codeceptjs/issues/issue-gh-812_test.js +25 -0
  240. package/tests/codeceptjs/meta-schema_test.js +85 -0
  241. package/tests/codeceptjs/schemaloader_test.js +14 -0
  242. package/tests/codeceptjs/steps.d.ts +13 -0
  243. package/tests/codeceptjs/steps_file.js +4 -4
  244. package/tests/codeceptjs/test-config.js +3 -0
  245. package/tests/codeceptjs/themes_test.js +564 -0
  246. package/tests/docker-compose-local.yml +5 -0
  247. package/tests/docker-compose.yml +11 -19
  248. package/tests/fixtures/basic_person.json +2 -1
  249. package/tests/fixtures/definitions.json +22 -0
  250. package/tests/fixtures/nested_object.json +26 -0
  251. package/tests/fixtures/properties.json +20 -0
  252. package/tests/fixtures/some_types.json +32 -0
  253. package/tests/fixtures/validation.json +1347 -0
  254. package/tests/pages/_demo.html +475 -0
  255. package/tests/pages/advanced.html +1 -1
  256. package/tests/pages/anyof-2.html +91 -0
  257. package/tests/pages/anyof.html +82 -0
  258. package/tests/pages/array-anyof.html +145 -0
  259. package/tests/pages/array-checkboxes-infotext.html +55 -0
  260. package/tests/pages/array-checkboxes.html +5 -2
  261. package/tests/pages/array-choices.html +48 -0
  262. package/tests/pages/array-events-table.html +70 -0
  263. package/tests/pages/array-events.html +75 -0
  264. package/tests/pages/array-header-template.html +60 -0
  265. package/tests/pages/array-integers.html +5 -2
  266. package/tests/pages/array-multiselects.html +5 -2
  267. package/tests/pages/array-nested-arrays.html +5 -2
  268. package/tests/pages/array-numbers.html +5 -2
  269. package/tests/pages/array-objects.html +5 -2
  270. package/tests/pages/array-ratings.html +5 -2
  271. package/tests/pages/array-selectize-create.html +63 -0
  272. package/tests/pages/array-selectize.html +10 -8
  273. package/tests/pages/array-selects.html +5 -2
  274. package/tests/pages/array-strings.html +5 -2
  275. package/tests/pages/array-table-responsive.html +66 -0
  276. package/tests/pages/array-unique-items-sort.html +81 -0
  277. package/tests/pages/array.html +5 -2
  278. package/tests/pages/assets/autocomplete.css +1 -0
  279. package/tests/pages/assets/autocomplete.min.js +1 -0
  280. package/tests/pages/assets/pages.css +130 -0
  281. package/tests/pages/autocomplete.html +72 -0
  282. package/tests/pages/button-callbacks.html +79 -0
  283. package/tests/pages/button-icons.html +39 -0
  284. package/tests/pages/button_state_mode_1.html +35 -0
  285. package/tests/pages/button_state_mode_2.html +36 -0
  286. package/tests/pages/checkbox-labels.html +116 -0
  287. package/tests/pages/colorpicker-no-3rd-party.html +45 -0
  288. package/tests/pages/colorpicker-use-vanilla-picker.html +52 -0
  289. package/tests/pages/container-attributes.html +51 -0
  290. package/tests/pages/contains.html +39 -0
  291. package/tests/pages/core.html +14 -7
  292. package/tests/pages/datetime.html +78 -0
  293. package/tests/pages/dependentRequired.html +72 -0
  294. package/tests/pages/dependentSchemas.html +53 -0
  295. package/tests/pages/disable-button-in-object-editors.html +57 -0
  296. package/tests/pages/editor-show-validation-errors.html +54 -0
  297. package/tests/pages/enforce-const.html +168 -0
  298. package/tests/pages/error-messages.html +48 -0
  299. package/tests/pages/form-name.html +111 -0
  300. package/tests/pages/grid-strict.html +10 -13
  301. package/tests/pages/grid.html +4 -7
  302. package/tests/pages/if-else.html +58 -0
  303. package/tests/pages/if-then-else-allOf.html +118 -0
  304. package/tests/pages/if-then-else-disable-fields.html +70 -0
  305. package/tests/pages/if-then-else.html +65 -0
  306. package/tests/pages/if-then.html +58 -0
  307. package/tests/pages/inheritance.html +80 -0
  308. package/tests/pages/integer.html +17 -10
  309. package/tests/pages/issues/_template.html +50 -0
  310. package/tests/pages/issues/issue-gh-1133.html +64 -0
  311. package/tests/pages/issues/issue-gh-1158-2.html +189 -0
  312. package/tests/pages/issues/issue-gh-1158.html +50 -0
  313. package/tests/pages/issues/issue-gh-1164.html +71 -0
  314. package/tests/pages/issues/issue-gh-1165.html +63 -0
  315. package/tests/pages/issues/issue-gh-1165.json +8 -0
  316. package/tests/pages/issues/issue-gh-1171.html +39 -0
  317. package/tests/pages/issues/issue-gh-1211.html +1022 -0
  318. package/tests/pages/issues/issue-gh-1233-failing.html +46 -0
  319. package/tests/pages/issues/issue-gh-1233-passing.html +49 -0
  320. package/tests/pages/issues/issue-gh-1257.html +77 -0
  321. package/tests/pages/issues/issue-gh-1272.html +167 -0
  322. package/tests/pages/issues/issue-gh-1330.html +52 -0
  323. package/tests/pages/issues/issue-gh-1338.html +74 -0
  324. package/tests/pages/issues/issue-gh-1347.html +142 -0
  325. package/tests/pages/issues/issue-gh-1364.html +64 -0
  326. package/tests/pages/issues/issue-gh-1367.html +49 -0
  327. package/tests/pages/issues/issue-gh-1383.html +31 -0
  328. package/tests/pages/issues/issue-gh-1383.json +14 -0
  329. package/tests/pages/issues/issue-gh-1384.html +31 -0
  330. package/tests/pages/issues/issue-gh-1384.json +36 -0
  331. package/tests/pages/issues/issue-gh-1410.html +57 -0
  332. package/tests/pages/issues/issue-gh-1422.html +68 -0
  333. package/tests/pages/issues/issue-gh-1431.html +49 -0
  334. package/tests/pages/issues/issue-gh-1439.html +69 -0
  335. package/tests/pages/issues/issue-gh-1452.html +98 -0
  336. package/tests/pages/issues/issue-gh-1453.html +45 -0
  337. package/tests/pages/issues/issue-gh-1461.html +55 -0
  338. package/tests/pages/issues/issue-gh-1463.html +41 -0
  339. package/tests/pages/issues/issue-gh-1466.html +63 -0
  340. package/tests/pages/issues/issue-gh-1471.html +49 -0
  341. package/tests/pages/issues/issue-gh-1485.html +59 -0
  342. package/tests/pages/issues/issue-gh-1491.html +59 -0
  343. package/tests/pages/issues/issue-gh-1525.html +62 -0
  344. package/tests/pages/issues/issue-gh-1536.html +55 -0
  345. package/tests/pages/issues/issue-gh-1538.html +56 -0
  346. package/tests/pages/issues/issue-gh-1541.html +51 -0
  347. package/tests/pages/issues/issue-gh-1541.json +9 -0
  348. package/tests/pages/issues/issue-gh-1559.html +68 -0
  349. package/tests/pages/issues/issue-gh-1562.html +170 -0
  350. package/tests/pages/issues/issue-gh-1586.html +48 -0
  351. package/tests/pages/issues/issue-gh-1636.html +52 -0
  352. package/tests/pages/issues/issue-gh-795.html +58 -0
  353. package/tests/pages/issues/issue-gh-810.html +149 -0
  354. package/tests/pages/issues/issue-gh-812.html +113 -0
  355. package/tests/pages/issues/issue-gh-823-meta-schema.html +35 -0
  356. package/tests/pages/issues/issue-gh-848.html +81 -0
  357. package/tests/pages/keep_only_existing_values.html +81 -0
  358. package/tests/pages/load-events.html +61 -0
  359. package/tests/pages/maxContains.html +40 -0
  360. package/tests/pages/meta-schema.html +793 -0
  361. package/tests/pages/meta_schema.json +740 -0
  362. package/tests/pages/minContains.html +40 -0
  363. package/tests/pages/number.html +53 -6
  364. package/tests/pages/object-case-sensitive-property-search-false.html +42 -0
  365. package/tests/pages/object-case-sensitive-property-search-true.html +42 -0
  366. package/tests/pages/object-no-additional-properties.html +68 -0
  367. package/tests/pages/object-no-duplicated-id.html +70 -0
  368. package/tests/pages/object-required-properties.html +56 -20
  369. package/tests/pages/object-show-opt-in.html +111 -0
  370. package/tests/pages/object-with-dependencies-array.html +58 -0
  371. package/tests/pages/object-with-dependencies.html +62 -0
  372. package/tests/pages/object.html +5 -3
  373. package/tests/pages/oneof-2.html +91 -0
  374. package/tests/pages/oneof.html +105 -0
  375. package/tests/pages/opt-in-widget.html +134 -0
  376. package/tests/pages/option-dependencies.html +107 -0
  377. package/tests/pages/option-no_default_values.html +60 -0
  378. package/tests/pages/per-editor-options.html +44 -0
  379. package/tests/pages/placeholder-options.html +57 -0
  380. package/tests/pages/programmatic-changes.html +121 -0
  381. package/tests/pages/prompt-paste-max-length-reached.html +51 -0
  382. package/tests/pages/purify.html +66 -0
  383. package/tests/pages/range.html +62 -0
  384. package/tests/pages/read-only.html +60 -8
  385. package/tests/pages/ready.html +44 -0
  386. package/tests/pages/references.html +168 -0
  387. package/tests/pages/remove-false-properties.html +85 -0
  388. package/tests/pages/select-values.html +91 -0
  389. package/tests/pages/select.html +4 -3
  390. package/tests/pages/show-validation-errors.html +73 -0
  391. package/tests/pages/starrating.html +86 -0
  392. package/tests/pages/stepper-manual.html +59 -0
  393. package/tests/pages/stepper.html +61 -0
  394. package/tests/pages/string-ace-editor.html +7 -3
  395. package/tests/pages/string-cleave.html +48 -0
  396. package/tests/pages/string-custom-attributes.html +9 -6
  397. package/tests/pages/string-formats.html +54 -0
  398. package/tests/pages/string-formats2.html +59 -0
  399. package/tests/pages/{array-move-events.html → string-jodit-editor.html} +21 -29
  400. package/tests/pages/string-sceditor.html +9 -7
  401. package/tests/pages/string-simplemde-editor.html +83 -0
  402. package/tests/pages/switcher-option.html +69 -0
  403. package/tests/pages/table.html +4 -2
  404. package/tests/pages/tabs.html +1 -1
  405. package/tests/pages/themes.html +517 -0
  406. package/tests/pages/title-hidden.html +75 -0
  407. package/tests/pages/translate-property.html +248 -0
  408. package/tests/pages/urn.html +98 -0
  409. package/tests/pages/use-name-attributes.html +207 -0
  410. package/tests/pages/uuid.html +113 -0
  411. package/tests/pages/validation-messages.json +705 -0
  412. package/tests/pages/validation.html +20 -730
  413. package/tests/unit/.eslintrc +8 -0
  414. package/tests/unit/core.spec.js +320 -0
  415. package/tests/unit/defaults.spec.js +40 -0
  416. package/tests/unit/editor.spec.js +172 -0
  417. package/tests/unit/editors/array.spec.js +87 -0
  418. package/tests/unit/editors/object.spec.js +81 -0
  419. package/tests/unit/editors/table.spec.js +93 -0
  420. package/tests/unit/readme.md +35 -0
  421. package/tests/unit/schemaloader.spec.js +576 -0
  422. package/tests/unit/validator.spec.js +104 -0
  423. package/tests/unit/validators/ip-validator.spec.js +62 -0
  424. package/Gruntfile.js +0 -228
  425. package/dist/css/jsoneditor.min.css +0 -1
  426. package/dist/jsoneditor.js.map +0 -1
  427. package/dist/jsoneditor.min.js +0 -19
  428. package/dist/jsoneditor.min.js.map +0 -1
  429. package/src/class.js +0 -68
  430. package/src/editors/rating.js +0 -152
  431. package/src/ie9.js +0 -51
  432. package/src/intro.js +0 -23
  433. package/src/jquery.js +0 -64
  434. package/src/outro.js +0 -2
  435. package/src/themes/jsoneditor.barebones-theme.js +0 -60
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/intro.js","../src/class.js","../src/ie9.js","../src/utilities.js","../src/core.js","../src/validator.js","../src/editor.js","../src/editors/null.js","../src/editors/string.js","../src/editors/hidden.js","../src/editors/number.js","../src/editors/integer.js","../src/editors/rating.js","../src/editors/object.js","../src/editors/array.js","../src/editors/table.js","../src/editors/multiple.js","../src/editors/enum.js","../src/editors/select.js","../src/editors/selectize.js","../src/editors/multiselect.js","../src/editors/base64.js","../src/editors/upload.js","../src/editors/checkbox.js","../src/editors/array/selectize.js","../src/editors/starrating.js","../src/editors/datetime.js","../src/editors/signature.js","../src/editors/radio.js","../src/editors/describedby.js","../src/theme.js","../src/themes/bootstrap2.js","../src/themes/bootstrap3.js","../src/themes/bootstrap4.js","../src/themes/foundation.js","../src/themes/html.js","../src/themes/jqueryui.js","../src/themes/jsoneditor.barebones-theme.js","../src/themes/materialize.js","../src/iconlib.js","../src/iconlibs/bootstrap2.js","../src/iconlibs/bootstrap3.js","../src/iconlibs/fontawesome3.js","../src/iconlibs/fontawesome4.js","../src/iconlibs/fontawesome5.js","../src/iconlibs/foundation2.js","../src/iconlibs/foundation3.js","../src/iconlibs/jqueryui.js","../src/iconlibs/materialicons.js","../src/templates/default.js","../src/templates/ejs.js","../src/templates/handlebars.js","../src/templates/hogan.js","../src/templates/lodash.js","../src/templates/markup.js","../src/templates/mustache.js","../src/templates/swig.js","../src/templates/underscore.js","../src/defaults.js","../src/jquery.js","../src/outro.js"],"names":[],"mappings":"AAAA,GAAG;AACH,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AACpB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;AACxC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AACpH,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;AACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;AACtB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;AAClD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;AACf,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC7E,CAAC,EAAE;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE;AACd,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;AAClC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG;AAC7C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACT,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;AACjC,CAAC,CAAC;AACF,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;ACtBhF,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW;AAChC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AAClC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChB,CAAC,EAAE;AACH,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS;AAClC,GAAG,CAAC,KAAK,CAAC;AACV,CAAC,QAAQ,GAAG;AACZ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC9G,CAAC;AACD,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK;AACvB,CAAC;AACD,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AACrD,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,GAAG;AACH,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC9D,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACtC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;AAC/B,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;AACzB,GAAG;AACH,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS;AACtD,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ;AACxD,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC1D,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACtE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;AAC5B,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,WAAW;AACX,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AACjE,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AACrC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;AACvC,WAAW;AACX,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AAClE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;AAClD,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ;AACxD,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9B,WAAW;AACX,YAAY,MAAM,CAAC,GAAG,CAAC;AACvB,UAAU,EAAE;AACZ,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI,CAAC;AACL,GAAG;AACH,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW;AAClC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACtB,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AAC7D,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;AACzC,IAAI,CAAC;AACL,GAAG;AACH,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM;AAChD,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAChC,GAAG;AACH,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AACnD,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AACD,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;AACrC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1B,GAAG;AACH,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE;AACF,EAAE,MAAM,CAAC,KAAK,CAAC;AACf,KAAK;;ACnEL,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ;AACnC,EAAE,CAAC,IAAI,CAAC,GAAG;AACX,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACd,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE;AAChF,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE;AACpD,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACnF,IAAI,MAAM,CAAC,GAAG,CAAC;AACf,EAAE,CAAC;AACH;AACA,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AACjD;AACA,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;AACnC,KAAK;AACL;AACA,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AACvF,EAAE,CAAC,GAAG,CAAC,OAAO;AACd,CAAC,QAAQ,EAAE,CAAC,CAAC;AACb,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG;AAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,QAAQ,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,qBAAqB,GAAG;AAClF,QAAQ,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,CAAC;AACnF,sCAAsC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,2BAA2B,GAAG;AACvF,IAAI,CAAC;AACL,CAAC;AACD,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACtC,QAAQ,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG;AAChD,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG;AACrE,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AACxF,cAAc,UAAU,EAAE;AAC1B,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7C,YAAY,MAAM,CAAC,EAAE,CAAC;AACtB,QAAQ,EAAE;AACV,CAAC;AACD,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACrC,QAAQ,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,YAAY,YAAY,CAAC,EAAE,EAAE;AAC7B,QAAQ,EAAE;AACV,KAAK;AACL;AACA,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ;AACzB,EAAE,CAAC,IAAI,CAAC,GAAG;AACX,CAAC,QAAQ,EAAE,CAAC,CAAC;AACb,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACrB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG;AAClE,GAAG,EAAE;AACL,CAAC,CAAC;AACF;AClDA,GAAG;AACH,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACrB,CAAC,EAAE;AACH,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AACvB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;AACrF,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;AAChB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;AACb,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AACxF,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AAC7G,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,CAAC;AACH;AACA,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI;AAClE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAC1E,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,EAAE;AACF;AACA,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACrC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE;AAC1B,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,MAAM,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;AACpD,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChE,QAAQ,EAAE,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;AAC7E,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG;AACzD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;AACjD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,CAAC;AACH,EAAE,MAAM,CAAC,WAAW,CAAC;AACrB,EAAE;AACF;AACA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;AAC7C,EAAE,GAAG,CAAC,CAAC,CAAC;AACR,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;AAC5C,IAAI,CAAC;AACL,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,CAAC;AACR,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;AAClC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC;AAC1D,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAQ,EAAE,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC5C,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;AAC9C,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,CAAC;AACH,EAAE;AACF;AACA,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG;AAC7C,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AACjC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE;AACtB,EAAE;AACF,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE;AACjC,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC;AAClB,IAAI,UAAU,CAAC,CAAC,IAAI;AACpB,EAAE,GAAG;AACL;AACA,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE;AACtB,EAAE;;AC9EF,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AACtC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG;AAChE,EAAE,CAAC;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,MAAM;AAChE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,GAAG;AACd,EAAE;AACF,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI;AAC5F,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACxE,EAAE,WAAW,CAAC,CAAC,UAAU,CAAC;AAC1B,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;AAC3B,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG;AACpC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B;AACA,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;AAClG,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;AAChG,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AACxC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACrB,IAAI;AACJ,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvG,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;AACnD;AACA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AACpD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,IAAI;AACJ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG;AAChD,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG;AACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI;AACrE,MAAM;AACN,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO;AAC1B,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG;AACjC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC1C,QAAQ,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAC7E,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC7E,MAAM;AACN,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AAC/B,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;AAChD,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AACrD,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;AACnD,QAAQ,UAAU,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,MAAM,CAAC,CAAC,MAAM,CAAC;AACvB,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC;AACvB,QAAQ,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc;AACtC,MAAM,GAAG;AACT,MAAM;AACN,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG;AAC3B,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;AACxB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG;AAC5B;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI;AACtB,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC5F;AACA,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc;AACxC,MAAM,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC/B,QAAQ,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI;AAChF,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAChE,QAAQ,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG;AAC9B,QAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG;AAC/B,MAAM,GAAG;AACT,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;AAC3B,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;AAC1G;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG;AAChC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;AAC1G;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC9B,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;AACnG,IAAI;AACJ,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK;AACnB,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC5C,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACrC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;AAC9B,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAChC,IAAI;AACJ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,EAAE;AACJ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;AACxD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzC,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ;AACxB,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;AAC1D,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC5B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC;AACzD,QAAQ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG;AACpD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AAC3C,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AACzC,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;AACjC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AACnC,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACjF,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;AACjD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;AACvC,MAAM,IAAI,CAAC,QAAQ,GAAG;AACtB,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;AACzD,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;AAC7F,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,SAAS,CAAC;AAClB;AACA,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACvC;AACA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9C,UAAU,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,UAAU,MAAM,CAAC,KAAK,CAAC;AACvB,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC7E,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;AAClF;AACA,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE;AAClD,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,EAAE;AAC3D,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE;AACrC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI;AACJ,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;AAClC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,IAAI;AACJ,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI;AACJ,IAAI,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AACnC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC9E,MAAM;AACN,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAChE,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,KAAK;AAC3C,MAAM,CAAC;AACP,MAAM;AACN,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;AAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG;AAC7B,IAAI,GAAG;AACP,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAChD;AACA,IAAI,GAAG,CAAC,MAAM,CAAC;AACf;AACA,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;AACjC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;AACrF,MAAM,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI;AACrD;AACA,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG;AAC7E,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;AACjC,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,CAAC;AACL;AACA,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE;AAC/C,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE;AAC5D;AACA,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;AACpC,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI;AACnB,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,GAAG,CAAC,IAAI,CAAC;AACf,MAAM,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC;AACnD,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE;AACvD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC3B,QAAQ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE;AACrD,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAChC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI;AACnB,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AACvB,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/D,MAAM;AACN,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG;AAClE,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;AACtC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACvC,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;AACtC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG;AACtD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AACxC,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7D,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;AAC3C,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACnB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,MAAM,CAAC,IAAI,CAAC;AAClB,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AACxD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG;AACjD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7D,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI;AAChC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG;AAC/C,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;AACvB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG;AACxB,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,IAAI,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACxC,QAAQ,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE;AAClD,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,UAAU,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,WAAW,IAAI;AAC7E,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AAClB,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7B,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,EAAE;AACN,IAAI;AACJ,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxD,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG;AAC/D,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AACrF,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;AAChC,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,MAAM,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC7C,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;AAChE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;AAC9D,YAAY,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,GAAG;AACtE,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG;AAC/D,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1C,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI;AACjF,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,QAAQ,CAAC;AACpB,EAAE,EAAE;AACJ,EAAE,4BAA4B,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9D,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,MAAM;AAClD,IAAI,SAAS,CAAC,GAAG,GAAG;AACpB,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU;AACnC,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;AACvD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD;AACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AAChC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAC5F,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACjC,MAAM,OAAO,GAAG;AAChB;AACA,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACvB,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC5H;AACA,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG;AACnC,MAAM,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,IAAI,GAAG;AAC7C,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;AACpC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AACtF,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACtC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS;AAC5B,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,UAAU,GAAG,CAAC,QAAQ,CAAC;AACvB,UAAU,GAAG,CAAC,CAAC;AACf,YAAY,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE;AAClD,UAAU,CAAC;AACX,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,YAAY,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAClC,YAAY,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC3D,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE;AACnM;AACA,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpC,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE;AACrE,UAAU,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI;AACtE,UAAU,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtD,YAAY,IAAI,GAAG;AACnB,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACpD,cAAc,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,cAAc,QAAQ,GAAG;AACzB,YAAY,CAAC;AACb,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;AACjC,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;AACzB,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAChC,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;AACrD,QAAQ,CAAC;AACT,MAAM,EAAE;AACR,MAAM,CAAC,CAAC,IAAI,GAAG;AACf,IAAI,GAAG;AACP,IAAI;AACJ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAClB,MAAM,QAAQ,GAAG;AACjB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAChC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE;AAChC,IAAI;AACJ,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACzB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AACpD,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AACzB,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,MAAM,CAAC,CAAC;AACxC,QAAQ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACnC,MAAM,CAAC;AACP,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC;AACvC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE;AAC3E,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AACtE,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,MAAM,CAAC;AAClB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE;AACtC,IAAI,GAAG,CAAC,CAAC,CAAC;AACV;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACzC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;AACvB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,UAAU,EAAE,CAAC,MAAM;AACnB,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACzC,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACxD,UAAU,CAAC;AACX,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,MAAM;AACf,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;AACrD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3B,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;AACvB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,UAAU,EAAE,CAAC,MAAM;AACnB,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACzC,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AAC5D,UAAU,CAAC;AACX,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,MAAM;AACf,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC7D,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,QAAQ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACrD,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AACrD,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;AAClE,UAAU,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AAC9D,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE;AACjD,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AACrD,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI;AACnF,MAAM,CAAC;AACP,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5B,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;AACnD,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC;AAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,CAAC;AAC/C,QAAQ,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,KAAK;AACrF,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC1C,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,UAAU,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,IAAI;AAC1F,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG;AACjC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AACjD,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,EAAE;AACrC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE;AACvF,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;AACrC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE;AAC5B;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI;AACxD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7C,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;AAC3E,QAAQ,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAClH,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;AACpC,UAAU,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5C,YAAY,MAAM,CAAC,CAAC,CAAC;AACrB,UAAU,EAAE,CAAC,IAAI;AACjB,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AACtE,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AACrF,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;AAChD,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClD,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACpE;AACA,UAAU,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AACjE,UAAU,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,YAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS;AAChE,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,cAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,GAAG;AACf,UAAU,CAAC;AACX;AACA,UAAU,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK;AACvF,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClF,YAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;AAC7C,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;AACnD,UAAU,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjC,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;AAC9D,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG;AAC/D,UAAU,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM;AAC/C,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,UAAU,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG;AAC9D,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AACzC,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/B,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI;AAC5C,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B,MAAM,CAAC;AACP,IAAI,GAAG;AACP,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI;AAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7C,QAAQ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,MAAM,CAAC,QAAQ,CAAC;AACpB,EAAE,EAAE;AACJ,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,EAAE,EAAE;AACJ,EAAE,wBAAwB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9B,EAAE,CAAC;AACH,EAAE;AACF;AACA,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,MAAM,CAAC,CAAC,GAAG;AACb,EAAE,SAAS,CAAC,CAAC,GAAG;AAChB,EAAE,QAAQ,CAAC,CAAC,GAAG;AACf,EAAE,OAAO,CAAC,CAAC,GAAG;AACd,EAAE,SAAS,CAAC,CAAC,GAAG;AAChB,EAAE,SAAS,CAAC,CAAC,GAAG;AAChB,EAAE,iBAAiB,CAAC,CAAC,EAAE;AACvB,EAAE;;AC1nBF,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AACrC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACnD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;AACjC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;AAChF,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE;AACpD,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACpB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC5C;AACA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AAC1B;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACnC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG;AAC5D;AACA,IAAI,EAAE;AACN,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC/B,KAAK,EAAE;AACP;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC;AACrD,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACtC,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACpL,QAAQ,MAAM,CAAC,IAAI,EAAE;AACrB,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC;AACrB,UAAU,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;AAC/B,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE;AACjD,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM;AACN,MAAM,MAAM,CAAC,MAAM,CAAC;AACpB,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AACb,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC;AACxB,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACpB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAQ,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,MAAM,CAAC;AACP,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAClB,QAAQ,MAAM,CAAC,IAAI,EAAE;AACrB,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC;AACrB,UAAU,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3B,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;AAC/C,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC;AAC3B,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG;AACtF,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;AACd,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG;AACjF,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;AACd,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACpB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACtE,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,UAAU,KAAK,CAAC;AAChB,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAClB,QAAQ,MAAM,CAAC,IAAI,EAAE;AACrB,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC;AACrB,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE;AAC5B,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;AAChD,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;AACd,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC5B,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI;AAC/D,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE;AACnE,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACzB,UAAU,KAAK,GAAG;AAClB,QAAQ,CAAC;AACT;AACA,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,UAAU,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;AAC7E,QAAQ,CAAC;AACT,QAAQ,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE;AAChD;AACA,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,QAAQ,MAAM,CAAC,IAAI,EAAE;AACrB,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC;AACrB,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE;AAC5B,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE;AACzD,QAAQ,GAAG;AACX,QAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;AAC7C,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;AACZ,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,MAAM,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,QAAQ,MAAM,CAAC,IAAI,EAAE;AACrB,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC;AACrB,UAAU,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1B,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE;AAC9C,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACpD,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI;AACnB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACtB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,YAAY,KAAK,CAAC;AAClB,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AACpB,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7B,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE;AACvD,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI;AACpB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACzG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AACjF,UAAU,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;AAC5F,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;AACpD,YAAY,MAAM,CAAC,IAAI,EAAE;AACzB,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC;AACzB,cAAc,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,cAAc,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AACpE,YAAY,GAAG;AACf,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACvD,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7B,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;AAChE,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA;AACA,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI;AACnB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1C,QAAQ,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACrB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1D,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,YAAY,KAAK,CAAC;AAClB,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AACpB,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;AACjC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE;AAC3D,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI;AACpB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACrD,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;AACjC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxE,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE;AACN,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC/B,KAAK,EAAE;AACP;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;AACjC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AACvC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7F,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG;AAC9D;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS;AACnC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE;AAC1G,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS;AACtC,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACjC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE;AACzF,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AACpB,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AACtE,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;AAClE,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;AAClB,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,GAAG,CAAC,CAAC;AAC5C,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;AAC9F;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS;AACnC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,GAAG,SAAS,GAAG;AAC7E,YAAY,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACzC,YAAY,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AACjD,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS;AACtC,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACjC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG;AACtH,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AACpB,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE;AAChC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,kBAAkB,GAAG;AAClF,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9B,YAAY,CAAC;AACb,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;AAClB,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,GAAG,CAAC,CAAC;AAC5C,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;AAC9F;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS;AACnC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAAG;AAC3E,YAAY,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACzC,YAAY,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AACjD,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS;AACtC,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACjC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG;AACtH,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AACpB,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE;AAChC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,kBAAkB,GAAG;AAClF,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9B,YAAY,CAAC;AACb,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;AACjC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;AACpB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5B,QAAQ,EAAE,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE;AAClC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE;AAC1E,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;AACpB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5B,QAAQ,EAAE,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE;AAClC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,cAAc,GAAG,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE;AAClH,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;AAClB,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1B,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACvD,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE;AAChC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;AACtE,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU;AAChC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AAClF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;AACtC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AAC9B,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACzC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,YAAY,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC5D,YAAY,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAClC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,cAAc,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG;AAChG,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;AAClD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,cAAc,KAAK,CAAC;AACpB,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AAC9C,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACxE,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7C,cAAc,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG;AACvG,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;AACjD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,cAAc,MAAM,CAAC,IAAI,EAAE;AAC3B,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC;AAC3B,gBAAgB,QAAQ,CAAC,CAAC,CAAC,eAAe,EAAE;AAC5C,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE;AAChE,cAAc,GAAG;AACjB,cAAc,KAAK,CAAC;AACpB,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM;AAC/D,YAAY,IAAI,CAAC,CAAC;AAClB,cAAc,KAAK,CAAC;AACpB,YAAY,CAAC;AACb,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AAC9B,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AACpE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG;AAC3F,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;AACnB,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3B,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;AACjC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxE,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;AACnB,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3B,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;AACjC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxE,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;AACtB,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9B,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACtB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG;AAC3C,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3B,YAAY,MAAM,CAAC,IAAI,EAAE;AACzB,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC;AACzB,cAAc,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE;AACtC,cAAc,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE;AAC1D,YAAY,GAAG;AACf,YAAY,KAAK,CAAC;AAClB,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;AACjC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC;AACxB,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,UAAU,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChD,UAAU,KAAK,GAAG;AAClB,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1C,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE;AACtC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE;AAClF,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC;AACxB,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,UAAU,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChD,UAAU,KAAK,GAAG;AAClB,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1C,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE;AACtC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE;AAClF,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpF,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAChE,YAAY,MAAM,CAAC,IAAI,EAAE;AACzB,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC;AACzB,cAAc,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;AACnC,cAAc,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG;AAC7E,YAAY,GAAG;AACf,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;AACrB,MAAM,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG;AACpC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACnC,QAAQ,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC1D,QAAQ,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,QAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG;AAC/F,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,iBAAiB,CAAC;AAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACpC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC5C,UAAU,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACnE,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;AACpC;AACA,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;AACzC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,YAAY,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAClD,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,cAAc,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,cAAc,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG;AAC5G,YAAY,CAAC;AACb,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;AACjH,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACpJ,QAAQ,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,oBAAoB,CAAC;AAC/B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9D,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,UAAU,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChD,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;AACxC,YAAY,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO;AAC1C,YAAY,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC9C,cAAc,MAAM,CAAC,IAAI,EAAE;AAC3B,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC;AAC3B,gBAAgB,QAAQ,CAAC,CAAC,CAAC,oBAAoB,EAAE;AACjD,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,EAAE;AAC3E,cAAc,GAAG;AACjB,cAAc,KAAK,CAAC;AACpB,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,OAAO;AACtB,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,cAAc,KAAK,CAAC;AACpB,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAChC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACxE,YAAY,IAAI,CAAC,CAAC;AAClB,cAAc,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG;AAC5G,YAAY,CAAC;AACb,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC;AACvB,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/B,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AACvC,UAAU,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC9D;AACA,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU;AAChD,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;AACvD;AACA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU;AAChC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,cAAc,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3E,gBAAgB,MAAM,CAAC,IAAI,EAAE;AAC7B,kBAAkB,IAAI,CAAC,CAAC,IAAI,CAAC;AAC7B,kBAAkB,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE;AAC3C,kBAAkB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG;AAC1F,gBAAgB,GAAG;AACnB,cAAc,CAAC;AACf,YAAY,CAAC;AACb,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU;AAC9B,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG;AAC5F,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;AAC1C,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG;AACrD,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG;AACzE,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE;AACpD,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;AACzF,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;AACnC;AACA,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACpC;AACA,UAAU,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG;AAClE;AACA,UAAU,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG;AAC5E,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU;AAC/C,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE;AACA,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC3C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;AAC9C,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;AAC9E,MAAM,EAAE;AACR,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG;AAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG;AAC1B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,MAAM,EAAE;AACR;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/C,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACrG;AACA,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACrC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;AACnC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,UAAU,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;AAClH,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/B,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE;AAC1D,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AACtD,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;AACtF,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/B,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;AAC9F,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS;AACnD,QAAQ,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACrD,UAAU,MAAM,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/B,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;AAC9F,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,QAAQ,EAAE,CAAC,SAAS,CAAC,UAAU;AAC/B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B;AACA,UAAU,GAAG,CAAC,YAAY,CAAC;AAC3B,UAAU,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1G,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9E,gBAAgB,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;AACpF,YAAY,GAAG;AACf,YAAY,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;AACzD,UAAU,CAAC;AACX;AACA,UAAU,GAAG,CAAC,CAAC;AACf,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/B,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO;AACxF,cAAc,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK;AACrH,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACtF,YAAY,CAAC;AACb,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;AACvK,UAAU,CAAC;AACX,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,YAAY,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;AAC3J,YAAY,MAAM,CAAC,IAAI,EAAE;AACzB,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC;AACzB,cAAc,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;AACjC,cAAc,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE;AACjG,YAAY,GAAG;AACf,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG;AACrE,IAAI,GAAG;AACP,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACjD,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAClE,QAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG;AACvE,MAAM,GAAG;AACT,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,MAAM,CAAC;AAClB,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK;AACnB,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,MAAM,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AAC3D,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AAChE,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAChG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;AAClE,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;AAC1D,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AAC/G,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACrD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM;AACb,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AACtD,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;ACvpBH,GAAG;AACH,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AAC5C,CAAC,EAAE;AACH,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1C,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AAC5D,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC1D,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;AACxD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG;AAClD,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC7B,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE;AACzC,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AAChC,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC3C,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACvB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC;AACvD,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,MAAM,IAAI,CAAC,OAAO,GAAG;AACrB,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AACzC;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACvC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACpD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAC3C;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;AAChF;AACA,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE;AACrE;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3H;AACA,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI;AAC/E,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,MAAM;AAC3I,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,GAAG;AAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACjC;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AAC5B;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE;AAC/D,IAAI,IAAI,CAAC,oBAAoB,GAAG;AAChC,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACzC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAChB,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACpD,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM;AACtC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACzC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM;AAC5B,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACrC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AAC5C,MAAM,GAAG;AACT,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACxE,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;AACjD,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACpD,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC;AACvC;AACA,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACnD,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACxC,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,UAAU,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,UAAU,MAAM,CAAC,IAAI,CAAC;AACtB,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7C,YAAY,MAAM,CAAC,KAAK,CAAC;AACzB,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E,YAAY,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,YAAY,MAAM,CAAC,IAAI,CAAC;AACxB,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5E,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AACrD,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpB,QAAQ,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AACxD,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACrC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;AACnF,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACjI,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE;AAC7D,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AACzD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG;AACxD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;AACpE,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG;AAC3D;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9D,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG;AAC1B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,IAAI,CAAC,QAAQ,GAAG;AACxB,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI;AAC7D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1E,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ;AACpE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrG,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AACpD,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC7E,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB;AACA,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB;AACA,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,mBAAmB,GAAG;AAC/B,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE;AAC3C,IAAI,IAAI,CAAC,gBAAgB,GAAG;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,IAAI,IAAI,CAAC,oBAAoB,GAAG;AAChC,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM;AACrB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9D,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,MAAM,EAAE,CAAC,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,oBAAoB,GAAG;AACpC,MAAM,CAAC;AACP,IAAI,EAAE;AACN;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,GAAG,CAAC,CAAC;AAC7C,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;AACnD;AACA,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC;AAC7D,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACvC;AACA,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrC,UAAU,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO;AAC5D,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM;AACvC,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,MAAM;AAChH,QAAQ,CAAC;AACT,QAAQ,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG;AACnC;AACA,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AACtE;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACxD,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,OAAO;AAChF,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AACtE;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ;AACnF,QAAQ,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,MAAM;AAC1F;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE;AACjE;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AAC3C,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM;AACrB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AACpC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AAC/G,IAAI,CAAC;AACL,EAAE,EAAE;AACJ;AACA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK;AAChB,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG;AACrD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACnD,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI;AAC3D,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG;AACxB,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AAC3C,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3C;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AACtD,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE;AAChC,IAAI,MAAM,CAAC,GAAG,CAAC;AACf,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3C;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AAC/D,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE;AAC5D,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;AACrB;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAChC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE;AAC1D,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,EAAE;AAClC;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AACzC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAC/E,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAC5G;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS;AACzD,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/C;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACjF,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1B,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG;AAC/C,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,MAAM,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG;AAC3C,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAChD;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;AACpD;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACrD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AAC7B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACpC,QAAQ,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE;AACtC,QAAQ,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;AAC9C,QAAQ,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;AACxB,IAAI,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG;AAC/C;AACA,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AACvC,MAAM,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG;AAC3C;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE;AAC/C,MAAM,KAAK,CAAC,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG;AAChD;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;AACpD;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACrD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AAC7B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACpC,QAAQ,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE;AACtC,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACtC,QAAQ,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK;AACjB,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AAChD,MAAM,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG;AAC7C,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACrD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AAC7B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACpC,QAAQ,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE;AACxC,QAAQ,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACxC,MAAM,GAAG;AACT,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,MAAM;AACzC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,UAAU,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG;AACvD,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;AAClD;AACA,IAAI,MAAM,CAAC,MAAM,CAAC;AAClB,EAAE,EAAE;AACJ,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AACrB,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC;AACxD,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG;AAC/D,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5B,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACnC,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE;AACA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;AAClC;AACA,IAAI,MAAM,CAAC,OAAO,CAAC;AACnB,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/B,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG;AAC7C,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACtE,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AACtD,YAAY,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC9E,YAAY,KAAK,CAAC;AAClB,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;AAC/C,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC7F,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AACnE,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACvC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACjD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACjD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG;AAChC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACnC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE;AAC9C,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,IAAI,CAAC;AACb,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI;AACnD,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACpB,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACzB,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3B,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9B,MAAM,GAAG;AACT,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AACnD;AACA,MAAM,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,gBAAgB,GAAG;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,QAAQ,EAAE,IAAI,CAAC,qBAAqB,GAAG;AACvC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG;AAC1C,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE;AACpC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACvB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B;AACA,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACrD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE;AACjE,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE;AAC1G,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACxD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG;AACpC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE;AACpC,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACrD,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACnD,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1D,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACnD;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAC1C,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG;AACtC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG;AACtC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG;AACrC,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1B,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9E,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvJ,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACrE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACtB,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AAClB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AAClB;AACA,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC5D,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACzE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACpB,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI;AACzB,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI;AAC/B,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI;AAC1B,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI;AACxB,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAC3D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/B,MAAM,GAAG,CAAC,IAAI,CAAC;AACf;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;AAChC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,MAAM,EAAE,CAAC,MAAM;AACf,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AAC7D,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;AAChE,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AAC9E,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxC,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;AAC1C,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AACtC,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC;AACpD,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;AACzE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB;AACA,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACtB,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AACnE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;AACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,IAAI,IAAI;AAClB;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AAC1D,IAAI,GAAG;AACP;AACA,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ;AACA,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;AACvD,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG;AAC/C,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;AACnC,EAAE,EAAE;AACJ,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AACrE,MAAM,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;AAChE,MAAM,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE;AACxE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AACxC,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,UAAU,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,GAAG;AAC7D,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,CAAC;AACT,MAAM,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE;AACtC,IAAI,CAAC;AACL,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9B,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC7B,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C;AACA,EAAE,CAAC;AACH,GAAG;;AChnBH,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACxE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,CAAC;AACH,GAAG;;ACbH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACvE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClD,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,GAAG;AACvC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AACnD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI;AACJ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACzC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAClE,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACrE,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACxD,IAAI;AACJ,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACzC;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACvC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACzC;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACxC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC,IAAI;AACJ,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAC5C,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE;AAC5C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE;AACtC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC1C,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,cAAc,GAAG;AAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;AAC/B,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7D,IAAI;AACJ,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI;AACJ,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1D;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC3B,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9G,IAAI,GAAG,CAAC,GAAG,CAAC;AACZ,IAAI;AACJ,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;AAC1C,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChG;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,QAAQ,MAAM,GAAG,CAAC,KAAK;AAC7G,IAAI,CAAC;AACL,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AACrD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAChD,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACxC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM;AACtB,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI;AAClB,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACnD,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK;AACpB,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7D,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACpC,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC5G,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC7G,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AACxC,QAAQ,CAAC;AACT;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;AAC5D,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI;AACpB,MAAM,IAAI,CAAC,EAAE,EAAE;AACf,UAAU,CAAC,YAAY,EAAE;AACzB,UAAU,CAAC,SAAS,EAAE;AACtB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,CAAC,EAAE;AACd,UAAU,CAAC,CAAC,IAAI;AAChB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,UAAU,EAAE;AACvB,UAAU,CAAC,OAAO,EAAE;AACpB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,UAAU,EAAE;AACvB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,QAAQ,EAAE;AACrB,UAAU,CAAC,QAAQ,EAAE;AACrB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,KAAK,EAAE;AAClB,UAAU,CAAC,UAAU,EAAE;AACvB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,KAAK,EAAE;AAClB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,CAAC,EAAE;AACd,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,KAAK,EAAE;AAClB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,SAAS,EAAE;AACtB,UAAU,CAAC,MAAM,EAAE;AACnB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,IAAI,EAAE;AACjB,UAAU,CAAC,QAAQ,EAAE;AACrB,UAAU,CAAC,GAAG,EAAE;AAChB,UAAU,CAAC,IAAI,CAAC;AAChB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,MAAM,CAAC,CAAC,CAAC;AACT,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACnD,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;AACzB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE;AACnE,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AACxB,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE;AACjE,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO;AACxC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAChH,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC1G,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,OAAO;AAC7H;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;AAC9C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACrF,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG;AAClD,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;AACzG,IAAI,IAAI,CAAC,kBAAkB,GAAG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI;AACxF;AACA,IAAI,IAAI,CAAC,KAAK;AACd,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;AACtD,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ;AACR,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;AAC3D,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,UAAU,MAAM,CAAC;AACjB,QAAQ,CAAC;AACT;AACA,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAQ;AACR,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK;AACzB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC3C,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/B,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC,QAAQ,CAAC;AACT,QAAQ;AACR,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,MAAM,GAAG;AACT,MAAM;AACN,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACtF,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AACpC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AACvB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC;AAClC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AAC1B,QAAQ,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/C,UAAU,CAAC,CAAC,CAAC,CAAC;AACd,UAAU,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5B,YAAY,CAAC,GAAG;AAChB,YAAY,EAAE,GAAG;AACjB,YAAY,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;AACtC,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,CAAC,CAAC,CAAC,CAAC;AACd,UAAU,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5B,YAAY,CAAC,GAAG;AAChB,YAAY,EAAE,GAAG;AACjB,YAAY,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;AACtC,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE;AACxC,QAAQ,CAAC;AACT,MAAM,EAAE;AACR,MAAM;AACN,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACjC,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACjC,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE;AAC7E;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACxG;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;AACjF,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG;AACpD,MAAM,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG;AACnD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE;AACvC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClF,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,MAAM,GAAG;AACT,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AACtF,IAAI,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;AAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC1D,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU;AAChF,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACvD,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;AAC5D,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ;AACrC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AAClG,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS;AAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAChG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;AAC9E,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AAC3C,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AACzC,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC7B,IAAI;AACJ,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;AAChC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AACvC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;AACjC,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,QAAQ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ;AACtE,MAAM,CAAC,CAAC,CAAC;AACT,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK;AAC9B,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAChE,UAAU,gBAAgB,CAAC,CAAC,KAAK,CAAC;AAClC,UAAU,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;AACxB,UAAU,MAAM,CAAC,CAAC,GAAG;AACrB,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,MAAM;AACzE,QAAQ;AACR,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE;AACpD,QAAQ;AACR,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG;AAChF,QAAQ;AACR,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChD,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAC/B,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,MAAM,GAAG,IAAI;AACjF,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;AACvC,UAAU,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG;AAClG,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AACrC,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;AACxC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE;AAC3D,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK;AAC7B,QAAQ,GAAG;AACX;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG;AACzD;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1D,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG;AAC9C,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACvC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;AAC5B,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9D,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACzB,QAAQ,CAAC;AACT,QAAQ;AACR,QAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3D,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAChD,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACvD,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClD,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1E,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC9D,QAAQ;AACR,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACxE,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AACzB,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE;AACjD,QAAQ,CAAC;AACT;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI;AAClD,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,cAAc,GAAG;AAChE,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;AACjC;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpB,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;AAC7G,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI;AACnB,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/E;AACA,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAC7B,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAChD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;AAC/C,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACjC,UAAU,IAAI,CAAC,YAAY,GAAG;AAC9B,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAClC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACvD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;AACrD,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG;AACvC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG;AAClC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG;AAChC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG;AAC5B,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO;AAC7C,GAAG,EAAE;AACL,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AACtC,GAAG,EAAE;AACL,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI;AACxC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI;AACJ,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;AAC9D,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG;AAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;AACpD,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI;AACJ,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;AAC3D,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AACxG,IAAI;AACJ,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;AACtE;AACA,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACrC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzB,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ;AACpE,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9C,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;AC7dH,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI;AACxC,CAAC,EAAE;AACH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACvE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AACnD,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,GAAG;AACvC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACtD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACzC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAClE,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACrE,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACxD;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACzC;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACvC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACzC;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACxC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC;AACA,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7D;AACA,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1D;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC3B,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAClC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACxD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACnH;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO;AAC7C,GAAG,EAAE;AACL,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AACtC,GAAG,EAAE;AACL,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;AAC9D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG;AAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;AACtD,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAChD,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACxC,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE;AAC/D;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;AAC/E;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ;AACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AAClG,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,IAAI,CAAC;AACL,EAAE,CAAC;AACH;ACrHA,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAChF,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB;AACA,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACrD,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACxC;AACA,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAChE,QAAQ,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;AAC9C,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACrD,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACxC;AACA,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAChE,QAAQ,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;AAC9C,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAClD,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;AAC5C,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;AACzG,IAAI,IAAI,CAAC,kBAAkB,GAAG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI;AACxF;AACA,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK;AAClD,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,EAAE,CAAC;AACH,GAAG;;AC7CH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AACjF,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACvB,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AACzC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,CAAC;AACH,GAAG;;ACRH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;AACjF,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AAC1E,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE;AAClD,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAClB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAClD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACzB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;AAC9B,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;AACvB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,CAAC,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1C,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAQ,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,QAAQ,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtG,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACxE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjD,QAAQ,CAAC,QAAQ,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,QAAQ,CAAC,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;AAChC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjD,QAAQ,CAAC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAChC,QAAQ,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9B,QAAQ,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACnC,QAAQ,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACpC,QAAQ,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,QAAQ,CAAC,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACnC,QAAQ,CAAC,QAAQ,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxD,QAAQ,CAAC,QAAQ,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnD,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACtE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/E,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACxE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAChF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACxE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAChF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjF,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3D,QAAQ,CAAC,QAAQ,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5B,QAAQ,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,QAAQ,CAAC,MAAM,GAAG;AAClB,MAAM,QAAQ,CAAC,oBAAoB,EAAE,IAAI,GAAG,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE;AAClE,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,GAAG;AACxD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AAC9B,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACxD,IAAI,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,GAAG;AACtD;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AAClC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC9C,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAClC,IAAI,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE;AACvC;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,OAAO,GAAG;AAClH;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,GAAG;AAC5C;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACrB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG;AAC7D,MAAM,UAAU,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;AAC1C,MAAM,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AACrD,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE;AACpC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;AACnC;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAClD,MAAM,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;AACpC,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;AACpF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,QAAQ,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG;AACnD,QAAQ,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,MAAM,GAAG;AACT,IAAI,CAAC;AACL;AACA,IAAI,eAAe;AACnB,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;AAC9C;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,QAAQ,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AAClD,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC9D,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;AACxC,MAAM,GAAG;AACT;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5F,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C;AACA,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;AACvC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/B,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,QAAQ,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AAClD,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP,IAAI,GAAG;AACP,EAAE,CAAC;AACH,GAAG;;ACvJH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACvE,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI;AACpD,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACrD,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG;AACnC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACrD,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG;AACrC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AAClD,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACrE,MAAM,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3E;AACA,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,UAAU,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACvD,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG;AACnC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACzD,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACrD,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE;AACjD,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;AACnC;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa;AACpC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACpD,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACxD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACxD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD;AACA,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,GAAG;AACP;AACA,IAAI,GAAG,CAAC,SAAS,CAAC;AAClB,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG;AAC5D,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AAClB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,IAAI,GAAG,CAAC,GAAG,CAAC;AACZ;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG;AACf;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtC,UAAU,MAAM,CAAC;AACjB,QAAQ,CAAC;AACT,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,IAAI;AACxG,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE;AACnF,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;AAC7F,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;AAC/E;AACA,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;AACnB,UAAU,KAAK,CAAC,CAAC,KAAK,CAAC;AACvB,UAAU,MAAM,CAAC,CAAC,MAAM,CAAC;AACzB,UAAU,MAAM,CAAC,CAAC,MAAM;AACxB,QAAQ,EAAE;AACV;AACA,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;AACzB;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B;AACA,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxB,UAAU,QAAQ,GAAG;AACrB,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG;AACnB,QAAQ,CAAC;AACT,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACzC;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;AACxB,MAAM,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAChD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;AACtC,QAAQ,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE;AACnC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAC/B,UAAU,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACrC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,YAAY,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpD,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClB,YAAY,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;AAChG,UAAU,CAAC;AACX,UAAU,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE;AAC5C,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACvC,QAAQ,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAC3C,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,IAAI;AACvG,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;AAC9E,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;AACvE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY;AAC3D,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,YAAY,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM;AACrE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;AAC1F,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACnF,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,YAAY,CAAC;AACb,UAAU,CAAC;AACX,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG;AAC7E,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,UAAU,IAAI,CAAC,IAAI,EAAE;AACrB,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC;AACzB,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,YAAY,OAAO,CAAC,CAAC,EAAE;AACvB,UAAU,GAAG;AACb,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAChC,QAAQ,CAAC;AACT;AACA,QAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;AAClC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;AACnB,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC3B,UAAU,KAAK,CAAC,CAAC,KAAK,CAAC;AACvB,UAAU,MAAM,CAAC,CAAC,MAAM;AACxB,QAAQ,GAAG;AACX,QAAQ,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;AACnC,QAAQ,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;AAC7D,QAAQ,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;AAC7D,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,eAAe;AACjE,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AACvD,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI;AACnD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9B,UAAU,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,YAAY,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;AACzD,YAAY,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE;AAC5E,YAAY,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC;AAClD,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;AAC5E,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7B,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AAC9B,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACzC;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;AACxB,MAAM,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAChD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;AACtC,QAAQ,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE;AACnC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;AACvC,UAAU,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACrC;AACA,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5E,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE;AACvF,UAAU,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE;AAC5C,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM;AACpB,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAChD;AACA,MAAM,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9B,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;AAC1D,QAAQ,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5D,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AAC5D,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;AACjF,QAAQ,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC3E,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK;AAC7C,QAAQ,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,cAAc,EAAE;AACrF;AACA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;AACnD,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACzC,UAAU,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAC7C,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG;AACjD,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;AAClH,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;AACzB,UAAU,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AAC5C,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;AAChD;AACA,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACrE,UAAU,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE;AAC1B,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AAClD,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AACtD,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9D,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE;AACxD,YAAY,CAAC;AACb,YAAY,IAAI,CAAC,CAAC;AAClB,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;AACjE,YAAY,CAAC;AACb,UAAU,CAAC;AACX;AACA,UAAU,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;AAClE;AACA,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACrE,UAAU,EAAE,EAAE,YAAY,EAAE;AAC5B,YAAY,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE;AACjD,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AAC1C,YAAY,EAAE,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;AAC7E,cAAc,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,YAAY,EAAE;AAC/D,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU;AACnD,gBAAgB,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE;AACnD,gBAAgB,oBAAoB,CAAC,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAU,EAAE;AACzF,gBAAgB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG;AACjC,gBAAgB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;AACxE,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE;AAC1G,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;AACtC,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,cAAc,CAAC;AACf,cAAc,IAAI,CAAC,CAAC;AACpB,gBAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC3F,gBAAgB,EAAE,EAAE,CAAC,OAAO,CAAC;AAC7B,cAAc,CAAC;AACf,YAAY,CAAC;AACb,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI;AAC9D,YAAY,IAAI,CAAC,CAAC;AAClB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU;AACjD,cAAc,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE;AACjD,cAAc,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE;AACtD,cAAc,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG;AAC/B,cAAc,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE;AAClE,cAAc,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;AAC9D,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;AACpC,cAAc,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACvC,YAAY,CAAC;AACb,UAAU,CAAC;AACX,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;AAClD,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE;AACvC,YAAY,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE;AACpD,YAAY,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE;AAChE,YAAY,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;AAC5D,UAAU,CAAC;AACX;AACA,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5E,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE;AACjE,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AACnD,UAAU,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE;AAChD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;AAC7D,UAAU,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC;AACA,QAAQ,GAAG;AACX;AACA,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK;AACzB,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;AACnD,UAAU,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;AAChF,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AAC7C,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AAC5D,QAAQ,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,UAAU,EAAE;AACpE,QAAQ,iBAAiB,CAAC,WAAW,CAAC,cAAc,EAAE;AACtD;AACA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACtD,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;AAC1C;AACA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG;AAChC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAChE,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACrB,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG;AACrC,QAAQ,CAAC;AACT,QAAQ,MAAM,CAAC;AACf,MAAM,CAAC;AACP,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACzC,UAAU,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAC7C,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG;AACxC,UAAU,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE;AACrC;AACA,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5E,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE;AACjE,UAAU,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE;AAC5C,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAChC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AACpE,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE;AAC9C,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU;AAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG;AACnD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE;AAChC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AACzD,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACvC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACnD,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACtE,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;AAClC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,UAAU,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC5C,UAAU,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG;AAC9D,UAAU,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM;AAClE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9G,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;AAC5D,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,MAAM,CAAC;AAClB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;AAC/I;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG;AAC1D;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACtD,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5D,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;AACjE,UAAU,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,UAAU,MAAM,CAAC,CAAC,MAAM,CAAC;AACzB,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;AAClC,UAAU,MAAM,CAAC,CAAC,IAAI,CAAC;AACvB,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC;AACxB,UAAU,QAAQ,CAAC,CAAC,IAAI;AACxB,QAAQ,GAAG;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG;AACrC;AACA,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,IAAI;AACxI;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;AAC/B,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;AAClD,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;AACnC,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;AAChC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAChD,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC1C,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACjG,UAAU,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG;AAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,cAAc,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE;AACpD,YAAY,CAAC;AACb,UAAU,GAAG;AACb,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC9E,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;AACvD,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AAC1C;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/B,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,KAAK;AAChI,UAAU,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,IAAI;AACzG,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa;AACpC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACpD,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACxD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACxD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD;AACA,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;AAC7B,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;AACxB,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;AACtI,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AACjE;AACA,QAAQ,EAAE,EAAE,YAAY,EAAE;AAC1B,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACnJ,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAChB,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG;AAC/E,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,GAAG;AAChI,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/C,UAAU,IAAI,CAAC,WAAW,GAAG;AAC7B,UAAU,CAAC,CAAC,cAAc,GAAG;AAC7B,UAAU,CAAC,CAAC,eAAe,GAAG;AAC9B,QAAQ,GAAG;AACX;AACA,MAAM,CAAC;AACP;AACA,IAAI,EAAE;AACN,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACnC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACzF;AACA,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG;AACf,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAChC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;AAChG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACvC;AACA,IAAI,EAAE,EAAE,YAAY,EAAE;AACtB;AACA,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AACtD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM;AAC3D,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC/C,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC7B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;AAChE,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AAChC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;AAChE,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3F,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;AACvF,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC9D,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACxE,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;AACtE,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;AAC9D,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;AAC5E,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE;AAC/D,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC;AACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;AAC5E,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACrE;AACA,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;AACjG;AACA,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3B,QAAQ,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG;AACvD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AACnF,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AAChG;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACzC,UAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AACxC,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;AAC1C,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG;AAC5D,IAAI,IAAI,CAAC,IAAI,IAAI;AACjB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACtD,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AAC/C,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE;AAC/C;AACA,QAAQ,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;AACpC,QAAQ,MAAM,CAAC,KAAK,GAAG;AACvB,QAAQ,MAAM,CAAC,SAAS,GAAG;AAC3B,QAAQ,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/C;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,UAAU,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;AACrE,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;AAClD,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;AACnC,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;AAChC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAChD,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AACpD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AAChD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE;AACrD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACjD;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AACxB,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG;AACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AAC7D,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACpD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACrD,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG;AAChE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG;AACnE,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG;AACxB,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG;AAChE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG;AACnE,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG;AACxB,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG;AACxE,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;AACvE,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC/D,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC3D,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC3D,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE;AAC7D;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK;AAChC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG;AACtD,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5D,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACpD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACvD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACtD,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG;AACvE,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAC/D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG;AACpE,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,GAAG;AACpE,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,GAAG,QAAQ,CAAC,IAAI,MAAM;AAC5E,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AAC5D,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1D,YAAY,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;AACvE,YAAY,MAAM,CAAC;AACnB,UAAU,CAAC;AACX;AACA,UAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC/D,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1D,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG;AACjE,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACjE,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAClE,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE;AAChE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACjD,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,MAAM,EAAE;AAClD;AACA,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;AACxD,MAAM,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACpF,YAAY,CAAC,CAAC,cAAc,GAAG;AAC/B,YAAY,CAAC,CAAC,eAAe,GAAG;AAChC,YAAY,IAAI,CAAC,iBAAiB,GAAG;AACrC,UAAU,CAAC;AACX,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG;AACpB;AACA,MAAM,EAAE,CAAC,WAAW;AACpB,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9E,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;AAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACxD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AACpD;AACA,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;AACxC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACzD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AACrD;AACA,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO;AAC5C,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACzD;AACA,MAAM,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG;AAC1F,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE;AACrF,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACzD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG;AACvF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE;AAClF,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC3D,MAAM,CAAC;AACP;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG;AAC/C,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG;AAChD,QAAQ,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACjI,QAAQ,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AAC1C;AACA,QAAQ,EAAE,CAAC,kBAAkB,EAAE;AAC/B,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5B,YAAY,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACrE,YAAY,oBAAoB,CAAC,WAAW,CAAC,MAAM,EAAE;AACrD,YAAY,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE;AACpD,YAAY,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE;AACtD,YAAY,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACtD,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAChE,cAAc,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACvE,cAAc,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC1D,cAAc,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE;AAChE,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE;AAC1D,cAAc,CAAC;AACf,cAAc,IAAI,CAAC,CAAC;AACpB,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,GAAG;AAChG,cAAc,CAAC;AACf,YAAY,CAAC;AACb,YAAY,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,MAAM,EAAE;AACzD,UAAU,CAAC;AACX;AACA,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACrD;AACA,UAAU,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW;AACrG;AACA,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE;AACjD,QAAQ,CAAC;AACT;AACA,QAAQ,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;AACpC,QAAQ,MAAM,CAAC,KAAK,GAAG;AACvB,QAAQ,MAAM,CAAC,SAAS,GAAG;AAC3B,QAAQ,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/C,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG;AACvB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG;AAC3C,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO;AACxB,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AAC/D,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AAClE,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AACrE,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACrD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACxD;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AACzB,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI;AAC7F,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;AACrE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5B,UAAU,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAChD,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI;AACjG,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpD,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,IAAI;AAC7F,QAAQ,CAAC;AACT,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;AACrC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAClC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;AACjC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9F,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3F,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClD,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AACzB,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;AACvE,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG;AACzE,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE;AAC/D,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE;AAC/D;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;AACnC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/F,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9F,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpD,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;AACjC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,IAAI;AAChH,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG;AAC9E,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG;AACjC,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACrE,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACrE,MAAM,IAAI,CAAC,oBAAoB,GAAG;AAClC;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW;AAClD,MAAM,IAAI,CAAC,+BAA+B,GAAG;AAC7C;AACA,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE;AACpE,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AAC9C,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM;AACvB,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ;AACzE,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa;AAClE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG;AACzC,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;AACrC,IAAI,IAAI,CAAC,eAAe,GAAG;AAC3B;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;AAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE;AAC3E,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,EAAE;AAC7G;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AAChD,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,EAAE;AAC1E;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;AACtD,IAAI,IAAI,CAAC,OAAO,GAAG;AACnB;AACA,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC5C,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;AACrC,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AAClC;AACA,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAChD,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9B,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG;AAChD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC5C,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,IAAI;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACnC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;AAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AAClC,IAAI,EAAE,CAAC,MAAM,GAAG;AAChB,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG;AACjC,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;AACrC;AACA,IAAI,GAAG,CAAC,CAAC;AACT,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,CAAC;AACL,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,GAAG;AACnC,MAAM,KAAK,CAAC,CAAC,CAAC;AACd,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG;AAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG;AAC7B,EAAE,EAAE;AACJ,EAAE,uCAAuC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpF,IAAI,GAAG,CAAC,aAAa,CAAC;AACtB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;AACzC,MAAM,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC;AACrE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;AAC1C;AACA,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3D,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE;AAC1C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;AAC3D,QAAQ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,QAAQ,KAAK,CAAC;AACd,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAClB,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE;AACjD,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;AAC5C;AACA,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG;AACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;AACzE,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;AACpD,IAAI,IAAI;AACR,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACnD;AACA,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE;AACxD,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACzC;AACA,IAAI,IAAI,CAAC,uCAAuC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACtF;AACA,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,IAAI,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnD,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;AACpC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE;AACvC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD;AACA,IAAI,MAAM,CAAC,QAAQ,CAAC;AACpB,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;AAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,EAAE;AACjF,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE;AACtH;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;AACtD,IAAI,IAAI,CAAC,OAAO,GAAG;AACnB;AACA,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7C,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC/C,IAAI,IAAI,CAAC,oBAAoB,GAAG;AAChC,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;AACxC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;AACrC;AACA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnD,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB;AACA,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACpD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG;AAChC,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,GAAG;AAC5C,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACtC;AACA,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;AAChC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;AAClC;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM;AAC9C,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AACrD,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;AAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG;AACpC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ;AACnB,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,EAAE,IAAI,CAAC,2BAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;AAC7G,QAAQ,MAAM,CAAC;AACf,MAAM,CAAC;AACP;AACA,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAChD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG;AACnD,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC1E,QAAQ,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,MAAM,CAAC;AACP;AACA;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ;AACzB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AAC1D;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;AAChE,QAAQ,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,QAAQ,MAAM,CAAC,CAAC,MAAM,CAAC;AACvB,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACjC,QAAQ,MAAM,CAAC,CAAC,IAAI;AACpB,MAAM,GAAG;AACT,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG;AACpC;AACA,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;AAC1B,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG;AACvD,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE;AAC/C,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE;AAChD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG;AACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG;AACvC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3D,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG;AACtC,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACrD,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;AAClE,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,EAAE;AACJ,EAAE,2BAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAChE,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;AAC9C,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;AAC7D,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,MAAM,EAAE,CAAC,OAAO,GAAG;AACnB,IAAI,GAAG;AACP,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC7D,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AACtH;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC1H,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACjG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;AACvC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACjL,YAAY,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;AAC7B,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,MAAM,CAAC;AAClB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACpB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACnD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG;AACnD,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG;AACzD,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACtI,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACvD,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;AAClF;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;AAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5B,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACnD,MAAM,SAAS,GAAG;AAClB,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;AACtD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AAClJ;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC3C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG;AACrC;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;AAC7D,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACnC,MAAM,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC1D;AACA,MAAM,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE;AAClC;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,QAAQ,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACtG,QAAQ,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC;AACzF,QAAQ,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACrC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;AACpE,UAAU,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,UAAU,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;AAC5C,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;AACrE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACtC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC7D,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC1C,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,MAAM,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE;AAClC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AACnE,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AACrB,MAAM,IAAI,CAAC,eAAe,GAAG;AAC7B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACvD,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ;AAC5C,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;AAClD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpD,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK;AACxC,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK;AACrC,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAChC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAClB,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAClF,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACrE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACtB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACxB;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACrE;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU;AAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG;AAC7B,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE;AAClC,QAAQ,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE;AAC1C,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;AAChF,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE;AACrC,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AAChD,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,EAAE;AACrD,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,MAAM,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE;AAClC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE;AAClE,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI,IAAI,CAAC,aAAa,GAAG;AACzB,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AACrD,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACvB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AAClC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACzC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC7C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,UAAU,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG;AACnF,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AACxB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjD,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAC7D,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE;AACpD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE;AACvD,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE;AAChD,IAAI,GAAG;AACP,EAAE,CAAC;AACH,GAAG;;AC5uCH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACtE,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG;AACxC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG;AAChC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG;AAClC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACnC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;AAC1C,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACnD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACnE,MAAM,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACnF,MAAM,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACnF;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG;AAChC;AACA,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACrF,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACzF,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACrF,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE;AAC9C;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACnB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACxB;AACA,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACjH,IAAI,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC;AACxK,IAAI,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC;AACxK,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC;AACjH,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACvG,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACxG,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC5G,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AACpD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AAChD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE;AACrD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9E,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACxD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AACpD;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AAC3D,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,KAAK;AAC5F,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE;AAC9E;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AAC3D,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,KAAK;AACzF,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3E;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACnD,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC/C,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACxD,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;AAChD,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG;AACrD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACtC,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChD,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChD,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACnD,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC/C,QAAQ,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AACjE,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AACpD,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG;AACrD,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACxD,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;AAChD,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ;AACnB,IAAI,IAAI,CAAC,WAAW,GAAG;AACvB,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1B,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAClE,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAChE,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AAC9C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;AAC3C,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1C,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;AAChD,UAAU,MAAM,CAAC,GAAG;AACpB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAC9C,UAAU,MAAM,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AACzD,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG;AAChD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC3C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,GAAG;AAChB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;AACvC;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;AAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAC1C,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC7C,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC9F;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AACnC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;AAChD;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AACpC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG;AACnC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;AAChB,MAAM,aAAa,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK;AACtD,IAAI,EAAE;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACxC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;AACvC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;AAChD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC7C;AACA,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACxD;AACA,IAAI,GAAG,CAAC,MAAM,CAAC;AACf,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1B,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7C,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AAC/C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG;AAC5C,MAAM,CAAC;AACP,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;AAClC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG;AACjD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AAC7C,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;AACxC;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;AACnD,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC;AACrB,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC;AACxB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;AAC5B,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC;AACnB,MAAM,QAAQ,CAAC,CAAC,IAAI;AACpB,IAAI,GAAG;AACP,IAAI,GAAG,CAAC,QAAQ,GAAG;AACnB,IAAI,GAAG,CAAC,KAAK,GAAG;AAChB,IAAI,GAAG,CAAC,SAAS,GAAG;AACpB;AACA,IAAI,EAAE,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7B,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG;AACxD,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE;AAC7C,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,GAAG,CAAC;AACf,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACrB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9G,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACrH;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;AAClF,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;AAClC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACnB,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACjC,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACd,MAAM,GAAG,CAAC,OAAO,GAAG;AACpB,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;AAClE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;AAChF,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjD,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,MAAM,GAAG,CAAC,UAAU,GAAG;AACvB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;AACjF,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC9C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1B;AACA,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3B,QAAQ,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG;AACvD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACzC,UAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AACxC,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;AAC1C,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;AACpE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACxB;AACA,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAChD;AACA,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AAC9C;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACpE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9B,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,IAAI;AAC9D,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI;AAC3C,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AAC/D,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE;AAC3C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE;AAC3C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAClD,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACjE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG;AAChC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;AACjC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG;AACpC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AAChD;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG;AACzB,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACvC,QAAQ,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACjC,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP,IAAI,GAAG;AACP,IAAI,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;AAC9E;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;AACrC;AACA,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG;AACvB;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ;AACrB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACpB;AACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AACtC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG;AACxC,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACzD,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACtF;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;AACrD,QAAQ,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AACpC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,YAAY,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1D,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtD,UAAU,CAAC;AACX,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC3D,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAClC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxB,YAAY,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxD,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACpD,UAAU,CAAC;AACX,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AACxC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG;AAC1C,MAAM,GAAG;AACT;AACA,MAAM,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC;AACA,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D;AACA,QAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;AAC9I,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC3D,UAAU,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7D,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACzD,UAAU,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC3D,UAAU,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7D,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACzD,UAAU,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC3D,UAAU,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7D,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACzD,UAAU,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;AACjF,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;AACvF,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC/C,QAAQ,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,MAAM,CAAC;AACP;AACA,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACrD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7C,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE;AAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACrC;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,GAAG;AACvE,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;AAC5C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG;AAC1G,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE;AACjE,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG;AACvG,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE;AAC9D,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3C,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,MAAM,GAAG;AACT;AACA,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC;AACrF;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AAC5D,IAAI,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI,CAAC,YAAY,MAAM;AAChJ,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;AACvF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B;AACA,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACtC,UAAU,MAAM,CAAC,KAAK,CAAC;AACvB,QAAQ,CAAC;AACT;AACA,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACpC,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACxB,QAAQ,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC;AACA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;AAC7B,UAAU,CAAC;AACX,QAAQ,GAAG;AACX;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACzB,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B;AACA,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,UAAU,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;AAC5C,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpC,UAAU,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC9C,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5B,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;AAC3C,UAAU,IAAI,CAAC,WAAW,GAAG;AAC7B,QAAQ,CAAC;AACT;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,GAAG;AAC7C,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3B,QAAQ,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE;AAChE,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO;AAC7D,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,IAAI;AAC1G,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG;AACnF,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1D,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACxC,YAAY,CAAC,CAAC,cAAc,GAAG;AAC/B,YAAY,CAAC,CAAC,eAAe,GAAG;AAChC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD;AACA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAgB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;AAChC,cAAc,CAAC;AACf,YAAY,GAAG;AACf;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACjC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAChC;AACA,QAAQ,GAAG;AACX;AACA,QAAQ,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE;AAC9D,IAAI,CAAC;AACL;AACA;AACA,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,IAAI;AACtG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG;AACrF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACxB,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACnC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7C,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG;AAC3C,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3B,QAAQ,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE;AAChE,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,sBAAsB,IAAI;AAC5G,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG;AACzF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACpC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7C,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG;AAC3C,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3B,QAAQ,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE;AAClE,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;AACpD,IAAI,IAAI,CAAC,WAAW,GAAG;AACvB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI;AACzF,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;AACnE,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AACxD,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;AAC3D,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;AACvD,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrD,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC3D,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACjE,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACvD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI;AACjF,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/C,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrE,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7C,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,IAAI;AAC7E,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;AACnC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG;AAC3C,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5F,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzF,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACvD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAChD,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;AAC3D,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC,YAAY,MAAM;AACjI,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG;AACjE,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,EAAE;AAC/D,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAClD,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACjE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG;AAChC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG;AACzB,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG;AACxC,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AACnD;AACA,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC,YAAY,MAAM,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC,YAAY,MAAM;AACvL,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG;AAChF,IAAI,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B;AACA,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP;AACA,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACjC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC;AACA,MAAM,IAAI,CAAC,GAAG,GAAG;AACjB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B;AACA,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAQ,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,GAAG;AAC3C,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC3D;AACA,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,IAAI,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,uBAAuB,IAAI;AACzI,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG;AAC/E,IAAI,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B;AACA,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACvB,MAAM,IAAI,CAAC,QAAQ,KAAK;AACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG;AAC/C,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC3D;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnD,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACrD;AACA,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACvD,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7D;AACA,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACvD,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7D,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AACrD,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACvB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AAClC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACzC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC7C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,UAAU,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG;AACnF,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AACxB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjD,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,MAAM,GAAG,CAAC,oBAAoB,CAAC,YAAY,EAAE;AAC7C,IAAI,GAAG;AACP,EAAE,CAAC;AACH,GAAG;;ACnyBH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9E,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG;AAChC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG;AAClC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;AAC/C,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AAC1E;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACjD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AACvD,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;AAC9E,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG;AACvC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG;AAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AAChD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C;AACA,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO;AACnD,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5C,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;AACzC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI;AACzD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9E,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACjD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACxD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AAChD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACjD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7C,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG;AACjD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1C;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACrC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG;AACrC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;AACxD,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,IAAI;AACxE,QAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClE,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE;AACxC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,GAAG;AAClF,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,OAAO,GAAG;AAClB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACnC;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM;AAC1B,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,GAAG;AACnE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC3D;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ;AACnB,IAAI,IAAI,CAAC,WAAW,GAAG;AACvB,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,GAAG;AAChE,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3B,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACpD,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9E,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI;AACpE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AACrB,IAAI,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AACzC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE;AAC9B,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;AACnD,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,MAAM,CAAC,CAAC,WAAW,CAAC;AAC1B,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC;AACxB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;AAC5B,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC;AACnB,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC;AACpB,MAAM,SAAS,CAAC,CAAC,IAAI;AACrB,IAAI,GAAG;AACP;AACA,IAAI,GAAG,CAAC,QAAQ,GAAG;AACnB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AACjB,MAAM,GAAG,CAAC,KAAK,GAAG;AAClB,MAAM,GAAG,CAAC,SAAS,GAAG;AACtB;AACA,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI;AACrE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG;AACxD,MAAM,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE;AACxD,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,GAAG,CAAC;AACf,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACxB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9G,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACjG;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;AACpE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACxB;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACpE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9B,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI;AAC1C,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrE,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAClD,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AAC9C;AACA,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;AAChC;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AAC/D,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE;AACnC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AACzB,QAAQ,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC;AAC1C,MAAM,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE;AAClE,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG;AAC7B,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE;AAClE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,MAAM,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AAChD;AACA,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG;AAC5D;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ;AACrB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACvD,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACpF;AACA,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;AACnD,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAClC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,UAAU,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxD,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,UAAU,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACpD,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;AACzD,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtB,UAAU,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACtD,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,UAAU,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAClD,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChC,QAAQ,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK;AACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC5B,QAAQ,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAChD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpD,MAAM,CAAC;AACP,IAAI,GAAG;AACP,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACnD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACvD,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;AAChC;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzD,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACpC,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzD;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;AAC5I,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvD,QAAQ,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACpC;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvD,QAAQ,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3D,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvD,QAAQ,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;AAC/E,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACpG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC7C,MAAM,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,IAAI,CAAC;AACL;AACA,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACpB;AACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AACtC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG;AACxC,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;AACjD,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE;AAC5C;AACA,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC;AACtD;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AAC5D,IAAI,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,6BAA6B,IAAI;AAC/G,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;AACtF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B;AACA,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACtC,UAAU,MAAM,CAAC,KAAK,CAAC;AACvB,QAAQ,CAAC;AACT;AACA,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACpC;AACA,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACxB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ;AAChE,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;AAC3B,QAAQ,GAAG;AACX,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,MAAM,GAAG;AACT,MAAM,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE;AAC9D,IAAI,CAAC;AACL;AACA;AACA,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,IAAI;AACtG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG;AACpF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACxB,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACnC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,MAAM,GAAG;AACT,MAAM,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE;AAC9D,IAAI,CAAC;AACL;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,sBAAsB,IAAI;AAC5G,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG;AACxF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACpC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,MAAM,GAAG;AACT,MAAM,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE;AAChE,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE;AAC3C,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI;AACzF,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;AACnE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5B,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACxC,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI;AACnF,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5C,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,IAAI;AAC/E,QAAQ,CAAC;AACT,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;AACrC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAClC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;AACjC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9F,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3F,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClD,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;AAC3D,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC,YAAY,MAAM;AACjI,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG;AACjE,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B;AACA,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,iBAAiB,GAAG;AAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AACnD;AACA,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC,YAAY,MAAM,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC,YAAY,MAAM;AACvL,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG;AAChF,IAAI,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B;AACA,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP;AACA,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACjC,MAAM,IAAI,CAAC,GAAG,GAAG;AACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC3D;AACA,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,IAAI,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,uBAAuB,IAAI;AACzI,IAAI,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG;AAC/E,IAAI,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B;AACA,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,QAAQ,KAAK;AACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC3D,EAAE,CAAC;AACH,GAAG;;AC/dH,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;AAC9E,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACzE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG;AACrC,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG;AACrE,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG;AACrC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,EAAE;AAC/D,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,UAAU,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACxC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG;AACnC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE;AACjD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE;AAC/B,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG;AACxC;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB;AACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AACzB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE;AACjE,QAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC5C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnD,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI,IAAI,CAAC,iBAAiB,GAAG;AAC7B,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG;AACnD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE;AAC3C;AACA,IAAI,GAAG,CAAC,MAAM,CAAC;AACf;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5C,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;AAClD;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM;AAC9C,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChI,QAAQ,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;AACrE,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACxD;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;AAC3D,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC;AACrB,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC;AACxB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC;AACnB,MAAM,QAAQ,CAAC,CAAC,IAAI;AACpB,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG;AAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG;AAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG;AAChC;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7E;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE;AACtD;AACA,IAAI,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,IAAI,CAAC,iBAAiB,GAAG;AAC/B,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACtD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACpB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AACzB;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACtI,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAChH;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG;AACrF;AACA,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU;AACzD,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClC,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9C,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC1E,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AAClC,UAAU,CAAC;AACX,UAAU,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AACjC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,YAAY,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;AACvE,UAAU,GAAG;AACb,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;AACrC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACxC,MAAM,CAAC;AACP,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9B,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE;AACxD,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC7E,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AAC9D,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B;AACA,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG;AAC/D,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACvD,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC9C,IAAI;AACJ,MAAM;AACN,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACnD,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACtF,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE;AACzE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9B;AACA,MAAM,GAAG,CAAC,MAAM,CAAC;AACjB;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACzC,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC9C;AACA,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM;AAChD,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1H,UAAU,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvE,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE;AAC9F,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;AACzB,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,iBAAiB,GAAG;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE;AACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE;AAC3C,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG;AACpD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;AAC7D,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,MAAM,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;AACnD,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AAC9C,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACvB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE;AAC9B,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE;AAClD;AACA,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAChC,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG;AAClC,IAAI,GAAG;AACP,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC1H,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtG,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO;AACnG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC3B,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,KAAK,CAAC,KAAK;AACvD,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AAC5B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;AACzD,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,EAAE;AAC9C,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3E,YAAY,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE;AACvC,UAAU,CAAC;AACX,QAAQ,GAAG;AACX;AACA,QAAQ,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE;AAChD,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC3B,QAAQ,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE;AAC5C,MAAM,GAAG;AACT,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;ACrSH,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACnE,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACxE,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC1F,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;AAC9D;AACA,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG;AACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC1B;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC7E,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG;AAC1D,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,QAAQ;AACf,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AAChE,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI;AACnB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG;AACtD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AAClD;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3E;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/C,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE;AACjC,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB;AACA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACvE,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;AACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,MAAM,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG;AACrC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC7D,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClE,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG;AAC7B,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AACtB,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK;AACxB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;AACnB;AACA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACvC;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ;AAC1C,QAAQ,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK;AAC5B,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,GAAG,GAAG;AACvD,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK;AAC1B,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG;AACnC,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG;AACrD,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG;AACzG;AACA,MAAM,MAAM,CAAC,GAAG,CAAC;AACjB,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO;AACd,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM;AACb,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI;AAChF,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,MAAM;AACb,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,QAAQ,GAAG;AACtB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AACtH,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtG;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,CAAC;AACH,GAAG;;AClIH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACvE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM;AACrC;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACvC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACtC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,GAAG;AAC9E,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG;AAC7D,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACrD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClD,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,GAAG;AACvC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AAC9C,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE;AAC1E,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;AACnD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACxC,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACjC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,GAAG,KAAK,CAAC;AACtB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;AACrC,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,GAAG,CAAC,CAAC,CAAC;AACV;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC;AAC7B,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;AACjF;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACzC,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE;AACzD,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpD,MAAM,GAAG;AACT;AACA,MAAM,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI;AAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG;AACvC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG;AAC/C,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;AAC5C,MAAM,CAAC;AACP;AACA,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO;AACd,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG;AACrG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM;AACnC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACtC;AACA,MAAM,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI;AAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG;AACvC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG;AAC/C,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;AAC5C,MAAM,CAAC;AACP;AACA,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI;AACnB,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC5B;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;AACtD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;AACpD,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACnC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,CAAC;AACb,cAAc,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC7C,cAAc,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;AAC1C,YAAY,CAAC;AACb,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,CAAC;AACb,cAAc,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AAC5C,YAAY,CAAC;AACb,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ;AAC3C,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,cAAc,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/C,YAAY,EAAE;AACd,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACtC,UAAU,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG;AACvE,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE;AAC3D,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC/C,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACtD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACrH,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACrH,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACvH,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS;AAC3B,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG;AACpE,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChG,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;AACrE;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE;AAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE;AAChF;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;AACzG,IAAI,IAAI,CAAC,kBAAkB,KAAK;AAChC;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACxG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACrC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC9C;AACA,IAAI,GAAG,CAAC,OAAO,CAAC;AAChB,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;AAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACpC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG;AAChE,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;AAC9B,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACtC;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;AACjD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AACzE,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC1J,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;AAC3D,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;AACpI,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;AAChE,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,GAAG;AAClE;AACA,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACjD,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG;AAChD,QAAQ,IAAI;AACZ,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG;AACzD;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,MAAM,GAAG;AACT;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3C,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG;AAChD,QAAQ,IAAI;AACZ,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG;AACzD;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;AAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACzB,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG;AAC1C,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC9B,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AAC7B;AACA,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM;AAC1B,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAU,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG;AACrE,UAAU,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG;AACnE,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACzB,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AACjC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;AAC9C,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;AAC5B,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClB,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;AACpD,UAAU,CAAC;AACX;AACA,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACrB,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACtD,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1C,cAAc,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AAClF,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AAC/B,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3C,cAAc,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACjC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,gBAAgB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG;AACzG,cAAc,CAAC;AACf,cAAc,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChC,YAAY,CAAC;AACb;AACA,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AACjC,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AACjC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAClC;AACA,cAAc,EAAE,CAAC,QAAQ,CAAC,KAAK;AAC/B,cAAc,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5C,gBAAgB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AACzE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,kBAAkB,IAAI,CAAC,CAAC,IAAI;AAC5B,gBAAgB,IAAI;AACpB,cAAc,CAAC;AACf,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ;AACnC,cAAc,IAAI,CAAC,CAAC;AACpB,gBAAgB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1C,cAAc,CAAC;AACf;AACA,cAAc,EAAE,CAAC,QAAQ,CAAC,KAAK;AAC/B,cAAc,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5C,gBAAgB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AAC3D,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,kBAAkB,IAAI,CAAC,CAAC,IAAI;AAC5B,gBAAgB,GAAG;AACnB,cAAc,CAAC;AACf,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC5C,cAAc,IAAI,CAAC,CAAC;AACpB,gBAAgB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE;AAChD,cAAc,CAAC;AACf,YAAY,CAAC;AACb;AACA,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI;AACzB;AACA,YAAY,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE;AAChE,YAAY,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9D,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE;AAC7E,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;AACzC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;AACxC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;AACxC;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG;AACxC,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChF,MAAM,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACtC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAChC,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;AAC5D,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE;AAC7C,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AAC9D,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC9D,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;AACxC,QAAQ,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AAClD,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC9C,QAAQ,IAAI;AACZ,UAAU,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC3C,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AAC7C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG;AACtC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;AAC5D,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AACxG;AACA,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;AACtE;AACA,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,QAAQ,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACrC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;AACtE,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9C,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;AC/ZH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AAC1E,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM;AACrC;AACA,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACvC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACtC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClC,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,GAAG;AAC9E;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;AACrD,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClD,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,GAAG;AACvC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AAC9C,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE;AAC1E,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;AACnD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACxC,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACjC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,GAAG,KAAK,CAAC;AACtB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,GAAG,CAAC,CAAC,CAAC;AACV;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;AACjF;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACzC,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE;AACzD,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpD,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO;AACd,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG;AACrG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AACpC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACtC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI;AACnB,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC5B;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;AACtD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;AACpD,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACnC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,CAAC;AACb,cAAc,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC7C,cAAc,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;AAC1C,YAAY,CAAC;AACb,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,CAAC;AACb,cAAc,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AAC5C,YAAY,CAAC;AACb,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ;AAC3C,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,cAAc,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/C,YAAY,EAAE;AACd,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACtC,UAAU,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG;AACvE,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,CAAC;AAChB,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE;AAC3D,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC/C,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACtD,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACrH,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACrH,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACvH,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS;AAC3B,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG;AACpE,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChG;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;AACrE;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE;AAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE;AAChF;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACxG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACrC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG;AACnC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/B;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;AACvC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG;AACpE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK;AAC3E,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC7J,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE;AAC7D,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACxI,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;AAC3E,MAAM,CAAC;AACP,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;AAC9F,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;AACxE,QAAQ,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,UAAU,IAAI,CAAC,aAAa,GAAG;AAC/B,QAAQ,CAAC;AACT,MAAM,IAAI;AACV,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,IAAI,IAAI,CAAC,cAAc,GAAG;AAC1B,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B;AACA,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;AAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACzB,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG;AAC1C,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC9B,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AAC7B;AACA,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM;AAC1B,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAU,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG;AACrE,UAAU,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG;AACnE,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;AAC1B,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;AACtD;AACA,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACpD,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACxC,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AAChF,UAAU,CAAC;AACX,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AAC7B,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzC,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC/B,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,cAAc,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG;AAC1F,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9B,UAAU,CAAC;AACX;AACA,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC/B,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC/B,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAChC;AACA,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK;AAC7B,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1C,cAAc,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AACzD,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,gBAAgB,IAAI,CAAC,CAAC,IAAI;AAC1B,cAAc,GAAG;AACjB,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ;AACjC,YAAY,IAAI,CAAC,CAAC;AAClB,cAAc,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACxC,YAAY,CAAC;AACb;AACA,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK;AAC7B,YAAY,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1C,cAAc,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AACzD,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,gBAAgB,IAAI,CAAC,CAAC,IAAI;AAC1B,cAAc,GAAG;AACjB,YAAY,CAAC;AACb,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC1C,YAAY,IAAI,CAAC,CAAC;AAClB,cAAc,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE;AAC9C,YAAY,CAAC;AACb,UAAU,CAAC;AACX;AACA,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI;AACvB;AACA,UAAU,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE;AAC9D,UAAU,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE;AAC5D,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC;AACA,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACjD,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ;AAC5E,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7G,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,QAAQ,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE;AAC3D,QAAQ,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE;AACzD,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE;AAC7E,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;AACzC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;AACxC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;AACxC;AACA,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChF,MAAM,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACtC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAChC,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;AAC5D,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE;AAC7C,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;AAC7C,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC9D,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;AACxC,QAAQ,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AAClD,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1B,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO;AACvC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE;AACpD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AACpD,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC;AACjD,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,UAAU,CAAC,GAAG,GAAG;AACrB,IAAI,UAAU,CAAC,YAAY,GAAG;AAC9B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAClC,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI;AAC7E,IAAI,CAAC;AACL,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;AACnC,IAAI,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvC,MAAM,IAAI,CAAC,aAAa,GAAG;AAC3B,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG;AAC7C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG;AACzC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,GAAG;AAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,CAAC;AACH,GAAG;;AC1WH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5E,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,GAAG,CAAC,CAAC,CAAC;AACV;AACA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;AAC7B,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AAC5B;AACA,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AAC3E;AACA,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG;AACvC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC9E,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AAClF,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChD;AACA,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AACrC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;AAC/C,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACzC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;AACrC;AACA,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACzB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG;AACpE,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG;AACpF,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG;AACvE,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI;AAChH,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AAClG,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACjC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;AAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAClF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC7D;AACA,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC1E,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;AACzF,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B;AACA,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACzB,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI;AAC1K,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,IAAI,GAAG,CAAC,CAAC,CAAC;AACV,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACxB,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClD,IAAI,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAChD;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;AAC5F,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;AACtD,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;AACxC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACnC,MAAM,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC1D;AACA,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC/G,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACvE,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;AAC1E,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;AACtI,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;AAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,GAAG;AACpE;AACA,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnD,UAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG;AAC5C,UAAU,IAAI;AACd,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG;AACrD;AACA,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,QAAQ,GAAG;AACX;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7C,UAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG;AAC5C,UAAU,IAAI;AACd,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG;AACrD;AACA,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,QAAQ,GAAG;AACX,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClD,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,GAAG;AACvC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;AAC9C,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,MAAM,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACzD,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE;AAChF,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;AACnD,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACvB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7C,QAAQ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,QAAQ,QAAQ,CAAC;AACjB,MAAM,CAAC;AACP,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI;AAClE,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE;AAChC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3B;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AACxD,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE;AAC/C,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,OAAO,CAAC;AACnB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7C,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACnD,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACjC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,GAAG,KAAK,CAAC;AACtB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACpC,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,UAAU,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACtD,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1C,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC9C,QAAQ,IAAI;AACZ,UAAU,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACjC,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC3C,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AAC7C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG;AACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,CAAC;AACH,GAAG;;ACzOH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACvE,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AACjD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAClD,QAAQ,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS;AAC/E,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/D,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC7B,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;AAC9B,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,UAAU,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;AAChC,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;AAChC,QAAQ,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACpD,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AAChF,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,cAAc;AAC7G,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AAC3E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9C,MAAM,CAAC;AACP,IAAI,GAAG;AACP,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChG;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AACzC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,GAAG;AACxD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC9C,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,MAAM,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3E;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ;AACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,GAAG;AAC3D;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AAC5D,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AAC5D,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAClD,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AAClE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACjO,QAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,IAAI;AACnD,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C;AACA,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;AAChD,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM;AACnF,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5P;AACA,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK;AAC5D,YAAY,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AAClF,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AACrD,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;AACrD,YAAY,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;AACjF,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK;AACvE,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3C,YAAY,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAChE,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACjD;AACA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,cAAc,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;AACjD,cAAc,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;AACtD,cAAc,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG;AACvD,YAAY,CAAC;AACb,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClB,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;AACtC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,cAAc,IAAI,CAAC,cAAc,GAAG;AACpC,cAAc,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,YAAY,EAAE;AACd,YAAY,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG;AAC5C,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/E,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACnH,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAChD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAChC;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,gBAAgB;AACtD,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACf,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG;AAC3D,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE;AAC7K,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG;AACzC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAChD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACpC,QAAQ,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE;AACtC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,MAAM,IAAI,CAAC,cAAc,GAAG;AAC5B,MAAM,IAAI,CAAC,QAAQ,GAAG;AACtB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAClG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtG;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,CAAC;AACH,GAAG;;ACvJH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACvE,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI;AACzB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC1F;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AACzC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,GAAG;AACxD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,IAAI;AACJ,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC9C,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD;AACA,MAAM,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;AAC5F;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ;AACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,GAAG;AAC3D,MAAM;AACN,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ;AACR,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG;AACpC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AACnD,YAAY,IAAI,CAAC,cAAc,GAAG;AAClC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAChC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,UAAU,EAAE;AACZ,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG;AAC1C,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9C,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AACvC;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,WAAW,EAAE;AACnE,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AAClG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C;AACA,IAAI,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvB,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAChD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACpC,QAAQ,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtC,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE;AACxC,QAAQ,EAAE;AACV,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,UAAU,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;AAC/C,QAAQ,EAAE;AACV,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;AACxD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3C;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAChC,IAAI;AACJ,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;AACnC;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,gBAAgB;AAC9D,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAC/B;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACtC;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;AAC3G,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACpC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG;AACvC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC9C,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAClC,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACpC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;AACnC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE;AACpC,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG;AACrC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG;AACpE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE;AAC3C,IAAI,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,MAAM,KAAK,CAAC,cAAc,GAAG;AAC7B;AACA,MAAM,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG;AACxD,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE;AACjD;AACA,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG;AACvD,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AACnD,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,QAAQ,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC7B;AACA,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAChE,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;AAC1C;AACA,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3E,UAAU,YAAY,CAAC,eAAe,EAAE,QAAQ,GAAG;AACnD,QAAQ,EAAE;AACV,QAAQ,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,UAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;AACzD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3E,UAAU,YAAY,CAAC,eAAe,EAAE,QAAQ,GAAG;AACnD,QAAQ,EAAE;AACV,QAAQ,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACjC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;AACnF,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE;AACvE,UAAU,CAAC;AACX,QAAQ,CAAC;AACT,MAAM,GAAG;AACT,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAChF,MAAM,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,IAAI;AAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE;AAC7C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,MAAM,IAAI,CAAC,QAAQ,GAAG;AACtB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAClG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtG;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,CAAC;AACH,GAAG;;AC7JH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AACzE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClD,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,GAAG;AACvC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;AAC7D,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC9E,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChG,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;AACrE;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG;AAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACxG;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;AAC5D;AACA,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AACrG,MAAM,MAAM,CAAC;AACb,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;AACtE;AACA,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,QAAQ,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACrC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C;AACA,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;AACtE,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9C,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;ACzFH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AAC/E,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,GAAG,CAAC,CAAC,CAAC;AACV;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;AAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;AACjF;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACzC,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE;AACzD,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpD,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI;AACvD,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AAC/D;AACA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG;AAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AAChD,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACtD;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACjC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC5E,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE;AAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG;AACpD,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;AACpF;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE;AACtC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE;AAClD;AACA,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS;AAC7C,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE;AAC3D,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;AACxD,MAAM,CAAC;AACP,QAAQ,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;AAClF,QAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE;AAC1F,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACvE,MAAM,IAAI;AACV,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,UAAU,IAAI,CAAC,YAAY,GAAG;AAC9B,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,MAAM,GAAG;AACT,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACrB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG;AAC3B,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;AACpE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACxB,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAChD;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG;AACxC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;AACrC;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;AAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;AAC7E,MAAM,GAAG;AACT,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG;AAClE,MAAM,GAAG;AACT,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;AACzC;AACA,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC/B,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG;AACjD,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AACrD,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACvB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;AAClC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3B;AACA,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACzC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC7C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,UAAU,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG;AACnF,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AACxB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACxC,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACjC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,GAAG,KAAK,CAAC;AACtB,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;AC1IH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AACpF,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChG,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;AACrE;AACA,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACzD,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG;AACrD;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI;AACxB;AACA,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;AAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,EAAE;AACN;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvD;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC5B,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG;AAC7D,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG;AACvD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC7C,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,MAAM,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE;AAC3E,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;AACvC;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ;AACtC,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AACvD,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC7C,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AACrC,QAAQ,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG;AAC/D,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE;AACnD,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE;AACnD;AACA,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACzD,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,GAAG;AAC7D,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACzD,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AAC3D,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACrD,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AAC5D,IAAI,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE;AAC9D;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC;AACzC,IAAI;AACJ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACrH,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG;AACxD,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACnD,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AAC9K,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACzB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,QAAQ,GAAG;AACxB,QAAQ,KAAK,CAAC;AACd,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;AC9GH,EAAE;AACF;AACA,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/D;AACA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACjF;AACA,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;AACpD,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;AAChE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9E,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;AAChH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACjE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;AAClS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5H,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACxJ;AACA,IAAI,CAAC;AACL,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC5L;AACA,EAAE;AACF,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAClF,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACvE;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AACjE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACtF;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM;AAClE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAChF;AACA,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU;AACjC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,MAAM;AAC/C;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B;AACA,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD;AACA,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;AACzC,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,IAAI;AAC7I,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU;AACrC,UAAU,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,MAAM;AACtD,UAAU,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;AACrC,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,IAAI;AACjG,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU;AACrC,UAAU,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,MAAM;AACpD,UAAU,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;AACpC,QAAQ,CAAC;AACT;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK;AACvC,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AACrF;AACA,QAAQ,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;AAC5E,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5C,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG;AACpD,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD;AACA,UAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK;AAC7D,UAAU,UAAU,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE;AAChE;AACA,UAAU,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;AAClC,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C,QAAQ,CAAC;AACT;AACA,MAAM,CAAC;AACP;AACA,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACvE;AACA,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtG,UAAU,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,GAAG,MAAM,GAAG;AACnD,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACtC,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,CAAC,SAAS,CAAC;AACvB,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACxF,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AACtD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACrD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE;AACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;AACxD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,UAAU,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG;AACvC,UAAU,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACvD,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI;AAChD,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI;AAClD,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI;AACnD,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI;AACnD,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM;AAC9C,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM;AAC5C,UAAU,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC;AACA,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;AAC5D,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG;AACjD,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ;AACpB,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5B,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;AACnC,EAAE,CAAC;AACH,GAAG;;AChIH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AACnF;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa;AAC/F,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM;AAC/D;AACA,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;AACpD;AACA,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,MAAM,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AAC5E,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;AAClD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE;AACpD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,GAAG;AAC1D,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7C;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;AAChC,MAAM,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC7D,MAAM,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,GAAG;AAC9D;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG;AACxC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG;AACpD,MAAM,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE;AAC5C,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG;AACxC,MAAM,kBAAkB,CAAC,WAAW,CAAC,MAAM,EAAE;AAC7C;AACA;AACA,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B;AACA,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACvE,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;AAC7C,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG;AAC7D,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClB,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAClC,UAAU,CAAC;AACX;AACA,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,UAAU,IAAI,CAAC,YAAY,GAAG;AAC9B,UAAU,IAAI,CAAC,cAAc,GAAG;AAChC,UAAU,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AACpD,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAChE,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;AAC1C;AACA,QAAQ,CAAC;AACT,MAAM,GAAG;AACT;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;AAChE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAClD,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG;AACzD,MAAM,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG;AAClD,MAAM,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;AAC9C,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE;AACvC,MAAM,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE;AAC9C;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,OAAO,GAAG;AACpH;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,UAAU,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG;AACtD,UAAU,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;AAC1G,MAAM,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,QAAQ,CAAC,CAAC,cAAc,GAAG;AAC3B,QAAQ,CAAC,CAAC,eAAe,GAAG;AAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG;AAClC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AACpE,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG;AACtC,MAAM,GAAG;AACT;AACA,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;AACjG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/C,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B;AACA,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK;AAClE,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC;AACpD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AACvD,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AACjE,MAAM,CAAC;AACP,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AAChD,MAAM,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE;AACnI,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1C,IAAI,CAAC;AACL;AACA,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;AACtD,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;AACzC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC;AACf,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG;AAChC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACzC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE;AAC3C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,cAAc,GAAG;AAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;AAChD,MAAM,MAAM,CAAC,KAAK,CAAC;AACnB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;AACpD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG;AAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7B,EAAE,CAAC;AACH,GAAG;;ACxHH,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/E,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,IAAI;AACvG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC/G,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAChG,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;AACrE;AACA,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACxD;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AACzB;AACA,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,CAAC,CAAC,cAAc,GAAG;AACzB,MAAM,CAAC,CAAC,eAAe,GAAG;AAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;AAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,IAAI,EAAE;AACN;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC5B,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG;AAC7D,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC7C,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG;AAC/C,MAAM,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE;AAC3E,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;AACvC;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ;AACtC,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AACvD,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG;AACxC;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AACjD,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC1D,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AACrD,MAAM,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG;AACnD;AACA,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACtH,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC1D,MAAM,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG;AAClD;AACA,MAAM,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE;AACzC,MAAM,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE;AAC7C,MAAM,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE;AAC7C;AACA,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE;AAClD,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACpD,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG;AAC1D,IAAI,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE;AAC3D;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACvC,IAAI;AACJ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACnH,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/B,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG;AACvD,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AAClD,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAC1K,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1F,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;AAClH,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD;AACA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACzB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,QAAQ,GAAG;AACxB,QAAQ,KAAK,CAAC;AACd,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;AC/GH,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;AAC/B;AACA,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5E,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG;AACrC,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG;AACxF,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG;AACrC,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG;AACjC,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG;AAClC,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG;AAC5C;AACA,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;AACtB;AACA,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE;AACnD,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACjE;AACA,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;AACjC,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACxC;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB;AACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC1B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,QAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC5C,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAChD,MAAM,CAAC;AACP,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACzC;AACA,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG;AACnD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE;AAC3C;AACA,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG;AACrE;AACA,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/C,QAAQ,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,QAAQ,MAAM,CAAC,CAAC,MAAM,CAAC;AACvB,QAAQ,SAAS,CAAC,CAAC,MAAM,CAAC;AAC1B,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAQ,MAAM,CAAC,CAAC,IAAI,CAAC;AACrB,QAAQ,QAAQ,CAAC,CAAC,IAAI;AACtB,MAAM,CAAC;AACP,IAAI,EAAE;AACN;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B;AACA,IAAI,MAAM,CAAC,QAAQ,GAAG;AACtB,IAAI,MAAM,CAAC,KAAK,GAAG;AACnB,IAAI,MAAM,CAAC,SAAS,GAAG;AACvB,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACnB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AAC5B;AACA,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE;AACrE,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;AACzG,QAAQ,KAAK,CAAC;AACd,MAAM,CAAC;AACP,IAAI,CAAC;AACL;AACA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAClD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3C,MAAM,MAAM,CAAC,GAAG;AAChB,IAAI,KAAK;AACT;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACjE;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC/C,EAAE,EAAE;AACJ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACvD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AACnD,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,YAAY,GAAG;AACxB,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG;AAC/D,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;AAC9D,MAAM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAM,IAAI,CAAC,QAAQ,GAAG;AACtB,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG;AACnC,IAAI,GAAG;AACP;AACA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9D,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE;AACpE,IAAI,CAAC;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG;AAClB,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC1B,MAAM,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE;AAC1C,IAAI,GAAG;AACP,EAAE,CAAC;AACH,GAAG;;AC7KH,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;AACtC;AACA,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;AACrC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,qBAAqB,EAAE;AACtE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE;AAChE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE;AAC9D,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE;AAC5D,KAAK;AACL;AACA,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AACzC,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACzC,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAChC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACvC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE;AACxC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE;AACzC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACnC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC5B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC;AACA,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,OAAO;AAChC,IAAI,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG;AAClD,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAChC,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAC5B,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAC3B,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;AACzB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACxC;AACA,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AACjD,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACrC,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAChD,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACxC,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;AAChE,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAC9C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClC,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAC3C,IAAI,EAAE;AACN,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1C,IAAI,EAAE;AACN;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC9B;AACA,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG;AAClD,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAC1C,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACnC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;AAC3B,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG;AAChD,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAChE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACf,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACpC,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE;AAC5B,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5B,MAAM,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC/C,MAAM,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACjD,MAAM,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7C,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG;AAClC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE;AAChD;AACA,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG;AAClD,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;AACvD,IAAI,MAAM,CAAC,MAAM,CAAC;AAClB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAChD,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AACnD,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACzC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACzC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC,IAAI,MAAM,CAAC,QAAQ,CAAC;AACpB,EAAE,EAAE;AACJ,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG;AACnD,EAAE,EAAE;AACJ,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AACrD,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AAC1B,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG;AACpD,MAAM,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG;AAC9C,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE;AACnD,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;AACjC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG;AAChD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;AACtC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE;AAC/B,IAAI,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE;AAC/B,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC;AACA,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACrC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AACjD,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC/C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC/C,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE;AAC5B,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE;AAChD,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACzC,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AACrC,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AACrC,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG;AAClC,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACzC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG;AAC9C,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;AAC9E,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/B,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE;AAC5C,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACd,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/B,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAChD,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG;AACtD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;AACjD,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC3C,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AACxC,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC3C,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC3C,EAAE,EAAE;AACJ,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3B,IAAI,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG;AAClD,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG;AAC7M,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AACzK,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,MAAM,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;AAC9B,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvC,UAAU,MAAM,CAAC,IAAI,CAAC;AACtB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAChB,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,CAAC;AACP,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE;AACrF,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;AACzB,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AACzB,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AAC/B,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACnC,MAAM,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1B,MAAM,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,MAAM,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACvB,IAAI,GAAG;AACP,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;AACzB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AACzB,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;AACpB,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AAC/B,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AACrC,MAAM,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1B,MAAM,WAAW,EAAE,GAAG,EAAE;AACxB,MAAM,YAAY,EAAE,GAAG,EAAE;AACzB,MAAM,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,MAAM,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACvB,IAAI,GAAG;AACP,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG;AACnC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG;AACtC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;AAC9B,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;AACzB,IAAI,GAAG;AACP,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;AAC9B,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,UAAU,CAAC,CAAC,EAAE;AACpB,IAAI,GAAG;AACP,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACjC,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC7B,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG;AAC7B,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;AAC9B,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAC5B,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;AAChC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;AACxC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,IAAI,MAAM,CAAC,SAAS,CAAC;AACrB,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACnC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE;AAC9C,EAAE,CAAC;AACH,GAAG;;AC5cH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACzE,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM;AACjC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AACvC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,GAAG;AACxC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG;AACjC,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG;AAC3B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AAClC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG;AAC9D,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,GAAG;AACrD,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;AACxC,MAAM,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;AACvH,MAAM,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;AAC9G,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACpC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC7C,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE;AACvC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM;AACjC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG;AAC1C,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG;AACvD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACxC;AACA,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AACjD,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAChD,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACxC,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;AAChE,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAC9C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,GAAG;AACtE,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAC3C,IAAI,EAAE;AACN,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1C,IAAI,EAAE;AACN;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC9B;AACA,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG;AACpC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,GAAG;AACvC;AACA,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACjD,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACvC;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5D,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE;AAChC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACtC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE;AAClC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE;AAClD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjB,QAAQ,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,GAAG;AAC7C,QAAQ,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,MAAM,CAAC;AACP,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE;AAClD,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE;AAClC,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE;AAChC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE;AACtD;AACA,IAAI,MAAM,CAAC,GAAG,CAAC;AACf,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AAC7C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG;AAChD,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAQ,MAAM,CAAC;AACf,IAAI,CAAC;AACL,IAAI,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACtD,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG;AAC9C,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACjD,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG;AAC3D,MAAM,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtC,IAAI,CAAC;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7B,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG;AACjD,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC9C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC1I,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG;AAC9C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC1I,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;AACvC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;AACvC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AACpC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAC1C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAC5C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AACvC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AAC7C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AAC/C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAClD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACxC;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC7B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE;AAC/B;AACA,IAAI,MAAM,CAAC,SAAS,CAAC;AACrB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;AACxD,EAAE,EAAE;AACJ,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;AACxE,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAChD,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AACvB;AACA,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5D,IAAI,mBAAmB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG;AACtD,IAAI,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AACtC,MAAM,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG;AAClD,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,mBAAmB,CAAC;AAC/B,EAAE,CAAC;AACH,GAAG;;ACzRH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACzE,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAClC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACrC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE;AACrC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE;AAChD,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AAClC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;AAC3D,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;AACxC,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACpC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC7C,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE;AACvC,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM;AACjC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG;AAChD,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACrC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AACvC,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACvC,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC9C;AACA,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACtC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC/C,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACxC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjB,QAAQ,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,GAAG;AAC7C,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AACjC,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC/C,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;AACnD;AACA,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG;AACxC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG;AACzE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACxC;AACA,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AACjD,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAChD,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACxC,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;AAChE,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;AAC9C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAClC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,GAAG;AACtE,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAC3C,IAAI,EAAE;AACN,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1C,IAAI,EAAE;AACN;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC9B;AACA,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACnC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AAC5C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG;AAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG;AAChD,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ;AACA,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAQ,MAAM,CAAC;AACf,IAAI,CAAC;AACL,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG;AAClD,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACjD,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG;AAC3D,MAAM,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;AACnD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtC,IAAI,CAAC;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7B,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG;AACrD,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7G,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AACtF,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;AACvF,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC5E,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,GAAG;AAC5C,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;AAC3C,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG;AAClC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG;AACzC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,GAAG;AAC5C,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;AAC3C,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG;AAClC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG;AACzC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG;AACxC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG;AACxC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AACpC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAC1C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAC5C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AACvC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AAC7C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AAC/C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAClD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACxC;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG;AACtC,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,GAAG;AAC5C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;AAC7C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC3C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC3C,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;AAChC,IAAI,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE;AAC/B;AACA,IAAI,MAAM,CAAC,SAAS,CAAC;AACrB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;AACpC,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAChD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACjC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,EAAE,EAAE;AACJ,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;AACrC,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;AACxE,IAAI,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,GAAG;AACzC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAC7B,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACvB,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AACvB;AACA,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5D,IAAI,mBAAmB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG;AACrD,IAAI,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACnD,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG;AAChD,IAAI,mBAAmB,CAAC,WAAW,CAAC,UAAU,EAAE;AAChD;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG;AACzC,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,mBAAmB,CAAC;AAC/B,EAAE,CAAC;AACH,GAAG;;AC5RH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACzE,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAClC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACrC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE;AACrC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE;AAC5C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AACnC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG;AAC5D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;AAC1C,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM;AACjC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG;AAChD,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACrC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AACvC,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACvC,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC9C;AACA,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACtC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACxC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClB,QAAQ,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;AAClD,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AACjC,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;AACpD;AACA,IAAI,MAAM,CAAC,KAAK,CAAC;AACjB,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG;AACtD,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG;AAClC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AAC5C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG;AAC7C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG;AACnD,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ;AACA,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG;AACnD,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG;AACtC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACxB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACjD,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG;AAClE,MAAM,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;AACnD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtC,IAAI,CAAC;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC9B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,GAAG;AACzC,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG;AACtD,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC5K,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC5B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACpD,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AACnI,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACnC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AAC1C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AAClC,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI;AAC9C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;AAC1C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG;AAC3C,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;AAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AAChC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG;AACzC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG;AACxC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;AACjC,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG;AACxC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAC/C;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAC1C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AAC5C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AAClD;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AAC7C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AAC/C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAChB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChB;AACA,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAClD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AACxC;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG;AACtC,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,GAAG;AAC5C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;AAC7C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC3C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC3C,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;AAChC,IAAI,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE;AAC/B;AACA,IAAI,MAAM,CAAC,SAAS,CAAC;AACrB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;AACpC,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAChD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACjC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,EAAE,EAAE;AACJ,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;AACrC,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;AACxE,IAAI,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,GAAG;AACzC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAC7B,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACvB,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AACvB;AACA,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5D,IAAI,mBAAmB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG;AACrD,IAAI,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACnD,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG;AACpD,IAAI,mBAAmB,CAAC,WAAW,CAAC,UAAU,EAAE;AAChD;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG;AACzC,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,mBAAmB,CAAC;AAC/B,EAAE,CAAC;AACH,GAAG;;AClPH,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;AACxB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACzE,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAClC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7B,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAClC,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC3B,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;AACxC,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,CAAC;AACL,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG;AACtD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACpC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC7C,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5D,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACzC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/C,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG;AAC9B,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACtC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG;AACrC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AAC5C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG;AACxC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAQ,MAAM,CAAC;AACf,IAAI,CAAC;AACL,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG;AACvC;AACA,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,CAAC,kBAAkB,EAAE,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,IAAI;AAC3E,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,KAAK,GAAG,CAAC,EAAE;AACzE,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtC,IAAI,CAAC;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG;AAC1C,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACpD,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG;AAC1C;AACA,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC/C,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG;AACjC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC7B,IAAI,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,IAAI,MAAM,CAAC,WAAW,CAAC;AACvB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;AACxD,EAAE,EAAE;AACJ,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAChD,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;AACjC;AACA,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC5D,IAAI,mBAAmB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG;AACrD,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG;AAC7C,IAAI,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE;AAC3C;AACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACrD,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG;AACrD,MAAM,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7C,MAAM,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG;AAC3C,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG;AACzC,MAAM,mBAAmB,CAAC,WAAW,CAAC,UAAU,EAAE;AAClD,IAAI,CAAC;AACL;AACA,IAAI,MAAM,CAAC,mBAAmB,CAAC;AAC/B,EAAE,CAAC;AACH,GAAG;AACH;AACA,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AAC9B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;AACvF,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC5B,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AACnJ,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC5B,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AACrO,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG;AAChH,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG;AAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG;AACrD,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;AAC1C,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;AAC1C,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AACpC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AACvC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,CAAC;AACH,GAAG;AACH;AACA,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AAC9B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;AACvF,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AACjD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;AACjD,IAAI,CAAC;AACL;AACA,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AAChC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,CAAC;AACH,GAAG;AACH;AACA,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AAC9B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;AACvF,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AAChC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE;AAChD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE;AAChD,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAClE,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AACpI,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC5B,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC3L,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;AAC9C,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;AAC9C,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;AACpC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;AACvC;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACxC,EAAE,CAAC;AACH;AACA,GAAG;AACH;AACA,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;AACxF,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,GAAG;AAC7C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG;AACxD,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG;AAC7C,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG;AACrC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;AACjD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrB,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC/C,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC5C,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE;AAC5B,IAAI,CAAC;AACL;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;AACnD,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG;AACvC;AACA,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AACnD,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG;AACxD,MAAM,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE;AACxE;AACA,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG;AAC9C;AACA,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7B,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC3B,IAAI,CAAC;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG;AAC/C,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACjC,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;AACxD,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG;AAC/B,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG;AAC7P,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACzE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG;AAC/B,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG;AACvK,IAAI,MAAM,CAAC,EAAE,CAAC;AACd;AACA;AACA,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE;AAC3G,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACnC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE;AACrC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACnC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;AACvC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;AACxB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;AAC7C,EAAE,EAAE;AACJ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC7C,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACnC,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACnC,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG;AACvC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG;AAC7D;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG;AAC7C,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG;AACxD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG;AAC/C,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG;AAC1D,MAAM,CAAC;AACP,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG;AAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,GAAG;AACxD;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG;AAChD,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,GAAG;AACnD,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG;AAClD,MAAM,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,GAAG;AACrD,MAAM,CAAC;AACP,EAAE,EAAE;AACJ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE;AACnD,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACnD,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;AAChC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;AACnD,EAAE,CAAC;AACH,GAAG;;ACzfH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACnE,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACvC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7B,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG;AACnC,EAAE,EAAE;AACJ,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACtC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AAC7C,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACpC,IAAI;AACJ,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG;AACtD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACnD,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG;AAClD,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AACpD,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACvC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;AACtC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAC3C,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAChC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG;AAC5D,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzD,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B;AACA,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG;AACzD,IAAI,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;AACzC,IAAI,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE;AAC7C,IAAI,MAAM,CAAC,WAAW,CAAC;AACvB,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE;AAChD,EAAE,EAAE;AACJ,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACnD,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,WAAW,CAAC,eAAe,EAAE,KAAK,GAAG;AACzC,EAAE,CAAC;AACH,GAAG;;ACpFH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACvE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC3B,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE;AACrC,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE;AACrC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/B,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG;AACxC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG;AAC1C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AACvC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;AAC5D,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC;AACA,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACjC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACvC,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC5C,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAClC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/C,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG;AACrC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAC/B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAC/B,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG;AAClD,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG;AACxF;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;AAChB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvB,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG;AAClD,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG;AACtE,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/B,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACpB,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG;AAC1D,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG;AACtE,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/B,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;AAChB,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG;AAClD,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC5C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG;AACvC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM;AACtC,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE;AAC3B;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC;AACA,IAAI,MAAM,CAAC,MAAM,CAAC;AAClB,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC1B,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG;AACxF;AACA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;AAChB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvB,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG;AAClD,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG;AACtE,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/B,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AACpB,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG;AAC1D,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG;AACtE,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/B,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;AAChB,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG;AAClD,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC5C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG;AACvC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM;AACtC,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE;AAC3B;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG;AAC3D,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AACnC,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,IAAI,MAAM,CAAC,EAAE,CAAC;AACd,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG;AACzD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACpC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC7C,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAQ,MAAM,CAAC;AACf,IAAI,CAAC;AACL,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACnD,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG;AACnD,MAAM,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/C,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACtC,IAAI,CAAC;AACL;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,EAAE,EAAE;AACJ,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzB,QAAQ,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG;AACjD,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG;AAC7C;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACvC,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG;AAC9C,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG;AAChD;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AAC3C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzC,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;;ACvLH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACnC,QAAQ,MAAM,CAAC,EAAE,CAAC;AAClB,IAAI,EAAE;AACN,IAAI,uBAAuB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACnC,QAAQ,MAAM,CAAC,EAAE,CAAC;AAClB,IAAI,EAAE;AACN,IAAI,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC/B,QAAQ,MAAM,CAAC,EAAE,CAAC;AAClB,IAAI,EAAE;AACN,IAAI,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC/B,QAAQ,MAAM,CAAC,EAAE,CAAC;AAClB,IAAI,EAAE;AACN,IAAI,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG;AACxC,QAAQ,MAAM,CAAC,EAAE,CAAC;AAClB,IAAI,EAAE;AACN,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC/B,QAAQ,MAAM,CAAC,EAAE,CAAC;AAClB,IAAI,EAAE;AACN,IAAI,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG;AAC7D,YAAY,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACzD,YAAY,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG;AACzD,YAAY,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;AAC5C,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,YAAY,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACjD,QAAQ,CAAC;AACT;AACA,QAAQ,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AACpC,QAAQ,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG;AAChE,IAAI,EAAE;AACN,IAAI,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxC,QAAQ,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9D,IAAI,EAAE;AACN,IAAI,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC;AACA,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG;AAC7D,QAAQ,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;AAC7C,QAAQ,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE;AACjD,QAAQ,MAAM,CAAC,WAAW,CAAC;AAC3B,IAAI,EAAE;AACN,IAAI,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzD,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AACjC,QAAQ,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE;AACpD,IAAI,EAAE;AACN,IAAI,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AACtD,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC;AACjC,QAAQ,WAAW,CAAC,eAAe,EAAE,KAAK,GAAG;AAC7C,IAAI,CAAC;AACL,GAAG;;AC3DH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;AACzE,EAAE,CAAC;AACH;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;AAC5C,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5E,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AAC7C,GAAG,EAAE;AACL,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC9B,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AACvD,GAAG,EAAE;AACL,EAAE,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG;AACpC,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AACnC,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AACvD,GAAG,EAAE;AACL,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AAC5C,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AAClC,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAChD,GAAG,EAAE;AACL,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C;AACA,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AACtB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG;AACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACvC,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG;AAC7D,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACpC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AACnE,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;AACzD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AAC3D,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AACtD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC9C,GAAG,EAAE;AACL,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE;AACA,MAAM,GAAG,CAAC,IAAI,CAAC;AACf,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB;AACA,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxC;AACA,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AAC3C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpB,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG;AACpD,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,UAAU,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAC/B,UAAU,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAClC,UAAU,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,UAAU,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;AAClC,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAClC,QAAQ,CAAC;AACT;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC;AACpB;AACA,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;AAC5C,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;AAC9D;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9C,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG;AAC9C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG;AAC1C;AACA,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACvC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACrC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,QAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACnC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5C,QAAQ,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACpC;AACA,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpB,UAAU,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;AACjE,UAAU,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;AAC5E,UAAU,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1D,UAAU,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClD,QAAQ,CAAC;AACT,MAAM,CAAC;AACP;AACA,MAAM,MAAM,CAAC,IAAI,CAAC;AAClB;AACA,IAAI,EAAE;AACN;AACA,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG;AACpC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACnC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC3E,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACjD,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC3B,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;AACjE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AAC/C,GAAG,EAAE;AACL,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC5C;AACA,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACd,QAAQ,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;AAC7B,MAAM,CAAC;AACP;AACA,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,EAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC7C,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG;AACrC,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB,IAAI,EAAE;AACN;AACA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,GAAG;AAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC1C,IAAI,EAAE;AACN;AACA,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE;AACN;AACA,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG;AAC7C,IAAI,EAAE;AACN;AACA,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC5C,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC5C,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACjC,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;AACrD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS;AACnF,GAAG,EAAE;AACL,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B;AACA,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE;AACjB,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI;AAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACpM,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG;AACnB,QAAQ,GAAG,GAAG,GAAG;AACjB,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI;AAChC,QAAQ,EAAE,GAAG,EAAE;AACf,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG;AACnB;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG;AAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1B,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AACnD,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACxD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AAC7C,GAAG,EAAE;AACL,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE;AACtD,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACjD,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS;AACnF,GAAG,EAAE;AACL,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG;AAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG;AAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAChC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1B,QAAQ,CAAC;AACT,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;AACtB,QAAQ,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3B,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACzB,QAAQ,CAAC;AACT,MAAM,EAAE;AACR,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;AAC3B,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC;AACnC,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS;AACnF,GAAG,EAAE;AACL,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAClC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAC3B,QAAQ,CAAC;AACT,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;AACtB,QAAQ,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3B,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;AAC1B,QAAQ,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG;AACrC,QAAQ,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AAC5C,QAAQ,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACxC,QAAQ,CAAC;AACT,MAAM,EAAE;AACR;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;AACrC,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS;AACnF,GAAG,EAAE;AACL,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;AAClC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAC3B,QAAQ,CAAC;AACT,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;AACtB,QAAQ,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3B,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACvB,QAAQ,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;AAC1B,QAAQ,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACtC,QAAQ,CAAC;AACT,MAAM,EAAE;AACR;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrD,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AAChE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAC5E,GAAG,EAAE;AACL,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE;AACnC,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AAC/C,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AACxD,GAAG,EAAE;AACL,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7B,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC3C,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AAC1D,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACxE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AAC5C,GAAG,EAAE;AACL,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG;AACzF,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;AACpC,MAAM,EAAE,CAAC;AACT;AACA,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC1B;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACnC;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AACzC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;AACjD,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE;AAC7B;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AAChE,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACnF,GAAG,EAAE;AACL,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG;AACzF,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;AACvC,MAAM,GAAG,CAAC;AACV;AACA,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC1B;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACtD,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,GAAG;AACxD,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AAC1C,QAAQ,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG;AACnC;AACA,IAAI,EAAE;AACN;AACA,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,IAAI,EAAE;AACN;AACA,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/C,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;AACrD,GAAG,EAAE;AACL,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC;AACA,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACxC,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG;AAC9C,MAAM,MAAM,CAAC,MAAM,CAAC;AACpB;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACjC,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;AACvD,GAAG,EAAE;AACL,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG;AAClD,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACpC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;AACxC,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB,IAAI,EAAE;AACN;AACA,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3B;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG;AAClD,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;AAChC,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;AAC5E,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AAClD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC9C,GAAG,EAAE;AACL,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB;AACA,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG;AAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG;AAClD,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAChC,MAAM,MAAM,CAAC,EAAE,CAAC;AAChB;AACA,IAAI,EAAE;AACN;AACA,IAAI,GAAG;AACP,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACjE,GAAG,CAAC;AACJ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;AAC7C,GAAG,EAAE;AACL,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1B;AACA,MAAM,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChF,QAAQ,CAAC;AACT,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3E,UAAU,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChC,QAAQ,CAAC;AACT,MAAM,EAAE;AACR;AACA,IAAI,CAAC;AACL;AACA,EAAE,CAAC;AACH;ACtcA,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3C,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,GAAG;AACjB,IAAI,MAAM,CAAC,CAAC,GAAG;AACf,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,CAAC,GAAG;AACb,IAAI,GAAG,CAAC,CAAC,GAAG;AACZ,IAAI,MAAM,CAAC,CAAC,GAAG;AACf,IAAI,IAAI,CAAC,CAAC,GAAG;AACb,IAAI,MAAM,CAAC,CAAC,GAAG;AACf,IAAI,QAAQ,CAAC,CAAC,EAAE;AAChB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,GAAG;AAClB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACpE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrB,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;AAC3C,IAAI;AACJ,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/B,IAAI;AACJ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AACxC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI;AAC7D,IAAI;AACJ,IAAI,MAAM,CAAC,CAAC,CAAC;AACb,EAAE,CAAC;AACH,GAAG;;AC3BH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC7E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;AACzB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE;AACzB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;AACf,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;AACtB,GAAG;;AChBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC7E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AACzB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;AACrC,GAAG;;AChBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC/E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE;AACzB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;AACtB,GAAG;;AChBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC/E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE;AACnC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAClB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACpB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;AAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACpB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACvB,GAAG;;ACjBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC/E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAClB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAClB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;AACxB,GAAG;;ACjBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC9E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACnB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACnB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;AACtB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAClB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE;AAC3B,GAAG;;AChBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC9E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACnB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;AAClB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;AACpB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;AACvB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACtB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAClB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;AACpB,GAAG;;AChBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACnB,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AACrB,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE;AACzB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7B,IAAI,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,EAAE,EAAE;AACJ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;AACjC,GAAG;;AChBH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE;AAChF;AACA,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,MAAM,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE;AAChC,MAAM,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE;AAChC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AACzB,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACnB,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AACjB,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE;AACvB,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACnB,MAAM,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE;AAC7B,MAAM,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE;AACjC,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE;AAC7B,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;AAC1B,MAAM,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE;AACjC,MAAM,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE;AAC7B,IAAI,EAAE;AACN;AACA,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;AACjC,IAAI,WAAW,CAAC,CAAC,GAAG;AACpB;AACA,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC;AACA,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC;AACjC;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,IAAI,EAAE;AACN;AACA,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B;AACA,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3B,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACxC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAClC;AACA,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AACpD,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG;AAC5C,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;AACzC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE;AACjD,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE;AACzB,QAAQ,MAAM,CAAC,CAAC,CAAC;AACjB;AACA,IAAI,CAAC;AACL,GAAG;;AC3CH,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACtE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;AACxC;AACA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS;AACvD,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;AACpD;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS;AACjD,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;AACtD,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AAC5B,MAAM,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,IAAI,GAAG,KAAK,MAAM;AAClE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzB,QAAQ,GAAG,CAAC,IAAI,CAAC;AACjB,QAAQ;AACR,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,UAAU,GAAG,CAAC,GAAG,CAAC;AAClB,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9B,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAC7B,YAAY,CAAC;AACb,YAAY,MAAM,CAAC,GAAG,CAAC;AACvB,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnB,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;AAC3B,UAAU,EAAE;AACZ,QAAQ,CAAC;AACT,QAAQ;AACR,QAAQ,YAAY,CAAC,IAAI,EAAE;AAC3B,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AACxB,UAAU,CAAC,CAAC,CAAC,IAAI;AACjB,QAAQ,GAAG;AACX,MAAM,EAAE;AACR,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,eAAe,CAAC,CAAC,EAAE;AAC3B,MAAM,CAAC;AACP;AACA,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ;AAC9B,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI;AAC9B,QAAQ,GAAG,CAAC,CAAC,CAAC;AACd,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE;AAC9B,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;AAC5C,QAAQ,CAAC;AACT,QAAQ,MAAM,CAAC,GAAG,CAAC;AACnB,MAAM,EAAE;AACR,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE;;ACxDF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChD,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;AACrC,QAAQ,IAAI,CAAC,CAAC,QAAQ;AACtB,MAAM,GAAG;AACT;AACA,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;AACxC,MAAM,EAAE;AACR,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE;;ACdF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;AAC3B,EAAE;;ACFF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;AACpD,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;AACxC,MAAM,EAAE;AACR,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE;;ACXF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7B;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;AACpD,MAAM,EAAE;AACR,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE;;ACVF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACnD;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE;AAChD,MAAM,EAAE;AACR,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE;;ACVF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrD,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;AACtD,MAAM,EAAE;AACR,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE;;ACVF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrB,EAAE;;ACFF,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7B;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;AACpD,MAAM,EAAE;AACR,IAAI,CAAC;AACL,EAAE,EAAE;AACJ,EAAE;;ACVF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;AACxB,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC;AACA,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM;AAClC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACzC;AACA,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;AAChD,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACjC;AACA,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD;AACA,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG;AAC3D,EAAE;AACF;AACA,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ;AAC5B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1D,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACzE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACnE;AACA,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;AACrG;AACA,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;AAC1E;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACjB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG;AAC5E,IAAI,CAAC;AACL,EAAE,CAAC;AACH;AACA,EAAE,MAAM,CAAC,MAAM,CAAC;AAChB,EAAE;AACF;AACA,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS;AAC5C,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AAC5C,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACpE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AAC/B,GAAG,EAAE;AACL,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AACvC,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK;AACpC,GAAG,EAAE;AACL,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;AACnC,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM;AACrD,GAAG,EAAE;AACL,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE;AAC3D,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW;AACtE,GAAG,EAAE;AACL,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;AAClF,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;AAClC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;AAC9F,GAAG,EAAE;AACL,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,GAAG;AACvI,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;AAClD,GAAG,EAAE;AACL,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;AACnE,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK;AAC1D,GAAG,EAAE;AACL,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC9D,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AAC/C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAC5E,GAAG,EAAE;AACL,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AAC5C,EAAE,GAAG;AACL,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK;AAC1D,GAAG,EAAE;AACL,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AACjF,EAAE,GAAG;AACL,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI;AAChD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAChF,GAAG,EAAE;AACL,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACpD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;AACrE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK;AACvE,GAAG,EAAE;AACL,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI;AACxD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACjE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO;AACxD,GAAG,EAAE;AACL,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACtD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS;AAChE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO;AACxD,GAAG,EAAE;AACL,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACpD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAChE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO;AACxD,GAAG,EAAE;AACL,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACzD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAChE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO;AACxD,GAAG,EAAE;AACL,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AACrD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU;AAC1C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;AACxE,GAAG,EAAE;AACL,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACjE,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AACjD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;AACxE,GAAG,EAAE;AACL,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AAClE,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AAChD,GAAG,EAAE;AACL,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI;AACtD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACrE,GAAG,EAAE;AACL,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;AACrE,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AAC7C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AACnE,GAAG,EAAE;AACL,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;AACxD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AAChD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AACnE,GAAG,EAAE;AACL,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;AACzD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU;AACtE,GAAG,EAAE;AACL,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACpD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACpD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK;AACvE,GAAG,EAAE;AACL,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE;AACnE,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACtD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK;AACvE,GAAG,EAAE;AACL,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE;AACpE,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AAC5C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ;AAC7E,GAAG,EAAE;AACL,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK;AACpE,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AAC7E,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ;AAChF,GAAG,EAAE;AACL,EAAE,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;AAC7F,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ;AACtC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU;AAChG,GAAG,EAAE;AACL,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI;AAC/C,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;AACvC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AAC7D,GAAG,EAAE;AACL,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AACjD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;AACvC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AAC7D,GAAG,EAAE;AACL,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AACjD,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;AACjD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AAC7D,GAAG,EAAE;AACL,EAAE,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AAC/D,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;AACpD,GAAG,EAAE;AACL,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;AAClE;AACA,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAC/B,GAAG,EAAE;AACL,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3B,EAAE,GAAG;AACL,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAChC,GAAG,EAAE;AACL,EAAE,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;AACxC,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;AACjC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;AAC1E,IAAI,EAAE;AACN,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AACnC,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;AAClC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;AAC1E,IAAI,EAAE;AACN,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;AAChD,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;AAC9B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;AACvE,IAAI,EAAE;AACN,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI;AACpC,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC,IAAI,EAAE;AACN,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACtC,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AAC9B,IAAI,EAAE;AACN,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;AAClC,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,IAAI,EAAE;AACN,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;AAChD,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AACjC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM;AAC1E,IAAI,EAAE;AACN,EAAE,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;AAC1C,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACrF,IAAI,EAAE;AACN,EAAE,6BAA6B,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1C,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO;AAC/B,IAAI,EAAE;AACN,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;AAC9B,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO;AAC7B,IAAI,EAAE;AACN,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1B,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;AACvC,IAAI,EAAE;AACN,EAAE,uBAAuB,CAAC,CAAC,CAAC,MAAM,EAAE;AACpC,EAAE,GAAG;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO;AACtC,IAAI,EAAE;AACN,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,EAAE;AACF;AACA,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ;AAChC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,GAAG,CAAC,CAAC,CAAC;AACR,IAAI,KAAK,CAAC,CAAC,EAAE;AACb,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,CAAC;AACd;AACA,EAAE,EAAE;AACJ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACb;AACA,EAAE,EAAE;AACJ,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ;AACA,EAAE,EAAE;AACJ,EAAE,SAAS,CAAC,CAAC,CAAC;AACd,EAAE,CAAC;AACH,EAAE;AACF;AACA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;AAC7B,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;AAChE,GAAG;AACH;AACA,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS;AAC5B,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU;AAC/C,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;AACxD,GAAG;AACH,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM;AAC9F,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;AACnC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;AACzD,GAAG;AACH,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM;AACrE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;AACnC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACzD,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU;AACxC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;AACnF,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AACvC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;AAC9E,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AAC/C,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI;AAChD,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrF,MAAM,MAAM,CAAC,CAAC,QAAQ,EAAE;AACxB,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;AACxC,IAAI,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1E,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AACvE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACrC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;AAC9C,GAAG;AACH,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;AAClC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACrC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,MAAM,EAAE,CAAC,CAAC;AAC1F,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE;AACpB,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK;AAC7B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/G,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;AAC1C,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACjE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AAC5C,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5D,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE;AACnB,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;AACvD,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACzB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACnC,MAAM,MAAM,CAAC,CAAC,KAAK,EAAE;AACrB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1E,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU;AAC5E,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC;AACtB,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE;AACpB,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAChG;AACA,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACrC,QAAQ,MAAM,CAAC,CAAC,KAAK,EAAE;AACvB,MAAM,CAAC;AACP;AACA,MAAM,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC5E,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;AAC5C,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO;AACrE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,MAAM,MAAM,CAAC,CAAC,cAAc,EAAE;AAC9B,IAAI,CAAC;AACL,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AAC7B,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE;AAC3B,IAAI,CAAC;AACL,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG;AACvD,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AAC3C,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;AACrD,GAAG;AACH,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;AAC/D,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9H,IAAI,MAAM,CAAC,CAAC,QAAQ,EAAE;AACtB,EAAE,CAAC;AACH,GAAG;AACH,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW;AAC3C,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE;AACtF,GAAG;AACH;AACA,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ;AACjC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAChE,QAAQ,MAAM,CAAC,CAAC,WAAW,EAAE;AAC7B,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,CAAC;AACH;ACrYA,GAAG;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9E,CAAC,EAAE;AACH,CAAC,QAAQ,EAAE,CAAC,CAAC;AACb,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAC1C,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;AACvC,IAAI;AACJ,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG;AAC3C,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/B,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;AACxF,QAAQ;AACR,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpB,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,UAAU,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG;AACxC,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpB,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG;AACnC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE;AACzE,QAAQ;AACR,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;AACpC,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,UAAU,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG;AAC/C,QAAQ,CAAC;AACT,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;AACjC,QAAQ,IAAI,CAAC,CAAC;AACd,UAAU,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG;AACnC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACtC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpB,UAAU,MAAM,CAAC,OAAO,GAAG;AAC3B,UAAU,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;AACvC,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK;AACxB,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpB,UAAU,MAAM,CAAC,OAAO,GAAG;AAC3B,QAAQ,CAAC;AACT,QAAQ;AACR,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM;AACxB,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE;AACrD,QAAQ,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;AACvC,QAAQ;AACR,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;AAChC,QAAQ,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvC,UAAU,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG;AACjC,QAAQ,GAAG;AACX,QAAQ,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtC,UAAU,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG;AAChC,QAAQ,GAAG;AACX,MAAM,CAAC;AACP,MAAM;AACN,MAAM,MAAM,CAAC,IAAI,CAAC;AAClB,IAAI,EAAE;AACN,EAAE,CAAC;AACH,KAAK;;AC/DL,CAAC,MAAM,CAAC,UAAU,CAAC;AACnB,GAAG","file":"jsoneditor.js","sourcesContent":["/**\n * @name JSON Editor\n * @description JSON Schema Based Editor\n * This library is the continuation of jdorn's great work (see also https://github.com/jdorn/json-editor/issues/800)\n * @version {{ VERSION }}\n * @author Jeremy Dorn\n * @see https://github.com/jdorn/json-editor/\n * @see https://github.com/json-editor/json-editor\n * @license MIT\n * @example see README.md and docs/ for requirements, examples and usage info\n */\n\n;(function (global, factory) {\n\t\"use strict\";\n\tvar JSONEditor = factory(global);\n\tif (typeof module === \"object\" && module != null && module.exports) {\n\t\tmodule.exports = JSONEditor;\n\t} else if (typeof define === \"function\" && define.amd) {\n\t\tdefine(function () { return JSONEditor; });\n\t} else {\n\t\tglobal.JSONEditor = JSONEditor;\n\t}\n})(typeof window !== \"undefined\" ? window : this, function (global, undefined) {\n","/*jshint loopfunc: true */\n/* Simple JavaScript Inheritance\n * By John Resig http://ejohn.org/\n * MIT Licensed.\n */\n// Inspired by base2 and Prototype\nvar Class;\n(function(){\n var initializing = false, fnTest = /xyz/.test(function(){window.postMessage(\"xyz\");}) ? /\\b_super\\b/ : /.*/;\n \n // The base Class implementation (does nothing)\n Class = function(){};\n \n // Create a new Class that inherits from this class\n Class.extend = function extend(prop) {\n var _super = this.prototype;\n \n // Instantiate a base class (but only create the instance,\n // don't run the init constructor)\n initializing = true;\n var prototype = new this();\n initializing = false;\n \n // Copy the properties over onto the new prototype\n for (var name in prop) {\n // Check if we're overwriting an existing function\n prototype[name] = typeof prop[name] == \"function\" &&\n typeof _super[name] == \"function\" && fnTest.test(prop[name]) ?\n (function(name, fn){\n return function() {\n var tmp = this._super;\n \n // Add a new ._super() method that is the same method\n // but on the super-class\n this._super = _super[name];\n \n // The method only need to be bound temporarily, so we\n // remove it when we're done executing\n var ret = fn.apply(this, arguments); \n this._super = tmp;\n \n return ret;\n };\n })(name, prop[name]) :\n prop[name];\n }\n \n // The dummy class constructor\n function Class() {\n // All construction is actually done in the init method\n if ( !initializing && this.init )\n this.init.apply(this, arguments);\n }\n \n // Populate our constructed prototype object\n Class.prototype = prototype;\n \n // Enforce the constructor to be what we expect\n Class.prototype.constructor = Class;\n \n // And make this class extendable\n Class.extend = extend;\n \n return Class;\n };\n \n return Class;\n})();\n","// CustomEvent constructor polyfill\n// From MDN\n(function () {\n function CustomEvent ( event, params ) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n})();\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n// MIT license\n(function() {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || \n window[vendors[x]+'CancelRequestAnimationFrame'];\n }\n \n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() { callback(currTime + timeToCall); }, \n timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n \n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n}());\n\n// Array.isArray polyfill\n// From MDN\n(function() {\n\tif(!Array.isArray) {\n\t Array.isArray = function(arg) {\n\t\treturn Object.prototype.toString.call(arg) === '[object Array]';\n\t };\n\t}\n}());","/**\n * Taken from jQuery 2.1.3\n *\n * @param obj\n * @returns {boolean}\n */\nvar $isplainobject = function( obj ) {\n // Not plain objects:\n // - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n // - DOM nodes\n // - window\n if (typeof obj !== \"object\" || obj.nodeType || (obj !== null && obj === obj.window)) {\n return false;\n }\n\n if (obj.constructor && !Object.prototype.hasOwnProperty.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n\n // If the function hasn't returned already, we're confident that\n // |obj| is a plain object, created by {} or constructed with new Object\n return true;\n};\n\nvar $extend = function(destination) {\n var source, i,property;\n for(i=1; i<arguments.length; i++) {\n source = arguments[i];\n for (property in source) {\n if(!source.hasOwnProperty(property)) continue;\n if(source[property] && $isplainobject(source[property])) {\n if(!destination.hasOwnProperty(property)) destination[property] = {};\n $extend(destination[property], source[property]);\n }\n else {\n destination[property] = source[property];\n }\n }\n }\n return destination;\n};\n\nvar $each = function(obj,callback) {\n if(!obj || typeof obj !== \"object\") return;\n var i;\n if(Array.isArray(obj) || (typeof obj.length === 'number' && obj.length > 0 && (obj.length - 1) in obj)) {\n for(i=0; i<obj.length; i++) {\n if(callback(i,obj[i])===false) return;\n }\n }\n else {\n if (Object.keys) {\n var keys = Object.keys(obj);\n for(i=0; i<keys.length; i++) {\n if(callback(keys[i],obj[keys[i]])===false) return;\n }\n }\n else {\n for(i in obj) {\n if(!obj.hasOwnProperty(i)) continue;\n if(callback(i,obj[i])===false) return;\n }\n }\n }\n};\n\nvar $trigger = function(el,event) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(event, true, true);\n el.dispatchEvent(e);\n};\nvar $triggerc = function(el,event) {\n var e = new CustomEvent(event,{\n bubbles: true,\n cancelable: true\n });\n\n el.dispatchEvent(e);\n};\n","var JSONEditor = function(element,options) {\n if (!(element instanceof Element)) {\n throw new Error('element should be an instance of Element');\n }\n options = $extend({},JSONEditor.defaults.options,options||{});\n this.element = element;\n this.options = options;\n this.init();\n};\nJSONEditor.prototype = {\n // necessary since we remove the ctor property by doing a literal assignment. Without this\n // the $isplainobject function will think that this is a plain object.\n constructor: JSONEditor,\n init: function() {\n var self = this;\n \n this.ready = false;\n this.copyClipboard = null;\n // full references info\n this.refs_with_info = {};\n this.refs_prefix = \"#/counter/\";\n this.refs_counter = 1;\n\n var theme_class = JSONEditor.defaults.themes[this.options.theme || JSONEditor.defaults.theme];\n if(!theme_class) throw \"Unknown theme \" + (this.options.theme || JSONEditor.defaults.theme);\n \n this.schema = this.options.schema;\n this.theme = new theme_class();\n this.template = this.options.template;\n this.refs = this.options.refs || {};\n this.uuid = 0;\n this.__data = {};\n \n var icon_class = JSONEditor.defaults.iconlibs[this.options.iconlib || JSONEditor.defaults.iconlib];\n if(icon_class) this.iconlib = new icon_class();\n\n this.root_container = this.theme.getContainer();\n this.element.appendChild(this.root_container);\n \n this.translate = this.options.translate || JSONEditor.defaults.translate;\n\n // Fetch all external refs via ajax\n var fetchUrl = document.location.toString();\n var fileBase = this._getFileBase();\n this._loadExternalRefs(this.schema, function() {\n self._getDefinitions(self.schema, fetchUrl + '#/definitions/');\n \n // Validator options\n var validator_options = {};\n if(self.options.custom_validators) {\n validator_options.custom_validators = self.options.custom_validators;\n }\n self.validator = new JSONEditor.Validator(self,null,validator_options);\n \n // Create the root editor\n var schema = self.expandRefs(self.schema);\n var editor_class = self.getEditorClass(schema);\n self.root = self.createEditor(editor_class, {\n jsoneditor: self,\n schema: schema,\n required: true,\n container: self.root_container\n });\n \n self.root.preBuild();\n self.root.build();\n self.root.postBuild();\n\n // Starting data\n if(self.options.hasOwnProperty('startval')) self.root.setValue(self.options.startval);\n\n self.validation_results = self.validator.validate(self.root.getValue());\n self.root.showValidationErrors(self.validation_results);\n self.ready = true;\n\n // Fire ready event asynchronously\n window.requestAnimationFrame(function() {\n if(!self.ready) return;\n self.validation_results = self.validator.validate(self.root.getValue());\n self.root.showValidationErrors(self.validation_results);\n self.trigger('ready');\n self.trigger('change');\n });\n }, fetchUrl, fileBase);\n },\n getValue: function() {\n if(!this.ready) throw \"JSON Editor not ready yet. Listen for 'ready' event before getting the value\";\n\n return this.root.getValue();\n },\n setValue: function(value) {\n if(!this.ready) throw \"JSON Editor not ready yet. Listen for 'ready' event before setting the value\";\n\n this.root.setValue(value);\n return this;\n },\n validate: function(value) {\n if(!this.ready) throw \"JSON Editor not ready yet. Listen for 'ready' event before validating\";\n \n // Custom value\n if(arguments.length === 1) {\n return this.validator.validate(value);\n }\n // Current value (use cached result)\n else {\n return this.validation_results;\n }\n },\n destroy: function() {\n if(this.destroyed) return;\n if(!this.ready) return;\n \n this.schema = null;\n this.options = null;\n this.root.destroy();\n this.root = null;\n this.root_container = null;\n this.validator = null;\n this.validation_results = null;\n this.theme = null;\n this.iconlib = null;\n this.template = null;\n this.__data = null;\n this.ready = false;\n this.element.innerHTML = '';\n \n this.destroyed = true;\n },\n on: function(event, callback) {\n this.callbacks = this.callbacks || {};\n this.callbacks[event] = this.callbacks[event] || [];\n this.callbacks[event].push(callback);\n \n return this;\n },\n off: function(event, callback) {\n // Specific callback\n if(event && callback) {\n this.callbacks = this.callbacks || {};\n this.callbacks[event] = this.callbacks[event] || [];\n var newcallbacks = [];\n for(var i=0; i<this.callbacks[event].length; i++) {\n if(this.callbacks[event][i]===callback) continue;\n newcallbacks.push(this.callbacks[event][i]);\n }\n this.callbacks[event] = newcallbacks;\n }\n // All callbacks for a specific event\n else if(event) {\n this.callbacks = this.callbacks || {};\n this.callbacks[event] = [];\n }\n // All callbacks for all events\n else {\n this.callbacks = {};\n }\n \n return this;\n },\n trigger: function(event) {\n if(this.callbacks && this.callbacks[event] && this.callbacks[event].length) {\n for(var i=0; i<this.callbacks[event].length; i++) {\n this.callbacks[event][i].apply(this, []);\n }\n }\n \n return this;\n },\n setOption: function(option, value) {\n if(option === \"show_errors\") {\n this.options.show_errors = value;\n this.onChange();\n }\n // Only the `show_errors` option is supported for now\n else {\n throw \"Option \"+option+\" must be set during instantiation and cannot be changed later\";\n }\n \n return this;\n },\n getEditorClass: function(schema) {\n var classname;\n\n schema = this.expandSchema(schema);\n\n $each(JSONEditor.defaults.resolvers,function(i,resolver) {\n var tmp = resolver(schema);\n if(tmp) {\n if(JSONEditor.defaults.editors[tmp]) {\n classname = tmp;\n return false;\n }\n }\n });\n\n if(!classname) throw \"Unknown editor for schema \"+JSON.stringify(schema);\n if(!JSONEditor.defaults.editors[classname]) throw \"Unknown editor \"+classname;\n\n return JSONEditor.defaults.editors[classname];\n },\n createEditor: function(editor_class, options) {\n options = $extend({},editor_class.options||{},options);\n return new editor_class(options);\n },\n onChange: function() {\n if(!this.ready) return;\n \n if(this.firing_change) return;\n this.firing_change = true;\n \n var self = this;\n \n window.requestAnimationFrame(function() {\n self.firing_change = false;\n if(!self.ready) return;\n\n // Validate and cache results\n self.validation_results = self.validator.validate(self.root.getValue());\n \n if(self.options.show_errors !== \"never\") {\n self.root.showValidationErrors(self.validation_results);\n }\n else {\n self.root.showValidationErrors([]);\n }\n \n // Fire change event\n self.trigger('change');\n });\n \n return this;\n },\n compileTemplate: function(template, name) {\n name = name || JSONEditor.defaults.template;\n\n var engine;\n\n // Specifying a preset engine\n if(typeof name === 'string') {\n if(!JSONEditor.defaults.templates[name]) throw \"Unknown template engine \"+name;\n engine = JSONEditor.defaults.templates[name]();\n\n if(!engine) throw \"Template engine \"+name+\" missing required library.\";\n }\n // Specifying a custom engine\n else {\n engine = name;\n }\n\n if(!engine) throw \"No template engine set\";\n if(!engine.compile) throw \"Invalid template engine set\";\n\n return engine.compile(template);\n },\n _data: function(el,key,value) {\n // Setting data\n if(arguments.length === 3) {\n var uuid;\n if(el.hasAttribute('data-jsoneditor-'+key)) {\n uuid = el.getAttribute('data-jsoneditor-'+key);\n }\n else {\n uuid = this.uuid++;\n el.setAttribute('data-jsoneditor-'+key,uuid);\n }\n\n this.__data[uuid] = value;\n }\n // Getting data\n else {\n // No data stored\n if(!el.hasAttribute('data-jsoneditor-'+key)) return null;\n \n return this.__data[el.getAttribute('data-jsoneditor-'+key)];\n }\n },\n registerEditor: function(editor) {\n this.editors = this.editors || {};\n this.editors[editor.path] = editor;\n return this;\n },\n unregisterEditor: function(editor) {\n this.editors = this.editors || {};\n this.editors[editor.path] = null;\n return this;\n },\n getEditor: function(path) {\n if(!this.editors) return;\n return this.editors[path];\n },\n watch: function(path,callback) {\n this.watchlist = this.watchlist || {};\n this.watchlist[path] = this.watchlist[path] || [];\n this.watchlist[path].push(callback);\n \n return this;\n },\n unwatch: function(path,callback) {\n if(!this.watchlist || !this.watchlist[path]) return this;\n // If removing all callbacks for a path\n if(!callback) {\n this.watchlist[path] = null;\n return this;\n }\n \n var newlist = [];\n for(var i=0; i<this.watchlist[path].length; i++) {\n if(this.watchlist[path][i] === callback) continue;\n else newlist.push(this.watchlist[path][i]);\n }\n this.watchlist[path] = newlist.length? newlist : null;\n return this;\n },\n notifyWatchers: function(path) {\n if(!this.watchlist || !this.watchlist[path]) return this;\n for(var i=0; i<this.watchlist[path].length; i++) {\n this.watchlist[path][i]();\n }\n },\n isEnabled: function() {\n return !this.root || this.root.isEnabled();\n },\n enable: function() {\n this.root.enable();\n },\n disable: function() {\n this.root.disable();\n },\n _getDefinitions: function(schema,path) {\n if(schema.definitions) {\n for(var i in schema.definitions) {\n if(!schema.definitions.hasOwnProperty(i)) continue;\n this.refs[path+i] = schema.definitions[i];\n if(schema.definitions[i].definitions) {\n this._getDefinitions(schema.definitions[i],path+i+'/definitions/');\n }\n }\n }\n },\n _getExternalRefs: function(schema, fetchUrl) {\n var refs = {};\n var merge_refs = function(newrefs) {\n for(var i in newrefs) {\n if(newrefs.hasOwnProperty(i)) {\n refs[i] = true;\n }\n }\n };\n \n if(schema.$ref && typeof schema.$ref !== \"object\") {\n var ref_counter = this.refs_prefix + this.refs_counter++;\n if(schema.$ref.substr(0,1) !== \"#\" && !this.refs[schema.$ref]) {\n refs[schema.$ref] = true;\n }\n this.refs_with_info[ref_counter] = { fetchUrl: fetchUrl, \"$ref\": schema.$ref };\n schema.$ref = ref_counter;\n }\n \n for(var i in schema) {\n if(!schema.hasOwnProperty(i)) continue;\n if (!schema[i] || typeof schema[i] !== \"object\") continue;\n if(Array.isArray(schema[i])) {\n for(var j=0; j<schema[i].length; j++) {\n if(schema[i][j] && typeof schema[i][j]===\"object\") {\n merge_refs(this._getExternalRefs(schema[i][j], fetchUrl));\n }\n }\n }\n else {\n merge_refs(this._getExternalRefs(schema[i], fetchUrl));\n }\n }\n return refs;\n },\n _getFileBase: function() {\n var fileBase = this.options.ajaxBase;\n if (typeof fileBase === 'undefined') {\n fileBase = this._getFileBaseFromFileLocation(document.location.toString());\n }\n return fileBase;\n },\n _getFileBaseFromFileLocation: function(fileLocationString) {\n var pathItems = fileLocationString.split(\"/\");\n pathItems.pop();\n return pathItems.join(\"/\")+\"/\";\n },\n _loadExternalRefs: function(schema, callback, fetchUrl, fileBase) {\n var self = this;\n var refs = this._getExternalRefs(schema, fetchUrl);\n var done = 0, waiting = 0, callback_fired = false;\n\n $each(refs,function(url) {\n if(self.refs[url]) return;\n if(!self.options.ajax) throw \"Must set ajax option to true to load external ref \"+url;\n self.refs[url] = 'loading';\n waiting++;\n\n var fetchUrl=url;\n if( fileBase!=url.substr(0,fileBase.length) && \"http\"!=url.substr(0,4) && \"/\"!=url.substr(0,1)) fetchUrl=fileBase+url;\n\n var r = new XMLHttpRequest();\n r.overrideMimeType('application/json');\n r.open(\"GET\", fetchUrl, true);\n if(self.options.ajaxCredentials) r.withCredentials=self.options.ajaxCredentials;\n r.onreadystatechange = function () {\n if (r.readyState != 4) return;\n // Request succeeded\n if(r.status === 200) {\n var response;\n try {\n response = JSON.parse(r.responseText);\n }\n catch(e) {\n window.console.log(e);\n throw \"Failed to parse external ref \"+fetchUrl;\n }\n if (!(typeof response === \"boolean\" || typeof response === \"object\") || response === null || Array.isArray(response)) throw \"External ref does not contain a valid schema - \"+fetchUrl; \n\n self.refs[url] = response;\n var fileBase = self._getFileBaseFromFileLocation(fetchUrl);\n self._getDefinitions(response, fetchUrl + \"#/definitions/\");\n self._loadExternalRefs(response,function() {\n done++;\n if(done >= waiting && !callback_fired) {\n callback_fired = true;\n callback();\n }\n }, fetchUrl, fileBase);\n }\n // Request failed\n else {\n window.console.log(r);\n throw \"Failed to fetch ref via ajax- \"+url;\n }\n };\n r.send();\n });\n \n if(!waiting) {\n callback();\n }\n },\n expandRefs: function(schema) {\n schema = $extend({},schema);\n \n while (schema.$ref) {\n var refObj = this.refs_with_info[schema.$ref];\n delete schema.$ref;\n var fetchUrl = \"\";\n if (refObj.$ref.startsWith(\"#\")) {\n fetchUrl = refObj.fetchUrl;\n }\n var ref = fetchUrl + refObj.$ref;\n if(!this.refs[ref]) ref = fetchUrl + decodeURIComponent(refObj.$ref);\n schema = this.extendSchemas(schema, $extend({},this.refs[ref]));\n }\n return schema;\n },\n expandSchema: function(schema, fileBase) {\n var self = this;\n var extended = $extend({},schema);\n var i;\n\n // Version 3 `type`\n if(typeof schema.type === 'object') {\n // Array of types\n if(Array.isArray(schema.type)) {\n $each(schema.type, function(key,value) {\n // Schema\n if(typeof value === 'object') {\n schema.type[key] = self.expandSchema(value);\n }\n });\n }\n // Schema\n else {\n schema.type = self.expandSchema(schema.type);\n }\n }\n // Version 3 `disallow`\n if(typeof schema.disallow === 'object') {\n // Array of types\n if(Array.isArray(schema.disallow)) {\n $each(schema.disallow, function(key,value) {\n // Schema\n if(typeof value === 'object') {\n schema.disallow[key] = self.expandSchema(value);\n }\n });\n }\n // Schema\n else {\n schema.disallow = self.expandSchema(schema.disallow);\n }\n }\n // Version 4 `anyOf`\n if(schema.anyOf) {\n $each(schema.anyOf, function(key,value) {\n schema.anyOf[key] = self.expandSchema(value);\n });\n }\n // Version 4 `dependencies` (schema dependencies)\n if(schema.dependencies) {\n $each(schema.dependencies,function(key,value) {\n if(typeof value === \"object\" && !(Array.isArray(value))) {\n schema.dependencies[key] = self.expandSchema(value);\n }\n });\n }\n // Version 4 `not`\n if(schema.not) {\n schema.not = this.expandSchema(schema.not);\n }\n \n // allOf schemas should be merged into the parent\n if(schema.allOf) {\n for(i=0; i<schema.allOf.length; i++) {\n extended = this.extendSchemas(extended,this.expandSchema(schema.allOf[i]));\n }\n delete extended.allOf;\n }\n // extends schemas should be merged into parent\n if(schema[\"extends\"]) {\n // If extends is a schema\n if(!(Array.isArray(schema[\"extends\"]))) {\n extended = this.extendSchemas(extended,this.expandSchema(schema[\"extends\"]));\n }\n // If extends is an array of schemas\n else {\n for(i=0; i<schema[\"extends\"].length; i++) {\n extended = this.extendSchemas(extended,this.expandSchema(schema[\"extends\"][i]));\n }\n }\n delete extended[\"extends\"];\n }\n // parent should be merged into oneOf schemas\n if(schema.oneOf) {\n var tmp = $extend({},extended);\n delete tmp.oneOf;\n for(i=0; i<schema.oneOf.length; i++) {\n extended.oneOf[i] = this.extendSchemas(this.expandSchema(schema.oneOf[i]),tmp);\n }\n }\n \n return this.expandRefs(extended);\n },\n extendSchemas: function(obj1, obj2) {\n obj1 = $extend({},obj1);\n obj2 = $extend({},obj2);\n\n var self = this;\n var extended = {};\n $each(obj1, function(prop,val) {\n // If this key is also defined in obj2, merge them\n if(typeof obj2[prop] !== \"undefined\") {\n // Required and defaultProperties arrays should be unioned together\n if((prop === 'required'||prop === 'defaultProperties') && typeof val === \"object\" && Array.isArray(val)) {\n // Union arrays and unique\n extended[prop] = val.concat(obj2[prop]).reduce(function(p, c) {\n if (p.indexOf(c) < 0) p.push(c);\n return p;\n }, []);\n }\n // Type should be intersected and is either an array or string\n else if(prop === 'type' && (typeof val === \"string\" || Array.isArray(val))) {\n // Make sure we're dealing with arrays\n if(typeof val === \"string\") val = [val];\n if(typeof obj2.type === \"string\") obj2.type = [obj2.type];\n\n // If type is only defined in the first schema, keep it\n if(!obj2.type || !obj2.type.length) {\n extended.type = val;\n }\n // If type is defined in both schemas, do an intersect\n else {\n extended.type = val.filter(function(n) {\n return obj2.type.indexOf(n) !== -1;\n });\n }\n\n // If there's only 1 type and it's a primitive, use a string instead of array\n if(extended.type.length === 1 && typeof extended.type[0] === \"string\") {\n extended.type = extended.type[0];\n }\n // Remove the type property if it's empty\n else if(extended.type.length === 0) {\n delete extended.type;\n }\n }\n // All other arrays should be intersected (enum, etc.)\n else if(typeof val === \"object\" && Array.isArray(val)){\n extended[prop] = val.filter(function(n) {\n return obj2[prop].indexOf(n) !== -1;\n });\n }\n // Objects should be recursively merged\n else if(typeof val === \"object\" && val !== null) {\n extended[prop] = self.extendSchemas(val,obj2[prop]);\n }\n // Otherwise, use the first value\n else {\n extended[prop] = val;\n }\n }\n // Otherwise, just use the one in obj1\n else {\n extended[prop] = val;\n }\n });\n // Properties in obj2 that aren't in obj1\n $each(obj2, function(prop,val) {\n if(typeof obj1[prop] === \"undefined\") {\n extended[prop] = val;\n }\n });\n\n return extended;\n },\n setCopyClipboardContents: function(value) {\n this.copyClipboard = value;\n },\n getCopyClipboardContents: function() {\n return this.copyClipboard;\n }\n};\n\nJSONEditor.defaults = {\n themes: {},\n templates: {},\n iconlibs: {},\n editors: {},\n languages: {},\n resolvers: [],\n custom_validators: []\n};\n","JSONEditor.Validator = Class.extend({\n init: function(jsoneditor,schema,options) {\n this.jsoneditor = jsoneditor;\n this.schema = schema || this.jsoneditor.schema;\n this.options = options || {};\n this.translate = this.jsoneditor.translate || JSONEditor.defaults.translate;\n },\n validate: function(value) {\n return this._validateSchema(this.schema, value);\n },\n _validateSchema: function(schema,value,path) {\n var self = this;\n var errors = [];\n var valid, i, j;\n var stringified = JSON.stringify(value);\n\n path = path || 'root';\n\n // Work on a copy of the schema\n schema = $extend({},this.jsoneditor.expandRefs(schema));\n\n /*\n * Type Agnostic Validation\n */\n\n // Version 3 `required` and `required_by_default`\n if(typeof value === \"undefined\") {\n if((typeof schema.required !== \"undefined\" && schema.required === true) || (typeof schema.required === \"undefined\" && this.jsoneditor.options.required_by_default === true)) {\n errors.push({\n path: path,\n property: 'required',\n message: this.translate(\"error_notset\")\n });\n }\n \n return errors;\n }\n\n // `enum`\n if(schema[\"enum\"]) {\n valid = false;\n for(i=0; i<schema[\"enum\"].length; i++) {\n if(stringified === JSON.stringify(schema[\"enum\"][i])) valid = true;\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'enum',\n message: this.translate(\"error_enum\")\n });\n }\n }\n\n // `extends` (version 3)\n if(schema[\"extends\"]) {\n for(i=0; i<schema[\"extends\"].length; i++) {\n errors = errors.concat(this._validateSchema(schema[\"extends\"][i],value,path));\n }\n }\n\n // `allOf`\n if(schema.allOf) {\n for(i=0; i<schema.allOf.length; i++) {\n errors = errors.concat(this._validateSchema(schema.allOf[i],value,path));\n }\n }\n\n // `anyOf`\n if(schema.anyOf) {\n valid = false;\n for(i=0; i<schema.anyOf.length; i++) {\n if(!this._validateSchema(schema.anyOf[i],value,path).length) {\n valid = true;\n break;\n }\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'anyOf',\n message: this.translate('error_anyOf')\n });\n }\n }\n\n // `oneOf`\n if(schema.oneOf) {\n valid = 0;\n var oneof_errors = [];\n for(i=0; i<schema.oneOf.length; i++) {\n // Set the error paths to be path.oneOf[i].rest.of.path\n var tmp = this._validateSchema(schema.oneOf[i],value,path);\n if(!tmp.length) {\n valid++;\n }\n\n for(j=0; j<tmp.length; j++) {\n tmp[j].path = path+'.oneOf['+i+']'+tmp[j].path.substr(path.length);\n }\n oneof_errors = oneof_errors.concat(tmp);\n\n }\n if(valid !== 1) {\n errors.push({\n path: path,\n property: 'oneOf',\n message: this.translate('error_oneOf', [valid])\n });\n errors = errors.concat(oneof_errors);\n }\n }\n\n // `not`\n if(schema.not) {\n if(!this._validateSchema(schema.not,value,path).length) {\n errors.push({\n path: path,\n property: 'not',\n message: this.translate('error_not')\n });\n }\n }\n\n // `type` (both Version 3 and Version 4 support)\n if(schema.type) {\n // Union type\n if(Array.isArray(schema.type)) {\n valid = false;\n for(i=0;i<schema.type.length;i++) {\n if(this._checkType(schema.type[i], value)) {\n valid = true;\n break;\n }\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'type',\n message: this.translate('error_type_union')\n });\n }\n }\n // Simple type\n else {\n if(['date', 'time', 'datetime-local'].indexOf(schema.format) != -1 && schema.type == 'integer') {\n // Hack to get validator to validate as string even if value is integer\n // As validation of 'date', 'time', 'datetime-local' is done in separate validator\n if(!this._checkType('string', \"\"+value)) {\n errors.push({\n path: path,\n property: 'type',\n message: this.translate('error_type', [schema.format])\n });\n }\n }\n else if(!this._checkType(schema.type, value)) {\n errors.push({\n path: path,\n property: 'type',\n message: this.translate('error_type', [schema.type])\n });\n }\n }\n }\n\n\n // `disallow` (version 3)\n if(schema.disallow) {\n // Union type\n if(Array.isArray(schema.disallow)) {\n valid = true;\n for(i=0;i<schema.disallow.length;i++) {\n if(this._checkType(schema.disallow[i], value)) {\n valid = false;\n break;\n }\n }\n if(!valid) {\n errors.push({\n path: path,\n property: 'disallow',\n message: this.translate('error_disallow_union')\n });\n }\n }\n // Simple type\n else {\n if(this._checkType(schema.disallow, value)) {\n errors.push({\n path: path,\n property: 'disallow',\n message: this.translate('error_disallow', [schema.disallow])\n });\n }\n }\n }\n\n /*\n * Type Specific Validation\n */\n\n // Number Specific Validation\n if(typeof value === \"number\") {\n // `multipleOf` and `divisibleBy`\n if(schema.multipleOf || schema.divisibleBy) {\n var divisor = schema.multipleOf || schema.divisibleBy;\n // Vanilla JS, prone to floating point rounding errors (e.g. 1.14 / .01 == 113.99999)\n valid = (value/divisor === Math.floor(value/divisor));\n\n // Use math.js is available\n if(window.math) {\n valid = window.math.mod(window.math.bignumber(value), window.math.bignumber(divisor)).equals(0);\n }\n // Use decimal.js is available\n else if(window.Decimal) {\n valid = (new window.Decimal(value)).mod(new window.Decimal(divisor)).equals(0);\n }\n\n if(!valid) {\n errors.push({\n path: path,\n property: schema.multipleOf? 'multipleOf' : 'divisibleBy',\n message: this.translate('error_multipleOf', [divisor])\n });\n }\n }\n\n // `maximum`\n if(schema.hasOwnProperty('maximum')) {\n // Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1)\n valid = schema.exclusiveMaximum? (value < schema.maximum) : (value <= schema.maximum);\n\n // Use math.js is available\n if(window.math) {\n valid = window.math[schema.exclusiveMaximum?'smaller':'smallerEq'](\n window.math.bignumber(value),\n window.math.bignumber(schema.maximum)\n );\n }\n // Use Decimal.js if available\n else if(window.Decimal) {\n valid = (new window.Decimal(value))[schema.exclusiveMaximum?'lt':'lte'](new window.Decimal(schema.maximum));\n }\n\n if(!valid) {\n errors.push({\n path: path,\n property: 'maximum',\n message: this.translate(\n (schema.exclusiveMaximum?'error_maximum_excl':'error_maximum_incl'),\n [schema.maximum]\n )\n });\n }\n }\n\n // `minimum`\n if(schema.hasOwnProperty('minimum')) {\n // Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1)\n valid = schema.exclusiveMinimum? (value > schema.minimum) : (value >= schema.minimum);\n\n // Use math.js is available\n if(window.math) {\n valid = window.math[schema.exclusiveMinimum?'larger':'largerEq'](\n window.math.bignumber(value),\n window.math.bignumber(schema.minimum)\n );\n }\n // Use Decimal.js if available\n else if(window.Decimal) {\n valid = (new window.Decimal(value))[schema.exclusiveMinimum?'gt':'gte'](new window.Decimal(schema.minimum));\n }\n\n if(!valid) {\n errors.push({\n path: path,\n property: 'minimum',\n message: this.translate(\n (schema.exclusiveMinimum?'error_minimum_excl':'error_minimum_incl'),\n [schema.minimum]\n )\n });\n }\n }\n }\n // String specific validation\n else if(typeof value === \"string\") {\n // `maxLength`\n if(schema.maxLength) {\n if((value+\"\").length > schema.maxLength) {\n errors.push({\n path: path,\n property: 'maxLength',\n message: this.translate('error_maxLength', [schema.maxLength])\n });\n }\n }\n\n // `minLength`\n if(schema.minLength) {\n if((value+\"\").length < schema.minLength) {\n errors.push({\n path: path,\n property: 'minLength',\n message: this.translate((schema.minLength===1?'error_notempty':'error_minLength'), [schema.minLength])\n });\n }\n }\n\n // `pattern`\n if(schema.pattern) {\n if(!(new RegExp(schema.pattern)).test(value)) {\n errors.push({\n path: path,\n property: 'pattern',\n message: this.translate('error_pattern', [schema.pattern])\n });\n }\n }\n }\n // Array specific validation\n else if(typeof value === \"object\" && value !== null && Array.isArray(value)) {\n // `items` and `additionalItems`\n if(schema.items) {\n // `items` is an array\n if(Array.isArray(schema.items)) {\n for(i=0; i<value.length; i++) {\n // If this item has a specific schema tied to it\n // Validate against it\n if(schema.items[i]) {\n errors = errors.concat(this._validateSchema(schema.items[i],value[i],path+'.'+i));\n }\n // If all additional items are allowed\n else if(schema.additionalItems === true) {\n break;\n }\n // If additional items is a schema\n // TODO: Incompatibility between version 3 and 4 of the spec\n else if(schema.additionalItems) {\n errors = errors.concat(this._validateSchema(schema.additionalItems,value[i],path+'.'+i));\n }\n // If no additional items are allowed\n else if(schema.additionalItems === false) {\n errors.push({\n path: path,\n property: 'additionalItems',\n message: this.translate('error_additionalItems')\n });\n break;\n }\n // Default for `additionalItems` is an empty schema\n else {\n break;\n }\n }\n }\n // `items` is a schema\n else {\n // Each item in the array must validate against the schema\n for(i=0; i<value.length; i++) {\n errors = errors.concat(this._validateSchema(schema.items,value[i],path+'.'+i));\n }\n }\n }\n\n // `maxItems`\n if(schema.maxItems) {\n if(value.length > schema.maxItems) {\n errors.push({\n path: path,\n property: 'maxItems',\n message: this.translate('error_maxItems', [schema.maxItems])\n });\n }\n }\n\n // `minItems`\n if(schema.minItems) {\n if(value.length < schema.minItems) {\n errors.push({\n path: path,\n property: 'minItems',\n message: this.translate('error_minItems', [schema.minItems])\n });\n }\n }\n\n // `uniqueItems`\n if(schema.uniqueItems) {\n var seen = {};\n for(i=0; i<value.length; i++) {\n valid = JSON.stringify(value[i]);\n if(seen[valid]) {\n errors.push({\n path: path,\n property: 'uniqueItems',\n message: this.translate('error_uniqueItems')\n });\n break;\n }\n seen[valid] = true;\n }\n }\n }\n // Object specific validation\n else if(typeof value === \"object\" && value !== null) {\n // `maxProperties`\n if(schema.maxProperties) {\n valid = 0;\n for(i in value) {\n if(!value.hasOwnProperty(i)) continue;\n valid++;\n }\n if(valid > schema.maxProperties) {\n errors.push({\n path: path,\n property: 'maxProperties',\n message: this.translate('error_maxProperties', [schema.maxProperties])\n });\n }\n }\n\n // `minProperties`\n if(schema.minProperties) {\n valid = 0;\n for(i in value) {\n if(!value.hasOwnProperty(i)) continue;\n valid++;\n }\n if(valid < schema.minProperties) {\n errors.push({\n path: path,\n property: 'minProperties',\n message: this.translate('error_minProperties', [schema.minProperties])\n });\n }\n }\n\n // Version 4 `required`\n if(typeof schema.required !== \"undefined\" && Array.isArray(schema.required)) {\n for(i=0; i<schema.required.length; i++) {\n if(typeof value[schema.required[i]] === \"undefined\") {\n errors.push({\n path: path,\n property: 'required',\n message: this.translate('error_required', [schema.required[i]])\n });\n }\n }\n }\n\n // `properties`\n var validated_properties = {};\n for(i in schema.properties) {\n if(!schema.properties.hasOwnProperty(i)) continue;\n validated_properties[i] = true;\n errors = errors.concat(this._validateSchema(schema.properties[i],value[i],path+'.'+i));\n }\n\n // `patternProperties`\n if(schema.patternProperties) {\n for(i in schema.patternProperties) {\n if(!schema.patternProperties.hasOwnProperty(i)) continue;\n var regex = new RegExp(i);\n\n // Check which properties match\n for(j in value) {\n if(!value.hasOwnProperty(j)) continue;\n if(regex.test(j)) {\n validated_properties[j] = true;\n errors = errors.concat(this._validateSchema(schema.patternProperties[i],value[j],path+'.'+j));\n }\n }\n }\n }\n\n // The no_additional_properties option currently doesn't work with extended schemas that use oneOf or anyOf\n if(typeof schema.additionalProperties === \"undefined\" && this.jsoneditor.options.no_additional_properties && !schema.oneOf && !schema.anyOf) {\n schema.additionalProperties = false;\n }\n\n // `additionalProperties`\n if(typeof schema.additionalProperties !== \"undefined\") {\n for(i in value) {\n if(!value.hasOwnProperty(i)) continue;\n if(!validated_properties[i]) {\n // No extra properties allowed\n if(!schema.additionalProperties) {\n errors.push({\n path: path,\n property: 'additionalProperties',\n message: this.translate('error_additional_properties', [i])\n });\n break;\n }\n // Allowed\n else if(schema.additionalProperties === true) {\n break;\n }\n // Must match schema\n // TODO: incompatibility between version 3 and 4 of the spec\n else {\n errors = errors.concat(this._validateSchema(schema.additionalProperties,value[i],path+'.'+i));\n }\n }\n }\n }\n\n // `dependencies`\n if(schema.dependencies) {\n for(i in schema.dependencies) {\n if(!schema.dependencies.hasOwnProperty(i)) continue;\n\n // Doesn't need to meet the dependency\n if(typeof value[i] === \"undefined\") continue;\n\n // Property dependency\n if(Array.isArray(schema.dependencies[i])) {\n for(j=0; j<schema.dependencies[i].length; j++) {\n if(typeof value[schema.dependencies[i][j]] === \"undefined\") {\n errors.push({\n path: path,\n property: 'dependencies',\n message: this.translate('error_dependency', [schema.dependencies[i][j]])\n });\n }\n }\n }\n // Schema dependency\n else {\n errors = errors.concat(this._validateSchema(schema.dependencies[i],value,path));\n }\n }\n }\n }\n\n if (schema.links) {\n for (var m = 0; m < schema.links.length; m++) {\n if (schema.links[m].rel.toLowerCase() === \"describedby\") {\n var href = schema.links[m].href;\n var data = this.jsoneditor.root.getValue();\n //var template = new UriTemplate(href); //preprocessURI(href));\n //var ref = template.fillFromObject(data);\n var template = this.jsoneditor.compileTemplate(href, this.jsoneditor.template);\n var ref = template(data);\n\n schema.links.splice(m, 1);\n\n schema = $extend({}, schema, this.jsoneditor.refs[ref]);\n\n errors = errors.concat(this._validateSchema(schema, value, path));\n }\n }\n }\n\n // date, time and datetime-local validation\n if(['date', 'time', 'datetime-local'].indexOf(schema.format) != -1) {\n\n var validatorRx = {\n 'date': /^(\\d{4}\\D\\d{2}\\D\\d{2})?$/,\n 'time': /^(\\d{2}:\\d{2}(?::\\d{2})?)?$/,\n 'datetime-local': /^(\\d{4}\\D\\d{2}\\D\\d{2}[ T]\\d{2}:\\d{2}(?::\\d{2})?)?$/\n };\n var format = {\n 'date': '\"YYYY-MM-DD\"',\n 'time': '\"HH:MM\"',\n 'datetime-local': '\"YYYY-MM-DD HH:MM\"'\n };\n\n var ed = this.jsoneditor.getEditor(path);\n var dateFormat = (ed && ed.flatpickr) ? ed.flatpickr.config.dateFormat : format[schema.format];\n\n if (schema.type == 'integer') {\n // The value is a timestamp\n if (value * 1 < 1) {\n // If value is less than 1, then it's an invalid epoch date before 00:00:00 UTC Thursday, 1 January 1970\n errors.push({\n path: path,\n property: 'format',\n message: this.translate('error_invalid_epoch')\n });\n }\n else if (value != Math.abs(parseInt(value))) {\n // not much to check for, so we assume value is ok if it's a positive number\n errors.push({\n path: path,\n property: 'format',\n message: this.translate('error_' + schema.format.replace(/-/g, \"_\"), [dateFormat])\n });\n }\n }\n else if (!ed || !ed.flatpickr) {\n // Standard string input, without flatpickr\n if(!validatorRx[schema.format].test(value)) {\n errors.push({\n path: path,\n property: 'format',\n message: this.translate('error_' + schema.format.replace(/-/g, \"_\"), [dateFormat])\n });\n }\n }\n else if (ed) {\n // Flatpickr validation\n if (value !== '') {\n\n var compareValue;\n if(ed.flatpickr.config.mode != 'single') {\n var seperator = ed.flatpickr.config.mode == 'range' ? ed.flatpickr.l10n.rangeSeparator : ', ';\n var selectedDates = ed.flatpickr.selectedDates.map(function(val) {\n return ed.flatpickr.formatDate(val, ed.flatpickr.config.dateFormat);\n });\n compareValue = selectedDates.join(seperator);\n }\n\n try {\n if (compareValue) {\n // Not the best validation method, but range and multiple mode are special\n // Optimal solution would be if it is possible to change the return format from string/integer to array\n if (compareValue != value) throw ed.flatpickr.config.mode + ' mismatch';\n }\n else if (ed.flatpickr.formatDate(ed.flatpickr.parseDate(value, ed.flatpickr.config.dateFormat), ed.flatpickr.config.dateFormat) != value) throw 'mismatch';\n }\n catch(err) {\n var errorDateFormat = ed.flatpickr.config.errorDateFormat !== undefined ? ed.flatpickr.config.errorDateFormat : ed.flatpickr.config.dateFormat;\n errors.push({\n path: path,\n property: 'format',\n message: this.translate('error_' + ed.format.replace(/-/g, \"_\"), [errorDateFormat])\n });\n }\n }\n }\n }\n // Custom type validation (global)\n $each(JSONEditor.defaults.custom_validators,function(i,validator) {\n errors = errors.concat(validator.call(self,schema,value,path));\n });\n // Custom type validation (instance specific)\n if(this.options.custom_validators) {\n $each(this.options.custom_validators,function(i,validator) {\n errors = errors.concat(validator.call(self,schema,value,path));\n });\n }\n\n return errors;\n },\n _checkType: function(type, value) {\n // Simple types\n if(typeof type === \"string\") {\n if(type===\"string\") return typeof value === \"string\";\n else if(type===\"number\") return typeof value === \"number\";\n else if(type===\"integer\") return typeof value === \"number\" && value === Math.floor(value);\n else if(type===\"boolean\") return typeof value === \"boolean\";\n else if(type===\"array\") return Array.isArray(value);\n else if(type === \"object\") return value !== null && !(Array.isArray(value)) && typeof value === \"object\";\n else if(type === \"null\") return value === null;\n else return true;\n }\n // Schema\n else {\n return !this._validateSchema(type,value).length;\n }\n }\n});\n","/**\n * All editors should extend from this class\n */\nJSONEditor.AbstractEditor = Class.extend({\n onChildEditorChange: function(editor) {\n this.onChange(true);\n },\n notify: function() {\n if(this.path) this.jsoneditor.notifyWatchers(this.path);\n },\n change: function() {\n if(this.parent) this.parent.onChildEditorChange(this);\n else if(this.jsoneditor) this.jsoneditor.onChange();\n },\n onChange: function(bubble) {\n this.notify();\n if(this.watch_listener) this.watch_listener();\n if(bubble) this.change();\n },\n register: function() {\n this.jsoneditor.registerEditor(this);\n this.onChange();\n },\n unregister: function() {\n if(!this.jsoneditor) return;\n this.jsoneditor.unregisterEditor(this);\n },\n getNumColumns: function() {\n return 12;\n },\n isActive: function() {\n return this.active;\n },\n activate: function() {\n this.active = true;\n this.optInCheckbox.checked = true;\n this.enable();\n this.change();\n },\n deactivate: function() {\n // only non required properties can be deactivated.\n if (!this.isRequired()) {\n this.active = false;\n this.optInCheckbox.checked = false;\n this.disable();\n this.change();\n }\n },\n init: function(options) {\n this.jsoneditor = options.jsoneditor;\n\n this.theme = this.jsoneditor.theme;\n this.template_engine = this.jsoneditor.template;\n this.iconlib = this.jsoneditor.iconlib;\n\n this.translate = this.jsoneditor.translate || JSONEditor.defaults.translate;\n\n this.original_schema = options.schema;\n this.schema = this.jsoneditor.expandSchema(this.original_schema);\n\n this.active = true;\n\n this.options = $extend({}, (this.options || {}), (this.schema.options || {}), (options.schema.options || {}), options);\n\n if(!options.path && !this.schema.id) this.schema.id = 'root';\n this.path = options.path || 'root';\n this.formname = options.formname || this.path.replace(/\\.([^.]+)/g,'[$1]');\n if(this.jsoneditor.options.form_name_root) this.formname = this.formname.replace(/^root\\[/,this.jsoneditor.options.form_name_root+'[');\n this.key = this.path.split('.').pop();\n this.parent = options.parent;\n\n this.link_watchers = [];\n\n if(options.container) this.setContainer(options.container);\n this.registerDependencies();\n },\n registerDependencies: function() {\n this.dependenciesFulfilled = true;\n var deps = this.options.dependencies;\n if (!deps) {\n return;\n }\n\n var self = this;\n Object.keys(deps).forEach(function(dependency) {\n var path = self.path.split('.');\n path[path.length - 1] = dependency;\n path = path.join('.');\n var choices = deps[dependency];\n self.jsoneditor.watch(path, function() {\n self.checkDependency(path, choices);\n });\n });\n },\n checkDependency: function(path, choices) {\n var wrapper = this.container || this.control;\n if (this.path === path || !wrapper || this.jsoneditor === null) { \n return;\n }\n\n var self = this;\n var editor = this.jsoneditor.getEditor(path);\n var value = editor ? editor.getValue() : undefined;\n var previousStatus = this.dependenciesFulfilled;\n this.dependenciesFulfilled = false;\n\n if (!editor || !editor.dependenciesFulfilled) {\n this.dependenciesFulfilled = false;\n } else if (Array.isArray(choices)) {\n choices.some(function(choice) {\n if (value === choice) {\n self.dependenciesFulfilled = true;\n return true;\n }\n });\n } else if (typeof choices === 'object') {\n if (typeof value !== 'object') {\n this.dependenciesFulfilled = choices === value;\n } else {\n Object.keys(choices).some(function(key) {\n if (!choices.hasOwnProperty(key)) {\n return false;\n }\n if (!value.hasOwnProperty(key) || choices[key] !== value[key]) {\n self.dependenciesFulfilled = false;\n return true;\n }\n self.dependenciesFulfilled = true;\n });\n }\n } else if (typeof choices === 'string' || typeof choices === 'number') {\n this.dependenciesFulfilled = value === choices;\n } else if (typeof choices === 'boolean') {\n if (choices) {\n this.dependenciesFulfilled = value && value.length > 0;\n } else {\n this.dependenciesFulfilled = !value || value.length === 0;\n }\n }\n\n if (this.dependenciesFulfilled !== previousStatus) {\n this.notify();\n }\n\n if (this.dependenciesFulfilled) {\n wrapper.style.display = 'block';\n } else {\n wrapper.style.display = 'none';\n }\n },\n setContainer: function(container) {\n this.container = container;\n if(this.schema.id) this.container.setAttribute('data-schemaid',this.schema.id);\n if(this.schema.type && typeof this.schema.type === \"string\") this.container.setAttribute('data-schematype',this.schema.type);\n this.container.setAttribute('data-schemapath',this.path);\n },\n setOptInCheckbox: function(header) {\n // the active/deactive checbox control.\n var self = this;\n this.optInCheckbox = document.createElement('input');\n this.optInCheckbox.setAttribute('type', 'checkbox');\n this.optInCheckbox.setAttribute('style', 'margin: 0 10px 0 0;');\n this.optInCheckbox.classList.add('json-editor-opt-in');\n\n this.optInCheckbox.addEventListener('click', function () {\n if (self.isActive()) {\n self.deactivate();\n } else {\n self.activate();\n }\n });\n\n // append active/deactive checkbox if show_opt_in is true\n if (this.jsoneditor.options.show_opt_in || this.options.show_opt_in) {\n // and control to type object editors if they are not required\n if (this.parent && this.parent.schema.type === 'object' && !this.isRequired() && this.header) {\n this.header.appendChild(this.optInCheckbox);\n this.header.insertBefore(this.optInCheckbox, this.header.firstChild);\n }\n }\n\n },\n preBuild: function() {\n\n },\n build: function() {\n\n },\n postBuild: function() {\n this.setupWatchListeners();\n this.addLinks();\n this.setValue(this.getDefault(), true);\n this.updateHeaderText();\n this.register();\n this.onWatchedFieldChange();\n },\n setupWatchListeners: function() {\n var self = this;\n\n // Watched fields\n this.watched = {};\n if(this.schema.vars) this.schema.watch = this.schema.vars;\n this.watched_values = {};\n this.watch_listener = function() {\n if(self.refreshWatchedFieldValues()) {\n self.onWatchedFieldChange();\n }\n };\n\n if(this.schema.hasOwnProperty('watch')) {\n var path,path_parts,first,root,adjusted_path;\n\n for(var name in this.schema.watch) {\n if(!this.schema.watch.hasOwnProperty(name)) continue;\n path = this.schema.watch[name];\n\n if(Array.isArray(path)) {\n if(path.length<2) continue;\n path_parts = [path[0]].concat(path[1].split('.'));\n }\n else {\n path_parts = path.split('.');\n if(!self.theme.closest(self.container,'[data-schemaid=\"'+path_parts[0]+'\"]')) path_parts.unshift('#');\n }\n first = path_parts.shift();\n\n if(first === '#') first = self.jsoneditor.schema.id || 'root';\n\n // Find the root node for this template variable\n root = self.theme.closest(self.container,'[data-schemaid=\"'+first+'\"]');\n if(!root) throw \"Could not find ancestor node with id \"+first;\n\n // Keep track of the root node and path for use when rendering the template\n adjusted_path = root.getAttribute('data-schemapath') + '.' + path_parts.join('.');\n\n self.jsoneditor.watch(adjusted_path,self.watch_listener);\n\n self.watched[name] = adjusted_path;\n }\n }\n\n // Dynamic header\n if(this.schema.headerTemplate) {\n this.header_template = this.jsoneditor.compileTemplate(this.schema.headerTemplate, this.template_engine);\n }\n },\n\n addLinks: function() {\n // Add links\n if(!this.no_link_holder) {\n this.link_holder = this.theme.getLinksHolder();\n this.container.appendChild(this.link_holder);\n if(this.schema.links) {\n for(var i=0; i<this.schema.links.length; i++) {\n this.addLink(this.getLink(this.schema.links[i]));\n }\n }\n }\n },\n onMove: function() {},\n getButton: function(text, icon, title) {\n var btnClass = 'json-editor-btn-'+icon;\n if(!this.iconlib) icon = null;\n else icon = this.iconlib.getIcon(icon);\n\n if(!icon && title) {\n text = title;\n title = null;\n }\n\n var btn = this.theme.getButton(text, icon, title);\n btn.classList.add(btnClass);\n return btn;\n },\n setButtonText: function(button, text, icon, title) {\n if(!this.iconlib) icon = null;\n else icon = this.iconlib.getIcon(icon);\n\n if(!icon && title) {\n text = title;\n title = null;\n }\n\n return this.theme.setButtonText(button, text, icon, title);\n },\n addLink: function(link) {\n if(this.link_holder) this.link_holder.appendChild(link);\n },\n getLink: function(data) {\n var holder, link;\n\n // Get mime type of the link\n var mime = data.mediaType || 'application/javascript';\n var type = mime.split('/')[0];\n\n // Template to generate the link href\n var href = this.jsoneditor.compileTemplate(data.href,this.template_engine);\n var relTemplate = this.jsoneditor.compileTemplate(data.rel ? data.rel : data.href,this.template_engine);\n\n // Template to generate the link's download attribute\n var download = null;\n if(data.download) download = data.download;\n\n if(download && download !== true) {\n download = this.jsoneditor.compileTemplate(download, this.template_engine);\n }\n\n // Image links\n if(type === 'image') {\n holder = this.theme.getBlockLinkHolder();\n link = document.createElement('a');\n link.setAttribute('target','_blank');\n var image = document.createElement('img');\n\n this.theme.createImageLink(holder,link,image);\n\n // When a watched field changes, update the url\n this.link_watchers.push(function(vars) {\n var url = href(vars);\n var rel = relTemplate(vars);\n link.setAttribute('href',url);\n link.setAttribute('title',rel || url);\n image.setAttribute('src',url);\n });\n }\n // Audio/Video links\n else if(['audio','video'].indexOf(type) >=0) {\n holder = this.theme.getBlockLinkHolder();\n\n link = this.theme.getBlockLink();\n link.setAttribute('target','_blank');\n\n var media = document.createElement(type);\n media.setAttribute('controls','controls');\n\n this.theme.createMediaLink(holder,link,media);\n\n // When a watched field changes, update the url\n this.link_watchers.push(function(vars) {\n var url = href(vars);\n var rel = relTemplate(vars);\n link.setAttribute('href',url);\n link.textContent = rel || url;\n media.setAttribute('src',url);\n });\n }\n // Text links\n else {\n link = holder = this.theme.getBlockLink();\n holder.setAttribute('target','_blank');\n holder.textContent = data.rel;\n\n // When a watched field changes, update the url\n this.link_watchers.push(function(vars) {\n var url = href(vars);\n var rel = relTemplate(vars);\n holder.setAttribute('href',url);\n holder.textContent = rel || url;\n });\n }\n\n if(download && link) {\n if(download === true) {\n link.setAttribute('download','');\n }\n else {\n this.link_watchers.push(function(vars) {\n link.setAttribute('download',download(vars));\n });\n }\n }\n\n if(data.class) link.classList.add(data.class);\n\n return holder;\n },\n refreshWatchedFieldValues: function() {\n if(!this.watched_values) return;\n var watched = {};\n var changed = false;\n var self = this;\n\n if(this.watched) {\n var val,editor;\n for(var name in this.watched) {\n if(!this.watched.hasOwnProperty(name)) continue;\n editor = self.jsoneditor.getEditor(this.watched[name]);\n val = editor? editor.getValue() : null;\n if(self.watched_values[name] !== val) changed = true;\n watched[name] = val;\n }\n }\n\n watched.self = this.getValue();\n if(this.watched_values.self !== watched.self) changed = true;\n\n this.watched_values = watched;\n\n return changed;\n },\n getWatchedFieldValues: function() {\n return this.watched_values;\n },\n updateHeaderText: function() {\n if(this.header) {\n var header_text = this.getHeaderText();\n // If the header has children, only update the text node's value\n if(this.header.children.length) {\n for(var i=0; i<this.header.childNodes.length; i++) {\n if(this.header.childNodes[i].nodeType===3) {\n this.header.childNodes[i].nodeValue = this.cleanText(header_text);\n break;\n }\n }\n }\n // Otherwise, just update the entire node\n else {\n if (window.DOMPurify) this.header.innerHTML = window.DOMPurify.sanitize(header_text);\n else this.header.textContent = this.cleanText(header_text);\n }\n }\n },\n getHeaderText: function(title_only) {\n if(this.header_text) return this.header_text;\n else if(title_only) return this.schema.title;\n else return this.getTitle();\n },\n cleanText: function(txt) {\n // Clean out HTML tags from txt\n var tmp = document.createElement('div');\n tmp.innerHTML = txt;\n return (tmp.textContent || tmp.innerText);\n },\n onWatchedFieldChange: function() {\n var vars;\n if(this.header_template) {\n vars = $extend(this.getWatchedFieldValues(),{\n key: this.key,\n i: this.key,\n i0: (this.key*1),\n i1: (this.key*1+1),\n title: this.getTitle()\n });\n var header_text = this.header_template(vars);\n\n if(header_text !== this.header_text) {\n this.header_text = header_text;\n this.updateHeaderText();\n this.notify();\n //this.fireChangeHeaderEvent();\n }\n }\n if(this.link_watchers.length) {\n vars = this.getWatchedFieldValues();\n for(var i=0; i<this.link_watchers.length; i++) {\n this.link_watchers[i](vars);\n }\n }\n },\n setValue: function(value) {\n this.value = value;\n },\n getValue: function() {\n if (!this.dependenciesFulfilled) {\n return undefined;\n }\n return this.value;\n },\n refreshValue: function() {\n\n },\n getChildEditors: function() {\n return false;\n },\n destroy: function() {\n var self = this;\n this.unregister(this);\n $each(this.watched,function(name,adjusted_path) {\n self.jsoneditor.unwatch(adjusted_path,self.watch_listener);\n });\n this.watched = null;\n this.watched_values = null;\n this.watch_listener = null;\n this.header_text = null;\n this.header_template = null;\n this.value = null;\n if(this.container && this.container.parentNode) this.container.parentNode.removeChild(this.container);\n this.container = null;\n this.jsoneditor = null;\n this.schema = null;\n this.path = null;\n this.key = null;\n this.parent = null;\n },\n getDefault: function() {\n if (typeof this.schema[\"default\"] !== 'undefined') {\n return this.schema[\"default\"];\n }\n\n if (typeof this.schema[\"enum\"] !== 'undefined') {\n return this.schema[\"enum\"][0];\n }\n\n var type = this.schema.type || this.schema.oneOf;\n if(type && Array.isArray(type)) type = type[0];\n if(type && typeof type === \"object\") type = type.type;\n if(type && Array.isArray(type)) type = type[0];\n\n if(typeof type === \"string\") {\n if(type === \"number\") return 0.0;\n if(type === \"boolean\") return false;\n if(type === \"integer\") return 0;\n if(type === \"string\") return \"\";\n if(type === \"object\") return {};\n if(type === \"array\") return [];\n }\n\n return null;\n },\n getTitle: function() {\n return this.schema.title || this.key;\n },\n enable: function() {\n this.disabled = false;\n },\n disable: function() {\n this.disabled = true;\n },\n isEnabled: function() {\n return !this.disabled;\n },\n isRequired: function() {\n if(typeof this.schema.required === \"boolean\") return this.schema.required;\n else if(this.parent && this.parent.schema && Array.isArray(this.parent.schema.required)) return this.parent.schema.required.indexOf(this.key) > -1;\n else if(this.jsoneditor.options.required_by_default) return true;\n else return false;\n },\n getDisplayText: function(arr) {\n var disp = [];\n var used = {};\n\n // Determine how many times each attribute name is used.\n // This helps us pick the most distinct display text for the schemas.\n $each(arr,function(i,el) {\n if(el.title) {\n used[el.title] = used[el.title] || 0;\n used[el.title]++;\n }\n if(el.description) {\n used[el.description] = used[el.description] || 0;\n used[el.description]++;\n }\n if(el.format) {\n used[el.format] = used[el.format] || 0;\n used[el.format]++;\n }\n if(el.type) {\n used[el.type] = used[el.type] || 0;\n used[el.type]++;\n }\n });\n\n // Determine display text for each element of the array\n $each(arr,function(i,el) {\n var name;\n\n // If it's a simple string\n if(typeof el === \"string\") name = el;\n // Object\n else if(el.title && used[el.title]<=1) name = el.title;\n else if(el.format && used[el.format]<=1) name = el.format;\n else if(el.type && used[el.type]<=1) name = el.type;\n else if(el.description && used[el.description]<=1) name = el.descripton;\n else if(el.title) name = el.title;\n else if(el.format) name = el.format;\n else if(el.type) name = el.type;\n else if(el.description) name = el.description;\n else if(JSON.stringify(el).length < 500) name = JSON.stringify(el);\n else name = \"type\";\n\n disp.push(name);\n });\n\n // Replace identical display text with \"text 1\", \"text 2\", etc.\n var inc = {};\n $each(disp,function(i,name) {\n inc[name] = inc[name] || 0;\n inc[name]++;\n\n if(used[name] > 1) disp[i] = name + \" \" + inc[name];\n });\n\n return disp;\n },\n\n // Replace space(s) with \"-\" to create valid id value\n getValidId: function(id) {\n id = id === undefined ? \"\" : id.toString();\n return id.replace(/\\s+/g, \"-\");\n },\n setInputAttributes: function(inputAttribute) {\n if (this.schema.options && this.schema.options.inputAttributes) {\n var inputAttributes = this.schema.options.inputAttributes;\n var protectedAttributes = ['name', 'type'].concat(inputAttribute);\n for (var key in inputAttributes) {\n if (inputAttributes.hasOwnProperty(key) && protectedAttributes.indexOf(key.toLowerCase()) == -1) {\n this.input.setAttribute(key, inputAttributes[key]);\n }\n }\n }\n },\n getOption: function(key) {\n try {\n throw \"getOption is deprecated\";\n }\n catch(e) {\n window.console.error(e);\n }\n\n return this.options[key];\n },\n showValidationErrors: function(errors) {\n\n }\n});\n","JSONEditor.defaults.editors[\"null\"] = JSONEditor.AbstractEditor.extend({\n getValue: function() {\n if (!this.dependenciesFulfilled) {\n return undefined;\n }\n return null;\n },\n setValue: function() {\n this.onChange();\n },\n getNumColumns: function() {\n return 2;\n }\n});\n","JSONEditor.defaults.editors.string = JSONEditor.AbstractEditor.extend({\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n setValue: function(value,initial,from_template) {\n var self = this;\n \n if(this.template && !from_template) {\n return;\n }\n \n if(value === null || typeof value === 'undefined') value = \"\";\n else if(typeof value === \"object\") value = JSON.stringify(value);\n else if(typeof value !== \"string\") value = \"\"+value;\n \n if(value === this.serialized) return;\n\n // Sanitize value before setting it\n var sanitized = this.sanitize(value);\n\n if(this.input.value === sanitized) {\n return;\n }\n\n this.input.value = sanitized;\n \n // If using SCEditor, update the WYSIWYG\n if(this.sceditor_instance) {\n this.sceditor_instance.val(sanitized);\n }\n else if(this.SimpleMDE) {\n this.SimpleMDE.value(sanitized);\n }\n else if(this.ace_editor) {\n this.ace_editor.setValue(sanitized);\n this.ace_editor.session.getSelection().clearSelection();\n this.ace_editor.resize();\n }\n \n var changed = from_template || this.getValue() !== value;\n \n this.refreshValue();\n \n if(initial) this.is_dirty = false;\n else if(this.jsoneditor.options.show_errors === \"change\") this.is_dirty = true;\n\n if(this.adjust_height) this.adjust_height(this.input);\n\n // Bubble this setValue to parents if the value changed\n this.onChange(changed);\n },\n getNumColumns: function() {\n var min = Math.ceil(Math.max(this.getTitle().length,this.schema.maxLength||0,this.schema.minLength||0)/5);\n var num;\n \n if(this.input_type === 'textarea') num = 6;\n else if(['text','email'].indexOf(this.input_type) >= 0) num = 4;\n else num = 2;\n \n return Math.min(12,Math.max(min,num));\n },\n build: function() {\n var self = this, i;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n if(this.options.infoText) this.infoButton = this.theme.getInfoButton(this.options.infoText);\n\n this.format = this.schema.format;\n if(!this.format && this.schema.media && this.schema.media.type) {\n this.format = this.schema.media.type.replace(/(^(application|text)\\/(x-)?(script\\.)?)|(-source$)/g,'');\n }\n if(!this.format && this.options.default_format) {\n this.format = this.options.default_format;\n }\n if(this.options.format) {\n this.format = this.options.format;\n }\n\n // Specific format\n if(this.format) {\n // Text Area\n if(this.format === 'textarea') {\n this.input_type = 'textarea';\n this.input = this.theme.getTextareaInput();\n }\n // Range Input\n else if(this.format === 'range') {\n this.input_type = 'range';\n var min = this.schema.minimum || 0;\n var max = this.schema.maximum || Math.max(100,min+1);\n var step = 1;\n if(this.schema.multipleOf) {\n if(min%this.schema.multipleOf) min = Math.ceil(min/this.schema.multipleOf)*this.schema.multipleOf;\n if(max%this.schema.multipleOf) max = Math.floor(max/this.schema.multipleOf)*this.schema.multipleOf;\n step = this.schema.multipleOf;\n }\n\n this.input = this.theme.getRangeInput(min,max,step);\n }\n // Source Code\n else if([\n 'actionscript',\n 'batchfile',\n 'bbcode',\n 'c',\n 'c++',\n 'cpp',\n 'coffee',\n 'csharp',\n 'css',\n 'dart',\n 'django',\n 'ejs',\n 'erlang',\n 'golang',\n 'groovy',\n 'handlebars',\n 'haskell',\n 'haxe',\n 'html',\n 'ini',\n 'jade',\n 'java',\n 'javascript',\n 'json',\n 'less',\n 'lisp',\n 'lua',\n 'makefile',\n 'markdown',\n 'matlab',\n 'mysql',\n 'objectivec',\n 'pascal',\n 'perl',\n 'pgsql',\n 'php',\n 'python',\n 'r',\n 'ruby',\n 'sass',\n 'scala',\n 'scss',\n 'smarty',\n 'sql',\n 'sqlserver',\n 'stylus',\n 'svg',\n 'twig',\n 'vbscript',\n 'xml',\n 'yaml'\n ].indexOf(this.format) >= 0\n ) {\n this.input_type = this.format;\n this.source_code = true;\n \n this.input = this.theme.getTextareaInput();\n }\n // HTML5 Input type\n else {\n this.input_type = this.format;\n this.input = this.theme.getFormInputField(this.input_type);\n }\n }\n // Normal text input\n else {\n this.input_type = 'text';\n this.input = this.theme.getFormInputField(this.input_type);\n }\n \n // minLength, maxLength, and pattern\n if(typeof this.schema.maxLength !== \"undefined\") this.input.setAttribute('maxlength',this.schema.maxLength);\n if(typeof this.schema.pattern !== \"undefined\") this.input.setAttribute('pattern',this.schema.pattern);\n else if(typeof this.schema.minLength !== \"undefined\") this.input.setAttribute('pattern','.{'+this.schema.minLength+',}');\n\n if(this.options.compact) {\n this.container.classList.add('compact');\n }\n else {\n if(this.options.input_width) this.input.style.width = this.options.input_width;\n }\n\n if(this.schema.readOnly || this.schema.readonly || this.schema.template) {\n this.always_disabled = true;\n this.input.setAttribute('readonly', 'true');\n }\n\n // Set custom attributes on input element. Parameter is array of protected keys. Empty array if none.\n this.setInputAttributes(['maxlength', 'pattern', 'readonly', 'min', 'max', 'step']);\n\n this.input\n .addEventListener('change',function(e) { \n e.preventDefault();\n e.stopPropagation();\n \n // Don't allow changing if this field is a template\n if(self.schema.template) {\n this.value = self.value;\n return;\n }\n\n var val = this.value;\n \n // sanitize value\n var sanitized = self.sanitize(val);\n if(val !== sanitized) {\n this.value = sanitized;\n }\n \n self.is_dirty = true;\n\n self.refreshValue();\n self.onChange(true);\n });\n \n if(this.options.input_height) this.input.style.height = this.options.input_height;\n if(this.options.expand_height) {\n this.adjust_height = function(el) {\n if(!el) return;\n var i, ch=el.offsetHeight;\n // Input too short\n if(el.offsetHeight < el.scrollHeight) {\n i=0;\n while(el.offsetHeight < el.scrollHeight+3) {\n if(i>100) break;\n i++;\n ch++;\n el.style.height = ch+'px';\n }\n }\n else {\n i=0;\n while(el.offsetHeight >= el.scrollHeight+3) {\n if(i>100) break;\n i++;\n ch--;\n el.style.height = ch+'px';\n }\n el.style.height = (ch+1)+'px';\n }\n };\n \n this.input.addEventListener('keyup',function(e) {\n self.adjust_height(this);\n });\n this.input.addEventListener('change',function(e) {\n self.adjust_height(this);\n });\n this.adjust_height();\n }\n\n if(this.format) this.input.setAttribute('data-schemaformat',this.format);\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton);\n\n // output element to display the range value when it changes or have default.\n if(this.format === 'range') {\n var output = document.createElement('output');\n output.setAttribute('class', 'range-output');\n this.control.appendChild(output);\n output.value = this.schema.default || Math.max(this.schema.minimum || 0, 0);\n this.input.addEventListener('change', function () {\n output.value = self.input.value;\n });\n this.input.addEventListener('input', function () {\n output.value = self.input.value;\n });\n }\n\n this.container.appendChild(this.control);\n\n // Any special formatting that needs to happen after the input is added to the dom\n window.requestAnimationFrame(function() {\n // Skip in case the input is only a temporary editor,\n // otherwise, in the case of an ace_editor creation,\n // it will generate an error trying to append it to the missing parentNode\n if(self.input.parentNode) self.afterInputReady();\n if(self.adjust_height) self.adjust_height(self.input);\n });\n\n // Compile and store the template\n if(this.schema.template) {\n this.template = this.jsoneditor.compileTemplate(this.schema.template, this.template_engine);\n this.refreshValue();\n }\n else {\n this.refreshValue();\n }\n },\n postBuild: function() {\n this._super();\n // Enable cleave.js support if library is loaded and config is available\n if (window.Cleave && this.schema.options && typeof this.schema.options.cleave == 'object') {\n this.cleave = new window.Cleave(this.input, this.schema.options.cleave);\n }\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n // TODO: WYSIWYG and Markdown editors\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n this.input.disabled = true;\n // TODO: WYSIWYG and Markdown editors\n this._super();\n },\n afterInputReady: function() {\n var self = this, options;\n \n // Code editor\n if(this.source_code) { \n // WYSIWYG html and bbcode editor\n if(this.options.wysiwyg && \n ['html','bbcode'].indexOf(this.input_type) >= 0 && \n window.jQuery && window.jQuery.fn && window.jQuery.fn.sceditor\n ) {\n options = $extend({},{\n plugins: self.input_type==='html'? 'xhtml' : 'bbcode',\n emoticonsEnabled: false,\n width: '100%',\n height: 300\n },JSONEditor.plugins.sceditor,self.options.sceditor_options||{});\n \n window.jQuery(self.input).sceditor(options);\n \n self.sceditor_instance = window.jQuery(self.input).sceditor('instance');\n \n self.sceditor_instance.blur(function() {\n // Get editor's value\n var val = window.jQuery(\"<div>\"+self.sceditor_instance.val()+\"</div>\");\n // Remove sceditor spans/divs\n window.jQuery('#sceditor-start-marker,#sceditor-end-marker,.sceditor-nlf',val).remove();\n // Set the value and update\n self.input.value = val.html();\n self.value = self.input.value;\n self.is_dirty = true;\n self.onChange(true);\n });\n }\n // SimpleMDE for markdown (if it's loaded)\n else if (this.input_type === 'markdown' && window.SimpleMDE) {\n options = $extend({},JSONEditor.plugins.SimpleMDE,{\n element: this.input\n });\n\n this.SimpleMDE = new window.SimpleMDE((options));\n\n this.SimpleMDE.codemirror.on(\"change\",function() {\n self.value = self.SimpleMDE.value();\n self.is_dirty = true;\n self.onChange(true);\n });\n }\n // ACE editor for everything else\n else if(window.ace) {\n var mode = this.input_type;\n // aliases for c/cpp\n if(mode === 'cpp' || mode === 'c++' || mode === 'c') {\n mode = 'c_cpp';\n }\n \n this.ace_container = document.createElement('div');\n this.ace_container.style.width = '100%';\n this.ace_container.style.position = 'relative';\n this.ace_container.style.height = '400px';\n this.input.parentNode.insertBefore(this.ace_container,this.input);\n this.input.style.display = 'none';\n this.ace_editor = window.ace.edit(this.ace_container);\n \n var aceOptions = this.schema.options && this.schema.options.ace;\n if (aceOptions) {\n this.ace_editor.setOptions(aceOptions);\n }\n\n this.ace_editor.setValue(this.getValue());\n this.ace_editor.session.getSelection().clearSelection();\n this.ace_editor.resize();\n\n // The theme\n if(JSONEditor.plugins.ace.theme) this.ace_editor.setTheme('ace/theme/'+JSONEditor.plugins.ace.theme);\n // The mode\n this.ace_editor.getSession().setMode('ace/mode/' + this.schema.format);\n\n // Listen for changes\n this.ace_editor.on('change',function() {\n var val = self.ace_editor.getValue();\n self.input.value = val;\n self.refreshValue();\n self.is_dirty = true;\n self.onChange(true);\n });\n }\n }\n \n self.theme.afterInputReady(self.input);\n },\n refreshValue: function() {\n this.value = this.input.value;\n if(typeof this.value !== \"string\") this.value = '';\n this.serialized = this.value;\n },\n destroy: function() {\n // If using SCEditor, destroy the editor instance\n if(this.sceditor_instance) {\n this.sceditor_instance.destroy();\n }\n else if(this.SimpleMDE) {\n this.SimpleMDE.toTextArea();\n this.SimpleMDE = null;\n }\n else if(this.ace_editor) {\n this.ace_editor.destroy();\n }\n if (this.cleave) {\n this.cleave.destroy();\n }\n\n this.template = null;\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n\n this._super();\n },\n /**\n * This is overridden in derivative editors\n */\n sanitize: function(value) {\n return value;\n },\n /**\n * Re-calculates the value if needed\n */\n onWatchedFieldChange: function() { \n var self = this, vars, j;\n \n // If this editor needs to be rendered by a macro template\n if(this.template) {\n vars = this.getWatchedFieldValues();\n this.setValue(this.template(vars),false,true);\n }\n \n this._super();\n },\n showValidationErrors: function(errors) {\n var self = this;\n \n if(this.jsoneditor.options.show_errors === \"always\") {}\n else if(!this.is_dirty && this.previous_error_setting===this.jsoneditor.options.show_errors) return;\n \n this.previous_error_setting = this.jsoneditor.options.show_errors;\n\n var messages = [];\n $each(errors,function(i,error) {\n if(error.path === self.path) {\n messages.push(error.message);\n }\n });\n\n if(messages.length) {\n this.theme.addInputError(this.input, messages.join('. ')+'.');\n }\n else {\n this.theme.removeInputError(this.input);\n }\n }\n});\n","/**\n * Created by Mehmet Baker on 12.04.2017\n */\nJSONEditor.defaults.editors.hidden = JSONEditor.AbstractEditor.extend({\n register: function () {\n this._super();\n if (!this.input) return;\n this.input.setAttribute('name', this.formname);\n },\n unregister: function () {\n this._super();\n if (!this.input) return;\n this.input.removeAttribute('name');\n },\n setValue: function (value, initial, from_template) {\n var self = this;\n\n if(this.template && !from_template) {\n return;\n }\n\n if(value === null || typeof value === 'undefined') value = \"\";\n else if(typeof value === \"object\") value = JSON.stringify(value);\n else if(typeof value !== \"string\") value = \"\"+value;\n\n if(value === this.serialized) return;\n\n // Sanitize value before setting it\n var sanitized = this.sanitize(value);\n\n if(this.input.value === sanitized) {\n return;\n }\n\n this.input.value = sanitized;\n\n var changed = from_template || this.getValue() !== value;\n\n this.refreshValue();\n\n if(initial) this.is_dirty = false;\n else if(this.jsoneditor.options.show_errors === \"change\") this.is_dirty = true;\n\n if(this.adjust_height) this.adjust_height(this.input);\n\n // Bubble this setValue to parents if the value changed\n this.onChange(changed);\n },\n getNumColumns: function () {\n return 2;\n },\n enable: function () {\n this._super();\n },\n disable: function () {\n this._super();\n },\n refreshValue: function () {\n this.value = this.input.value;\n if (typeof this.value !== \"string\") this.value = '';\n this.serialized = this.value;\n },\n destroy: function () {\n this.template = null;\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n\n this._super();\n },\n /**\n * This is overridden in derivative editors\n */\n sanitize: function (value) {\n return value;\n },\n /**\n * Re-calculates the value if needed\n */\n onWatchedFieldChange: function () {\n var self = this, vars, j;\n\n // If this editor needs to be rendered by a macro template\n if (this.template) {\n vars = this.getWatchedFieldValues();\n this.setValue(this.template(vars), false, true);\n }\n\n this._super();\n },\n build: function () {\n var self = this;\n\n this.format = this.schema.format;\n if (!this.format && this.options.default_format) {\n this.format = this.options.default_format;\n }\n if (this.options.format) {\n this.format = this.options.format;\n }\n\n this.input_type = 'hidden';\n this.input = this.theme.getFormInputField(this.input_type);\n\n if (this.format) this.input.setAttribute('data-schemaformat', this.format);\n\n this.container.appendChild(this.input);\n\n // Compile and store the template\n if (this.schema.template) {\n this.template = this.jsoneditor.compileTemplate(this.schema.template, this.template_engine);\n this.refreshValue();\n }\n else {\n this.refreshValue();\n }\n }\n});","JSONEditor.defaults.editors.number = JSONEditor.defaults.editors.string.extend({\n build: function() {\n this._super();\n\n if (typeof this.schema.minimum !== \"undefined\") {\n var minimum = this.schema.minimum;\n\n if (typeof this.schema.exclusiveMinimum !== \"undefined\") {\n minimum += 1;\n }\n\n this.input.setAttribute(\"min\", minimum);\n }\n\n if (typeof this.schema.maximum !== \"undefined\") {\n var maximum = this.schema.maximum;\n\n if (typeof this.schema.exclusiveMaximum !== \"undefined\") {\n maximum -= 1;\n }\n\n this.input.setAttribute(\"max\", maximum);\n }\n\n if (typeof this.schema.step !== \"undefined\") {\n var step = this.schema.step || 1;\n this.input.setAttribute(\"step\", step);\n }\n\n // Set custom attributes on input element. Parameter is array of protected keys. Empty array if none.\n this.setInputAttributes(['maxlength', 'pattern', 'readonly', 'min', 'max', 'step']);\n\n },\n sanitize: function(value) {\n return (value+\"\").replace(/[^0-9\\.\\-eE]/g,'');\n },\n getNumColumns: function() {\n return 2;\n },\n getValue: function() {\n if (!this.dependenciesFulfilled) {\n return undefined;\n }\n return this.value===''?undefined:this.value*1;\n }\n});\n","JSONEditor.defaults.editors.integer = JSONEditor.defaults.editors.number.extend({\n sanitize: function(value) {\n value = value + \"\";\n return value.replace(/[^0-9\\-]/g,'');\n },\n getNumColumns: function() {\n return 2;\n }\n});\n","JSONEditor.defaults.editors.rating = JSONEditor.defaults.editors.integer.extend({\n build: function() {\n var self = this, i;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n\n // Dynamically add the required CSS the first time this editor is used\n var styleId = 'json-editor-style-rating';\n var styles = document.getElementById(styleId);\n if (!styles) {\n var style = document.createElement('style');\n style.id = styleId;\n style.type = 'text/css';\n style.innerHTML =\n ' .rating-container {' +\n ' display: inline-block;' +\n ' clear: both;' +\n ' }' +\n ' ' +\n ' .rating {' +\n ' float:left;' +\n ' }' +\n ' ' +\n ' /* :not(:checked) is a filter, so that browsers that don’t support :checked don’t' +\n ' follow these rules. Every browser that supports :checked also supports :not(), so' +\n ' it doesn’t make the test unnecessarily selective */' +\n ' .rating:not(:checked) > input {' +\n ' position:absolute;' +\n ' top:-9999px;' +\n ' clip:rect(0,0,0,0);' +\n ' }' +\n ' ' +\n ' .rating:not(:checked) > label {' +\n ' float:right;' +\n ' width:1em;' +\n ' padding:0 .1em;' +\n ' overflow:hidden;' +\n ' white-space:nowrap;' +\n ' cursor:pointer;' +\n ' color:#ddd;' +\n ' }' +\n ' ' +\n ' .rating:not(:checked) > label:before {' +\n ' content: \\'★ \\';' +\n ' }' +\n ' ' +\n ' .rating > input:checked ~ label {' +\n ' color: #FFB200;' +\n ' }' +\n ' ' +\n ' .rating:not([readOnly]):not(:checked) > label:hover,' +\n ' .rating:not([readOnly]):not(:checked) > label:hover ~ label {' +\n ' color: #FFDA00;' +\n ' }' +\n ' ' +\n ' .rating:not([readOnly]) > input:checked + label:hover,' +\n ' .rating:not([readOnly]) > input:checked + label:hover ~ label,' +\n ' .rating:not([readOnly]) > input:checked ~ label:hover,' +\n ' .rating:not([readOnly]) > input:checked ~ label:hover ~ label,' +\n ' .rating:not([readOnly]) > label:hover ~ input:checked ~ label {' +\n ' color: #FF8C0D;' +\n ' }' +\n ' ' +\n ' .rating:not([readOnly]) > label:active {' +\n ' position:relative;' +\n ' top:2px;' +\n ' left:2px;' +\n ' }';\n document.getElementsByTagName('head')[0].appendChild(style);\n }\n\n this.input = this.theme.getFormInputField('hidden');\n this.container.appendChild(this.input);\n\n // Required to keep height\n var ratingContainer = document.createElement('div');\n ratingContainer.classList.add('rating-container');\n\n // Contains options for rating\n var group = document.createElement('div');\n group.setAttribute('name', this.formname);\n group.classList.add('rating');\n ratingContainer.appendChild(group);\n\n if(this.options.compact) this.container.setAttribute('class',this.container.getAttribute('class')+' compact');\n\n var max = this.schema.maximum ? this.schema.maximum : 5;\n if (this.schema.exclusiveMaximum) max--;\n\n this.inputs = [];\n for(i=max; i>0; i--) {\n var id = this.formname + i;\n var radioInput = this.theme.getFormInputField('radio');\n radioInput.setAttribute('id', id);\n radioInput.setAttribute('value', i);\n radioInput.setAttribute('name', this.formname);\n group.appendChild(radioInput);\n this.inputs.push(radioInput);\n\n var label = document.createElement('label');\n label.setAttribute('for', id);\n label.appendChild(document.createTextNode(i + (i == 1 ? ' star' : ' stars')));\n group.appendChild(label);\n }\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n $each(this.inputs,function(i,input) {\n group.setAttribute(\"readOnly\", \"readOnly\");\n input.disabled = true;\n });\n }\n\n ratingContainer\n .addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n self.input.value = e.srcElement.value;\n\n self.is_dirty = true;\n\n self.refreshValue();\n self.watch_listener();\n self.jsoneditor.notifyWatchers(self.path);\n if(self.parent) self.parent.onChildEditorChange(self);\n else self.jsoneditor.onChange();\n });\n\n this.control = this.theme.getFormControl(this.label, ratingContainer, this.description);\n this.container.appendChild(this.control);\n\n this.refreshValue();\n },\n setValue: function(val) {\n var sanitized = this.sanitize(val);\n if(this.value === sanitized) {\n return;\n }\n var self = this;\n $each(this.inputs,function(i,input) {\n if (input.value === sanitized) {\n input.checked = true;\n self.value = sanitized;\n self.input.value = self.value;\n self.watch_listener();\n self.jsoneditor.notifyWatchers(self.path);\n return false;\n }\n });\n }\n});\n","JSONEditor.defaults.editors.object = JSONEditor.AbstractEditor.extend({\n getDefault: function() {\n return $extend({},this.schema[\"default\"] || {});\n },\n getChildEditors: function() {\n return this.editors;\n },\n register: function() {\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].register();\n }\n }\n },\n unregister: function() {\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n return Math.max(Math.min(12,this.maxwidth),3);\n },\n enable: function() {\n if(!this.always_disabled) {\n if(this.editjson_button) this.editjson_button.disabled = false;\n if(this.addproperty_button) this.addproperty_button.disabled = false;\n\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].enable();\n this.editors[i].optInCheckbox.disabled = false;\n }\n }\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n if(this.editjson_button) this.editjson_button.disabled = true;\n if(this.addproperty_button) this.addproperty_button.disabled = true;\n this.hideEditJSON();\n\n this._super();\n if(this.editors) {\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n this.editors[i].disable(always_disabled);\n this.editors[i].optInCheckbox.disabled = true;\n }\n }\n },\n layoutEditors: function() {\n var self = this, i, j;\n\n if(!this.row_container) return;\n\n // Sort editors by propertyOrder\n this.property_order = Object.keys(this.editors);\n this.property_order = this.property_order.sort(function(a,b) {\n var ordera = self.editors[a].schema.propertyOrder;\n var orderb = self.editors[b].schema.propertyOrder;\n if(typeof ordera !== \"number\") ordera = 1000;\n if(typeof orderb !== \"number\") orderb = 1000;\n\n return ordera - orderb;\n });\n\n var container;\n var isCategoriesFormat = (this.format === 'categories');\n var rows = [];\n var key = null;\n var editor = null;\n var row;\n\n if(this.format === 'grid-strict') {\n var rowIndex = 0;\n row = [];\n\n $each(this.property_order, function(j,key) {\n var editor = self.editors[key];\n if (editor.property_removed) {\n return;\n }\n var width = editor.options.hidden ? 0 : (editor.options.grid_columns || editor.getNumColumns());\n var offset = editor.options.hidden ? 0 : (editor.options.grid_offset || 0);\n var gridBreak = editor.options.hidden ? false : (editor.options.grid_break || false);\n var height = editor.options.hidden ? 0 : editor.container.offsetHeight;\n\n var column = {\n key: key,\n width: width,\n offset: offset,\n height: height\n };\n\n row.push(column);\n\n rows[rowIndex] = row;\n\n if (gridBreak) {\n rowIndex++;\n row = [];\n }\n });\n\n // layout hasn't changed\n if (this.layout === JSON.stringify(rows)) return false;\n this.layout = JSON.stringify(rows);\n\n // Layout the form\n container = document.createElement('div');\n for (i = 0; i < rows.length; i++) {\n row = this.theme.getGridRow();\n container.appendChild(row);\n for (j = 0; j < rows[i].length; j++) {\n key = rows[i][j].key;\n editor = this.editors[key];\n if (editor.options.hidden) {\n editor.container.style.display = 'none';\n } else {\n this.theme.setGridColumnSize(editor.container, rows[i][j].width, rows[i][j].offset);\n }\n row.appendChild(editor.container);\n }\n }\n } else if(this.format === 'grid') {\n $each(this.property_order, function(j,key) {\n var editor = self.editors[key];\n if(editor.property_removed) return;\n var found = false;\n var width = editor.options.hidden? 0 : (editor.options.grid_columns || editor.getNumColumns());\n var height = editor.options.hidden? 0 : editor.container.offsetHeight;\n // See if the editor will fit in any of the existing rows first\n for(var i=0; i<rows.length; i++) {\n // If the editor will fit in the row horizontally\n if(rows[i].width + width <= 12) {\n // If the editor is close to the other elements in height\n // i.e. Don't put a really tall editor in an otherwise short row or vice versa\n if(!height || (rows[i].minh*0.5 < height && rows[i].maxh*2 > height)) {\n found = i;\n }\n }\n }\n\n // If there isn't a spot in any of the existing rows, start a new row\n if(found === false) {\n rows.push({\n width: 0,\n minh: 999999,\n maxh: 0,\n editors: []\n });\n found = rows.length-1;\n }\n\n rows[found].editors.push({\n key: key,\n //editor: editor,\n width: width,\n height: height\n });\n rows[found].width += width;\n rows[found].minh = Math.min(rows[found].minh,height);\n rows[found].maxh = Math.max(rows[found].maxh,height);\n });\n\n // Make almost full rows width 12\n // Do this by increasing all editors' sizes proprotionately\n // Any left over space goes to the biggest editor\n // Don't touch rows with a width of 6 or less\n for(i=0; i<rows.length; i++) {\n if(rows[i].width < 12) {\n var biggest = false;\n var new_width = 0;\n for(j=0; j<rows[i].editors.length; j++) {\n if(biggest === false) biggest = j;\n else if(rows[i].editors[j].width > rows[i].editors[biggest].width) biggest = j;\n rows[i].editors[j].width *= 12/rows[i].width;\n rows[i].editors[j].width = Math.floor(rows[i].editors[j].width);\n new_width += rows[i].editors[j].width;\n }\n if(new_width < 12) rows[i].editors[biggest].width += 12-new_width;\n rows[i].width = 12;\n }\n }\n\n // layout hasn't changed\n if(this.layout === JSON.stringify(rows)) return false;\n this.layout = JSON.stringify(rows);\n\n // Layout the form\n container = document.createElement('div');\n for(i=0; i<rows.length; i++) {\n row = this.theme.getGridRow();\n container.appendChild(row);\n for(j=0; j<rows[i].editors.length; j++) {\n key = rows[i].editors[j].key;\n editor = this.editors[key];\n\n if(editor.options.hidden) editor.container.style.display = 'none';\n else this.theme.setGridColumnSize(editor.container,rows[i].editors[j].width);\n row.appendChild(editor.container);\n }\n }\n }\n // Normal layout\n else {\n container = document.createElement('div');\n\n if(isCategoriesFormat) {\n //A container for properties not object nor arrays\n var containerSimple = document.createElement('div');\n //This will be the place to (re)build tabs and panes\n //tabs_holder has 2 childs, [0]: ul.nav.nav-tabs and [1]: div.tab-content\n var newTabs_holder = this.theme.getTopTabHolder(this.schema.title);\n //child [1] of previous, stores panes\n var newTabPanesContainer = this.theme.getTopTabContentHolder(newTabs_holder);\n\n $each(this.property_order, function(i,key){\n var editor = self.editors[key];\n if(editor.property_removed) return;\n var aPane = self.theme.getTabContent();\n var isObjOrArray = editor.schema && (editor.schema.type === \"object\" || editor.schema.type === \"array\");\n //mark the pane\n aPane.isObjOrArray = isObjOrArray;\n var gridRow = self.theme.getGridRow();\n\n //this happens with added properties, they don't have a tab\n if(!editor.tab){\n //Pass the pane which holds the editor\n if(typeof self.basicPane === 'undefined'){\n //There is no basicPane yet, so aPane will be it\n self.addRow(editor,newTabs_holder, aPane);\n }\n else {\n self.addRow(editor,newTabs_holder, self.basicPane);\n }\n }\n\n aPane.id = self.getValidId(editor.tab_text.textContent);\n\n //For simple properties, add them on the same panel (Basic)\n if(!isObjOrArray){\n containerSimple.appendChild(gridRow);\n //There are already some panes\n if(newTabPanesContainer.childElementCount > 0){\n //If first pane is object or array, insert before a simple pane\n if(newTabPanesContainer.firstChild.isObjOrArray){\n //Append pane for simple properties\n aPane.appendChild(containerSimple);\n newTabPanesContainer.insertBefore(aPane,newTabPanesContainer.firstChild);\n //Add \"Basic\" tab\n self.theme.insertBasicTopTab(editor.tab,newTabs_holder);\n //newTabs_holder.firstChild.insertBefore(editor.tab,newTabs_holder.firstChild.firstChild);\n //Update the basicPane\n editor.basicPane = aPane;\n }\n else {\n //We already have a first \"Basic\" pane, just add the new property to it, so\n //do nothing;\n }\n }\n //There is no pane, so add the first (simple) pane\n else {\n //Append pane for simple properties\n aPane.appendChild(containerSimple);\n newTabPanesContainer.appendChild(aPane);\n //Add \"Basic\" tab\n //newTabs_holder.firstChild.appendChild(editor.tab);\n self.theme.addTopTab(newTabs_holder,editor.tab);\n //Update the basicPane\n editor.basicPane = aPane;\n }\n }\n //Objects and arrays earn it's own panes\n else {\n aPane.appendChild(gridRow);\n newTabPanesContainer.appendChild(aPane);\n //newTabs_holder.firstChild.appendChild(editor.tab);\n self.theme.addTopTab(newTabs_holder,editor.tab);\n }\n\n if(editor.options.hidden) editor.container.style.display = 'none';\n else self.theme.setGridColumnSize(editor.container,12);\n //Now, add the property editor to the row\n gridRow.appendChild(editor.container);\n //Update the rowPane (same as self.rows[x].rowPane)\n editor.rowPane = aPane;\n\n });\n\n //Erase old panes\n while (this.tabPanesContainer.firstChild) {\n this.tabPanesContainer.removeChild(this.tabPanesContainer.firstChild);\n }\n\n //Erase old tabs and set the new ones\n var parentTabs_holder = this.tabs_holder.parentNode;\n parentTabs_holder.removeChild(parentTabs_holder.firstChild);\n parentTabs_holder.appendChild(newTabs_holder);\n\n this.tabPanesContainer = newTabPanesContainer;\n this.tabs_holder = newTabs_holder;\n\n //Activate the first tab\n var firstTab = this.theme.getFirstTab(this.tabs_holder);\n if(firstTab){\n $trigger(firstTab,'click');\n }\n return;\n }\n //Normal layout\n else {\n $each(this.property_order, function(i,key) {\n var editor = self.editors[key];\n if(editor.property_removed) return;\n row = self.theme.getGridRow();\n container.appendChild(row);\n\n if(editor.options.hidden) editor.container.style.display = 'none';\n else self.theme.setGridColumnSize(editor.container,12);\n row.appendChild(editor.container);\n });\n }\n }\n //for grid and normal layout\n while (this.row_container.firstChild) {\n this.row_container.removeChild(this.row_container.firstChild);\n }\n this.row_container.appendChild(container);\n },\n getPropertySchema: function(key) {\n // Schema declared directly in properties\n var schema = this.schema.properties[key] || {};\n schema = $extend({},schema);\n var matched = this.schema.properties[key]? true : false;\n\n // Any matching patternProperties should be merged in\n if(this.schema.patternProperties) {\n for(var i in this.schema.patternProperties) {\n if(!this.schema.patternProperties.hasOwnProperty(i)) continue;\n var regex = new RegExp(i);\n if(regex.test(key)) {\n schema.allOf = schema.allOf || [];\n schema.allOf.push(this.schema.patternProperties[i]);\n matched = true;\n }\n }\n }\n\n // Hasn't matched other rules, use additionalProperties schema\n if(!matched && this.schema.additionalProperties && typeof this.schema.additionalProperties === \"object\") {\n schema = $extend({},this.schema.additionalProperties);\n }\n\n return schema;\n },\n preBuild: function() {\n this._super();\n\n this.editors = {};\n this.cached_editors = {};\n var self = this;\n\n this.format = this.options.layout || this.options.object_layout || this.schema.format || this.jsoneditor.options.object_layout || 'normal';\n\n this.schema.properties = this.schema.properties || {};\n\n this.minwidth = 0;\n this.maxwidth = 0;\n\n // If the object should be rendered as a table row\n if(this.options.table_row) {\n $each(this.schema.properties, function(key,schema) {\n var editor = self.jsoneditor.getEditorClass(schema);\n self.editors[key] = self.jsoneditor.createEditor(editor,{\n jsoneditor: self.jsoneditor,\n schema: schema,\n path: self.path+'.'+key,\n parent: self,\n compact: true,\n required: true\n });\n self.editors[key].preBuild();\n\n var width = self.editors[key].options.hidden? 0 : (self.editors[key].options.grid_columns || self.editors[key].getNumColumns());\n\n self.minwidth += width;\n self.maxwidth += width;\n });\n this.no_link_holder = true;\n }\n // If the object should be rendered as a table\n else if(this.options.table) {\n // TODO: table display format\n throw \"Not supported yet\";\n }\n // If the object should be rendered as a div\n else {\n if(!this.schema.defaultProperties) {\n if(this.jsoneditor.options.display_required_only || this.options.display_required_only) {\n this.schema.defaultProperties = [];\n $each(this.schema.properties, function(k,s) {\n if(self.isRequired({key: k, schema: s})) {\n self.schema.defaultProperties.push(k);\n }\n });\n }\n else {\n self.schema.defaultProperties = Object.keys(self.schema.properties);\n }\n }\n\n // Increase the grid width to account for padding\n self.maxwidth += 1;\n\n $each(this.schema.defaultProperties, function(i,key) {\n self.addObjectProperty(key, true);\n\n if(self.editors[key]) {\n self.minwidth = Math.max(self.minwidth,(self.editors[key].options.grid_columns || self.editors[key].getNumColumns()));\n self.maxwidth += (self.editors[key].options.grid_columns || self.editors[key].getNumColumns());\n }\n });\n }\n\n // Sort editors by propertyOrder\n this.property_order = Object.keys(this.editors);\n this.property_order = this.property_order.sort(function(a,b) {\n var ordera = self.editors[a].schema.propertyOrder;\n var orderb = self.editors[b].schema.propertyOrder;\n if(typeof ordera !== \"number\") ordera = 1000;\n if(typeof orderb !== \"number\") orderb = 1000;\n\n return ordera - orderb;\n });\n },\n //\"Borrow\" from arrays code\n addTab: function(idx){\n var self = this;\n var isObjOrArray = self.rows[idx].schema && (self.rows[idx].schema.type === \"object\" || self.rows[idx].schema.type === \"array\");\n if(self.tabs_holder) {\n self.rows[idx].tab_text = document.createElement('span');\n\n if(!isObjOrArray){\n self.rows[idx].tab_text.textContent = (typeof self.schema.basicCategoryTitle === 'undefined') ? \"Basic\" : self.schema.basicCategoryTitle;\n } else {\n self.rows[idx].tab_text.textContent = self.rows[idx].getHeaderText();\n }\n self.rows[idx].tab = self.theme.getTopTab(self.rows[idx].tab_text,this.getValidId(self.rows[idx].tab_text.textContent));\n self.rows[idx].tab.addEventListener('click', function(e) {\n self.active_tab = self.rows[idx].tab;\n self.refreshTabs();\n e.preventDefault();\n e.stopPropagation();\n });\n\n }\n\n },\n addRow: function(editor, tabHolder, aPane) {\n var self = this;\n var rowsLen = this.rows.length;\n var isObjOrArray = editor.schema.type === \"object\" || editor.schema.type === \"array\";\n\n //Add a row\n self.rows[rowsLen] = editor;\n //rowPane stores the editor corresponding pane to set the display style when refreshing Tabs\n self.rows[rowsLen].rowPane = aPane;\n\n if(!isObjOrArray){\n\n //This is the first simple property to be added,\n //add a (\"Basic\") tab for it and save it's row number\n if(typeof self.basicTab === \"undefined\"){\n self.addTab(rowsLen);\n //Store the index row of the first simple property added\n self.basicTab = rowsLen;\n self.basicPane = aPane;\n self.theme.addTopTab(tabHolder, self.rows[rowsLen].tab);\n }\n\n else {\n //Any other simple property gets the same tab (and the same pane) as the first one,\n //so, when 'click' event is fired from a row, it gets the correct (\"Basic\") tab\n self.rows[rowsLen].tab = self.rows[self.basicTab].tab;\n self.rows[rowsLen].tab_text = self.rows[self.basicTab].tab_text;\n self.rows[rowsLen].rowPane = self.rows[self.basicTab].rowPane;\n }\n }\n else {\n self.addTab(rowsLen);\n self.theme.addTopTab(tabHolder, self.rows[rowsLen].tab);\n }\n },\n //Mark the active tab and make visible the corresponding pane, hide others\n refreshTabs: function(refresh_headers) {\n var self = this;\n var basicTabPresent = typeof self.basicTab !== 'undefined';\n var basicTabRefreshed = false;\n\n $each(this.rows, function(i,row) {\n //If it's an orphan row (some property which has been deleted), return\n if(!row.tab || !row.rowPane || !row.rowPane.parentNode) return;\n\n if(basicTabPresent && row.tab == self.rows[self.basicTab].tab && basicTabRefreshed) return;\n\n if(refresh_headers) {\n row.tab_text.textContent = row.getHeaderText();\n }\n else {\n //All rows of simple properties point to the same tab, so refresh just once\n if(basicTabPresent && row.tab == self.rows[self.basicTab].tab) basicTabRefreshed = true;\n\n if(row.tab === self.active_tab) {\n self.theme.markTabActive(row);\n }\n else {\n self.theme.markTabInactive(row);\n }\n }\n });\n },\n build: function() {\n var self = this;\n\n var isCategoriesFormat = (this.format === 'categories');\n this.rows=[];\n this.active_tab = null;\n\n // If the object should be rendered as a table row\n if(this.options.table_row) {\n this.editor_holder = this.container;\n $each(this.editors, function(key,editor) {\n var holder = self.theme.getTableCell();\n self.editor_holder.appendChild(holder);\n\n editor.setContainer(holder);\n editor.build();\n editor.postBuild();\n editor.setOptInCheckbox(editor.header);\n\n if(self.editors[key].options.hidden) {\n holder.style.display = 'none';\n }\n if(self.editors[key].options.input_width) {\n holder.style.width = self.editors[key].options.input_width;\n }\n });\n }\n // If the object should be rendered as a table\n else if(this.options.table) {\n // TODO: table display format\n throw \"Not supported yet\";\n }\n // If the object should be rendered as a div\n else {\n this.header = document.createElement('label');\n this.header.textContent = this.getTitle();\n this.title = this.theme.getHeader(this.header);\n this.container.appendChild(this.title);\n this.container.style.position = 'relative';\n\n // Edit JSON modal\n this.editjson_holder = this.theme.getModal();\n this.editjson_textarea = this.theme.getTextareaInput();\n this.editjson_textarea.style.height = '170px';\n this.editjson_textarea.style.width = '300px';\n this.editjson_textarea.style.display = 'block';\n this.editjson_save = this.getButton('Save','save','Save');\n this.editjson_save.classList.add('json-editor-btntype-save');\n this.editjson_save.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.saveJSON();\n });\n this.editjson_copy = this.getButton('Copy','copy','Copy');\n this.editjson_copy.classList.add('json-editor-btntype-copy');\n this.editjson_copy.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.copyJSON();\n });\n this.editjson_cancel = this.getButton('Cancel','cancel','Cancel');\n this.editjson_cancel.classList.add('json-editor-btntype-cancel');\n this.editjson_cancel.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.hideEditJSON();\n });\n this.editjson_holder.appendChild(this.editjson_textarea);\n this.editjson_holder.appendChild(this.editjson_save);\n this.editjson_holder.appendChild(this.editjson_copy);\n this.editjson_holder.appendChild(this.editjson_cancel);\n\n // Manage Properties modal\n this.addproperty_holder = this.theme.getModal();\n this.addproperty_list = document.createElement('div');\n this.addproperty_list.style.width = '295px';\n this.addproperty_list.style.maxHeight = '160px';\n this.addproperty_list.style.padding = '5px 0';\n this.addproperty_list.style.overflowY = 'auto';\n this.addproperty_list.style.overflowX = 'hidden';\n this.addproperty_list.style.paddingLeft = '5px';\n this.addproperty_list.setAttribute('class', 'property-selector');\n this.addproperty_add = this.getButton('add','add','add');\n this.addproperty_add.classList.add('json-editor-btntype-add');\n this.addproperty_input = this.theme.getFormInputField('text');\n this.addproperty_input.setAttribute('placeholder','Property name...');\n this.addproperty_input.style.width = '220px';\n this.addproperty_input.style.marginBottom = '0';\n this.addproperty_input.style.display = 'inline-block';\n this.addproperty_add.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n if(self.addproperty_input.value) {\n if(self.editors[self.addproperty_input.value]) {\n window.alert('there is already a property with that name');\n return;\n }\n\n self.addObjectProperty(self.addproperty_input.value);\n if(self.editors[self.addproperty_input.value]) {\n self.editors[self.addproperty_input.value].disable();\n }\n self.onChange(true);\n }\n });\n this.addproperty_holder.appendChild(this.addproperty_list);\n this.addproperty_holder.appendChild(this.addproperty_input);\n this.addproperty_holder.appendChild(this.addproperty_add);\n var spacer = document.createElement('div');\n spacer.style.clear = 'both';\n this.addproperty_holder.appendChild(spacer);\n\n // Close properties modal if clicked outside modal\n document.addEventListener('click', function(e) {\n if (!this.addproperty_holder.contains(e.target) && this.adding_property) {\n e.preventDefault();\n e.stopPropagation();\n this.toggleAddProperty();\n }\n }.bind(this));\n\n // Description\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n this.container.appendChild(this.description);\n }\n\n // Validation error placeholder area\n this.error_holder = document.createElement('div');\n this.container.appendChild(this.error_holder);\n\n // Container for child editor area\n this.editor_holder = this.theme.getIndentedPanel();\n this.container.appendChild(this.editor_holder);\n\n // Container for rows of child editors\n this.row_container = this.theme.getGridContainer();\n\n if(isCategoriesFormat) {\n this.tabs_holder = this.theme.getTopTabHolder(this.getValidId(this.schema.title));\n this.tabPanesContainer = this.theme.getTopTabContentHolder(this.tabs_holder);\n this.editor_holder.appendChild(this.tabs_holder);\n }\n else {\n this.tabs_holder = this.theme.getTabHolder(this.getValidId(this.schema.title));\n this.tabPanesContainer = this.theme.getTabContentHolder(this.tabs_holder);\n this.editor_holder.appendChild(this.row_container);\n }\n\n $each(this.editors, function(key,editor) {\n var aPane = self.theme.getTabContent();\n var holder = self.theme.getGridColumn();\n var isObjOrArray = (editor.schema && (editor.schema.type === 'object' || editor.schema.type === 'array')) ? true : false;\n aPane.isObjOrArray = isObjOrArray;\n\n if(isCategoriesFormat){\n if(isObjOrArray) {\n var single_row_container = self.theme.getGridContainer();\n single_row_container.appendChild(holder);\n aPane.appendChild(single_row_container);\n self.tabPanesContainer.appendChild(aPane);\n self.row_container = single_row_container;\n }\n else {\n if(typeof self.row_container_basic === 'undefined'){\n self.row_container_basic = self.theme.getGridContainer();\n aPane.appendChild(self.row_container_basic);\n if(self.tabPanesContainer.childElementCount == 0){\n self.tabPanesContainer.appendChild(aPane);\n }\n else {\n self.tabPanesContainer.insertBefore(aPane,self.tabPanesContainer.childNodes[1]);\n }\n }\n self.row_container_basic.appendChild(holder);\n }\n\n self.addRow(editor,self.tabs_holder,aPane);\n\n aPane.id = self.getValidId(editor.schema.title); //editor.schema.path//tab_text.textContent\n\n }\n else {\n self.row_container.appendChild(holder);\n }\n\n editor.setContainer(holder);\n editor.build();\n editor.postBuild();\n editor.setOptInCheckbox(editor.header);\n });\n\n if(this.rows[0]){\n $trigger(this.rows[0].tab,'click');\n }\n\n // Control buttons\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.editjson_controls = this.theme.getHeaderButtonHolder();\n this.addproperty_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n this.title.appendChild(this.editjson_controls);\n this.title.appendChild(this.addproperty_controls);\n\n // Show/Hide button\n this.collapsed = false;\n this.toggle_button = this.getButton('', 'collapse', this.translate('button_collapse'));\n this.toggle_button.classList.add('json-editor-btntype-toggle');\n this.title_controls.appendChild(this.toggle_button);\n this.toggle_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n if(self.collapsed) {\n self.editor_holder.style.display = '';\n self.collapsed = false;\n self.setButtonText(self.toggle_button,'','collapse',self.translate('button_collapse'));\n }\n else {\n self.editor_holder.style.display = 'none';\n self.collapsed = true;\n self.setButtonText(self.toggle_button,'','expand',self.translate('button_expand'));\n }\n });\n\n // If it should start collapsed\n if(this.options.collapsed) {\n $trigger(this.toggle_button,'click');\n }\n\n // Collapse button disabled\n if(this.schema.options && typeof this.schema.options.disable_collapse !== \"undefined\") {\n if(this.schema.options.disable_collapse) this.toggle_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none';\n }\n\n // Edit JSON Button\n this.editjson_button = this.getButton('JSON','edit','Edit JSON');\n this.editjson_button.classList.add('json-editor-btntype-editjson');\n this.editjson_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.toggleEditJSON();\n });\n this.editjson_controls.appendChild(this.editjson_button);\n this.editjson_controls.appendChild(this.editjson_holder);\n\n // Edit JSON Buttton disabled\n if(this.schema.options && typeof this.schema.options.disable_edit_json !== \"undefined\") {\n if(this.schema.options.disable_edit_json) this.editjson_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_edit_json) {\n this.editjson_button.style.display = 'none';\n }\n\n // Object Properties Button\n this.addproperty_button = this.getButton('Properties','edit', self.translate('button_object_properties'));\n this.addproperty_button.classList.add('json-editor-btntype-properties');\n this.addproperty_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.toggleAddProperty();\n });\n this.addproperty_controls.appendChild(this.addproperty_button);\n this.addproperty_controls.appendChild(this.addproperty_holder);\n this.refreshAddProperties();\n\n // non required properties start deactivated\n this.deactivateNonRequiredProperties();\n\n }\n\n // Fix table cell ordering\n if(this.options.table_row) {\n this.editor_holder = this.container;\n $each(this.property_order,function(i,key) {\n self.editor_holder.appendChild(self.editors[key].container);\n });\n }\n // Layout object editors in grid if needed\n else {\n // Initial layout\n this.layoutEditors();\n // Do it again now that we know the approximate heights of elements\n this.layoutEditors();\n }\n },\n deactivateNonRequiredProperties: function () {\n var self = this;\n // the show_opt_in editor option is for backward compatibility\n if (this.jsoneditor.options.show_opt_in || this.options.show_opt_in) {\n $each(this.editors, function(key, editor) {\n if (!self.isRequired(editor)) {\n self.editors[key].deactivate();\n }\n });\n }\n },\n showEditJSON: function() {\n if(!this.editjson_holder) return;\n this.hideAddProperty();\n\n // Position the form directly beneath the button\n // TODO: edge detection\n this.editjson_holder.style.left = this.editjson_button.offsetLeft+\"px\";\n this.editjson_holder.style.top = this.editjson_button.offsetTop + this.editjson_button.offsetHeight+\"px\";\n\n // Start the textarea with the current value\n this.editjson_textarea.value = JSON.stringify(this.getValue(),null,2);\n\n // Disable the rest of the form while editing JSON\n this.disable();\n\n this.editjson_holder.style.display = '';\n this.editjson_button.disabled = false;\n this.editing_json = true;\n },\n hideEditJSON: function() {\n if(!this.editjson_holder) return;\n if(!this.editing_json) return;\n\n this.editjson_holder.style.display = 'none';\n this.enable();\n this.editing_json = false;\n },\n copyJSON: function() {\n if(!this.editjson_holder) return;\n var ta = document.createElement('textarea');\n ta.value = this.editjson_textarea.value;\n ta.setAttribute('readonly', '');\n ta.style.position = 'absolute';\n ta.style.left = '-9999px';\n document.body.appendChild(ta);\n ta.select();\n document.execCommand('copy');\n document.body.removeChild(ta);\n },\n saveJSON: function() {\n if(!this.editjson_holder) return;\n\n try {\n var json = JSON.parse(this.editjson_textarea.value);\n this.setValue(json);\n this.hideEditJSON();\n this.onChange(true);\n }\n catch(e) {\n window.alert('invalid JSON');\n throw e;\n }\n },\n toggleEditJSON: function() {\n if(this.editing_json) this.hideEditJSON();\n else this.showEditJSON();\n },\n insertPropertyControlUsingPropertyOrder: function (property, control, container) {\n var propertyOrder;\n if (this.schema.properties[property])\n propertyOrder = this.schema.properties[property].propertyOrder;\n if (typeof propertyOrder !== \"number\") propertyOrder = 1000;\n control.propertyOrder = propertyOrder;\n\n for (var i = 0; i < container.childNodes.length; i++) {\n var child = container.childNodes[i];\n if (control.propertyOrder < child.propertyOrder) {\n this.addproperty_list.insertBefore(control, child);\n control = null;\n break;\n }\n }\n if (control) {\n this.addproperty_list.appendChild(control);\n }\n },\n addPropertyCheckbox: function(key) {\n var self = this;\n var checkbox, label, labelText, control;\n\n checkbox = self.theme.getCheckbox();\n checkbox.style.width = 'auto';\n\n if (this.schema.properties[key] && this.schema.properties[key].title)\n labelText = this.schema.properties[key].title;\n else\n labelText = key;\n\n label = self.theme.getCheckboxLabel(labelText);\n\n control = self.theme.getFormControl(label,checkbox);\n control.style.paddingBottom = control.style.marginBottom = control.style.paddingTop = control.style.marginTop = 0;\n control.style.height = 'auto';\n //control.style.overflowY = 'hidden';\n\n this.insertPropertyControlUsingPropertyOrder(key, control, this.addproperty_list);\n\n checkbox.checked = key in this.editors;\n checkbox.addEventListener('change',function() {\n if(checkbox.checked) {\n self.addObjectProperty(key);\n }\n else {\n self.removeObjectProperty(key);\n }\n self.onChange(true);\n });\n self.addproperty_checkboxes[key] = checkbox;\n\n return checkbox;\n },\n showAddProperty: function() {\n if(!this.addproperty_holder) return;\n this.hideEditJSON();\n\n // Position the form directly beneath the button\n // TODO: edge detection\n this.addproperty_holder.style.left = this.addproperty_button.offsetLeft+\"px\";\n this.addproperty_holder.style.top = this.addproperty_button.offsetTop + this.addproperty_button.offsetHeight+\"px\";\n\n // Disable the rest of the form while editing JSON\n this.disable();\n\n this.adding_property = true;\n this.addproperty_button.disabled = false;\n this.addproperty_holder.style.display = '';\n this.refreshAddProperties();\n },\n hideAddProperty: function() {\n if(!this.addproperty_holder) return;\n if(!this.adding_property) return;\n\n this.addproperty_holder.style.display = 'none';\n this.enable();\n\n this.adding_property = false;\n },\n toggleAddProperty: function() {\n if(this.adding_property) this.hideAddProperty();\n else this.showAddProperty();\n },\n removeObjectProperty: function(property) {\n if(this.editors[property]) {\n this.editors[property].unregister();\n delete this.editors[property];\n\n this.refreshValue();\n this.layoutEditors();\n }\n },\n addObjectProperty: function(name, prebuild_only) {\n var self = this;\n\n // Property is already added\n if(this.editors[name]) return;\n\n // Property was added before and is cached\n if(this.cached_editors[name]) {\n this.editors[name] = this.cached_editors[name];\n if(prebuild_only) return;\n this.editors[name].register();\n }\n // New property\n else {\n if(!this.canHaveAdditionalProperties() && (!this.schema.properties || !this.schema.properties[name])) {\n return;\n }\n\n var schema = self.getPropertySchema(name);\n if(typeof schema.propertyOrder !== 'number'){\n // if the propertyOrder undefined, then set a smart default value.\n schema.propertyOrder = Object.keys(self.editors).length + 1000;\n }\n\n\n // Add the property\n var editor = self.jsoneditor.getEditorClass(schema);\n\n self.editors[name] = self.jsoneditor.createEditor(editor,{\n jsoneditor: self.jsoneditor,\n schema: schema,\n path: self.path+'.'+name,\n parent: self\n });\n self.editors[name].preBuild();\n\n if(!prebuild_only) {\n var holder = self.theme.getChildEditorHolder();\n self.editor_holder.appendChild(holder);\n self.editors[name].setContainer(holder);\n self.editors[name].build();\n self.editors[name].postBuild();\n self.editors[name].setOptInCheckbox(editor.header);\n self.editors[name].activate();\n }\n\n self.cached_editors[name] = self.editors[name];\n }\n\n // If we're only prebuilding the editors, don't refresh values\n if(!prebuild_only) {\n self.refreshValue();\n self.layoutEditors();\n }\n },\n onChildEditorChange: function(editor) {\n this.refreshValue();\n this._super(editor);\n },\n canHaveAdditionalProperties: function() {\n if (typeof this.schema.additionalProperties === \"boolean\") {\n return this.schema.additionalProperties;\n }\n return !this.jsoneditor.options.no_additional_properties;\n },\n destroy: function() {\n $each(this.cached_editors, function(i,el) {\n el.destroy();\n });\n if(this.editor_holder) this.editor_holder.innerHTML = '';\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.error_holder && this.error_holder.parentNode) this.error_holder.parentNode.removeChild(this.error_holder);\n\n this.editors = null;\n this.cached_editors = null;\n if(this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder);\n this.editor_holder = null;\n\n this._super();\n },\n getValue: function() {\n if (!this.dependenciesFulfilled) {\n return undefined;\n }\n var result = this._super();\n if(this.jsoneditor.options.remove_empty_properties || this.options.remove_empty_properties) {\n for (var i in result) {\n if (result.hasOwnProperty(i)) {\n if (typeof result[i] === 'undefined' || result[i] === '' || result[i] === Object(result[i]) && Object.keys(result[i]).length == 0 && result[i].constructor == Object) {\n delete result[i];\n }\n }\n }\n }\n\n return result;\n },\n refreshValue: function() {\n this.value = {};\n var self = this;\n\n for(var i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n if (this.editors[i].isActive()) {\n this.value[i] = this.editors[i].getValue();\n }\n }\n\n if(this.adding_property) this.refreshAddProperties();\n },\n refreshAddProperties: function() {\n if(this.options.disable_properties || (this.options.disable_properties !== false && this.jsoneditor.options.disable_properties)) {\n this.addproperty_controls.style.display = 'none';\n return;\n }\n\n var can_add = false, can_remove = false, num_props = 0, i, show_modal = false;\n\n // Get number of editors\n for(i in this.editors) {\n if(!this.editors.hasOwnProperty(i)) continue;\n num_props++;\n }\n\n // Determine if we can add back removed properties\n can_add = this.canHaveAdditionalProperties() && !(typeof this.schema.maxProperties !== \"undefined\" && num_props >= this.schema.maxProperties);\n\n if(this.addproperty_checkboxes) {\n this.addproperty_list.innerHTML = '';\n }\n this.addproperty_checkboxes = {};\n\n // Check for which editors can't be removed or added back\n for(i in this.cached_editors) {\n if(!this.cached_editors.hasOwnProperty(i)) continue;\n\n this.addPropertyCheckbox(i);\n\n if(this.isRequired(this.cached_editors[i]) && i in this.editors) {\n this.addproperty_checkboxes[i].disabled = true;\n }\n\n if(typeof this.schema.minProperties !== \"undefined\" && num_props <= this.schema.minProperties) {\n this.addproperty_checkboxes[i].disabled = this.addproperty_checkboxes[i].checked;\n if(!this.addproperty_checkboxes[i].checked) show_modal = true;\n }\n else if(!(i in this.editors)) {\n if(!can_add && !this.schema.properties.hasOwnProperty(i)) {\n this.addproperty_checkboxes[i].disabled = true;\n }\n else {\n this.addproperty_checkboxes[i].disabled = false;\n show_modal = true;\n }\n }\n else {\n show_modal = true;\n can_remove = true;\n }\n }\n\n if(this.canHaveAdditionalProperties()) {\n show_modal = true;\n }\n\n // Additional addproperty checkboxes not tied to a current editor\n for(i in this.schema.properties) {\n if(!this.schema.properties.hasOwnProperty(i)) continue;\n if(this.cached_editors[i]) continue;\n show_modal = true;\n this.addPropertyCheckbox(i);\n }\n\n // If no editors can be added or removed, hide the modal button\n if(!show_modal) {\n this.hideAddProperty();\n this.addproperty_controls.style.display = 'none';\n }\n // If additional properties are disabled\n else if(!this.canHaveAdditionalProperties()) {\n this.addproperty_add.style.display = 'none';\n this.addproperty_input.style.display = 'none';\n }\n // If no new properties can be added\n else if(!can_add) {\n this.addproperty_add.disabled = true;\n }\n // If new properties can be added\n else {\n this.addproperty_add.disabled = false;\n }\n },\n isRequired: function(editor) {\n if (!editor) {\n return;\n }\n if(typeof editor.schema.required === \"boolean\") return editor.schema.required;\n else if(Array.isArray(this.schema.required)) return this.schema.required.indexOf(editor.key) > -1;\n else if(this.jsoneditor.options.required_by_default) return true;\n else return false;\n },\n setValue: function(value, initial) {\n var self = this;\n value = value || {};\n\n if(typeof value !== \"object\" || Array.isArray(value)) value = {};\n\n // First, set the values for all of the defined properties\n $each(this.cached_editors, function(i,editor) {\n // Value explicitly set\n if(typeof value[i] !== \"undefined\") {\n self.addObjectProperty(i);\n editor.setValue(value[i],initial);\n }\n // Otherwise, remove value unless this is the initial set or it's required\n else if(!initial && !self.isRequired(editor)) {\n self.removeObjectProperty(i);\n }\n // Otherwise, set the value to the default\n else {\n editor.setValue(editor.getDefault(),initial);\n }\n });\n\n $each(value, function(i,val) {\n if(!self.cached_editors[i]) {\n self.addObjectProperty(i);\n if(self.editors[i]) self.editors[i].setValue(val,initial);\n }\n });\n\n this.refreshValue();\n this.layoutEditors();\n this.onChange();\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // Get all the errors that pertain to this editor\n var my_errors = [];\n var other_errors = [];\n $each(errors, function(i,error) {\n if(error.path === self.path) {\n my_errors.push(error);\n }\n else {\n other_errors.push(error);\n }\n });\n\n // Show errors for this editor\n if(this.error_holder) {\n if(my_errors.length) {\n var message = [];\n this.error_holder.innerHTML = '';\n this.error_holder.style.display = '';\n $each(my_errors, function(i,error) {\n self.error_holder.appendChild(self.theme.getErrorMessage(error.message));\n });\n }\n // Hide error area\n else {\n this.error_holder.style.display = 'none';\n }\n }\n\n // Show error for the table row if this is inside a table\n if(this.options.table_row) {\n if(my_errors.length) {\n this.theme.addTableRowError(this.container);\n }\n else {\n this.theme.removeTableRowError(this.container);\n }\n }\n\n // Show errors for child editors\n $each(this.editors, function(i,editor) {\n editor.showValidationErrors(other_errors);\n });\n }\n});\n","JSONEditor.defaults.editors.array = JSONEditor.AbstractEditor.extend({\n askConfirmation: function() {\n if (this.jsoneditor.options.prompt_before_delete === true) {\n if (confirm(\"Are you sure you want to remove this node?\") === false) {\n return false;\n }\n }\n return true;\n },\n getDefault: function() {\n return this.schema[\"default\"] || [];\n },\n register: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].register();\n }\n }\n },\n unregister: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n var info = this.getItemInfo(0);\n // Tabs require extra horizontal space\n if(this.tabs_holder && this.schema.format !== 'tabs-top') {\n return Math.max(Math.min(12,info.width+2),4);\n }\n else {\n return info.width;\n }\n },\n enable: function() {\n if(!this.always_disabled) {\n if(this.add_row_button) this.add_row_button.disabled = false;\n if(this.remove_all_rows_button) this.remove_all_rows_button.disabled = false;\n if(this.delete_last_row_button) this.delete_last_row_button.disabled = false;\n\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].enable();\n\n if(this.rows[i].moveup_button) this.rows[i].moveup_button.disabled = false;\n if(this.rows[i].movedown_button) this.rows[i].movedown_button.disabled = false;\n if(this.rows[i].delete_button) this.rows[i].delete_button.disabled = false;\n }\n }\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n if(this.add_row_button) this.add_row_button.disabled = true;\n if(this.remove_all_rows_button) this.remove_all_rows_button.disabled = true;\n if(this.delete_last_row_button) this.delete_last_row_button.disabled = true;\n\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].disable(always_disabled);\n\n if(this.rows[i].moveup_button) this.rows[i].moveup_button.disabled = true;\n if(this.rows[i].movedown_button) this.rows[i].movedown_button.disabled = true;\n if(this.rows[i].delete_button) this.rows[i].delete_button.disabled = true;\n }\n }\n this._super();\n },\n preBuild: function() {\n this._super();\n\n this.rows = [];\n this.row_cache = [];\n\n this.hide_delete_buttons = this.options.disable_array_delete || this.jsoneditor.options.disable_array_delete;\n this.hide_delete_all_rows_buttons = this.hide_delete_buttons || this.options.disable_array_delete_all_rows || this.jsoneditor.options.disable_array_delete_all_rows;\n this.hide_delete_last_row_buttons = this.hide_delete_buttons || this.options.disable_array_delete_last_row || this.jsoneditor.options.disable_array_delete_last_row;\n this.hide_move_buttons = this.options.disable_array_reorder || this.jsoneditor.options.disable_array_reorder;\n this.hide_add_button = this.options.disable_array_add || this.jsoneditor.options.disable_array_add;\n this.show_copy_button = this.options.enable_array_copy || this.jsoneditor.options.enable_array_copy;\n this.array_controls_top = this.options.array_controls_top || this.jsoneditor.options.array_controls_top;\n },\n build: function() {\n var self = this;\n\n if(!this.options.compact) {\n this.header = document.createElement('label');\n this.header.textContent = this.getTitle();\n this.title = this.theme.getHeader(this.header);\n this.container.appendChild(this.title);\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n this.container.appendChild(this.description);\n }\n this.error_holder = document.createElement('div');\n this.container.appendChild(this.error_holder);\n\n if(this.schema.format === 'tabs-top') {\n this.controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.controls);\n this.tabs_holder = this.theme.getTopTabHolder(this.getValidId(this.getItemTitle()));\n this.container.appendChild(this.tabs_holder);\n this.row_holder = this.theme.getTopTabContentHolder(this.tabs_holder);\n\n this.active_tab = null;\n }\n else if(this.schema.format === 'tabs') {\n this.controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.controls);\n this.tabs_holder = this.theme.getTabHolder(this.getValidId(this.getItemTitle()));\n this.container.appendChild(this.tabs_holder);\n this.row_holder = this.theme.getTabContentHolder(this.tabs_holder);\n\n this.active_tab = null;\n }\n else {\n this.panel = this.theme.getIndentedPanel();\n this.container.appendChild(this.panel);\n this.row_holder = document.createElement('div');\n this.panel.appendChild(this.row_holder);\n this.controls = this.theme.getButtonHolder();\n if (this.array_controls_top) {\n this.title.appendChild(this.controls);\n }\n else {\n this.panel.appendChild(this.controls);\n }\n }\n }\n else {\n this.panel = this.theme.getIndentedPanel();\n this.container.appendChild(this.panel);\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.panel.appendChild(this.title_controls);\n this.controls = this.theme.getButtonHolder();\n this.panel.appendChild(this.controls);\n this.row_holder = document.createElement('div');\n this.panel.appendChild(this.row_holder);\n }\n\n // Add controls\n this.addControls();\n },\n onChildEditorChange: function(editor) {\n this.refreshValue();\n this.refreshTabs(true);\n this._super(editor);\n },\n getItemTitle: function() {\n if(!this.item_title) {\n if(this.schema.items && !Array.isArray(this.schema.items)) {\n var tmp = this.jsoneditor.expandRefs(this.schema.items);\n this.item_title = tmp.title || 'item';\n }\n else {\n this.item_title = 'item';\n }\n }\n return this.cleanText(this.item_title);\n },\n getItemSchema: function(i) {\n if(Array.isArray(this.schema.items)) {\n if(i >= this.schema.items.length) {\n if(this.schema.additionalItems===true) {\n return {};\n }\n else if(this.schema.additionalItems) {\n return $extend({},this.schema.additionalItems);\n }\n }\n else {\n return $extend({},this.schema.items[i]);\n }\n }\n else if(this.schema.items) {\n return $extend({},this.schema.items);\n }\n else {\n return {};\n }\n },\n getItemInfo: function(i) {\n var schema = this.getItemSchema(i);\n\n // Check if it's cached\n this.item_info = this.item_info || {};\n var stringified = JSON.stringify(schema);\n if(typeof this.item_info[stringified] !== \"undefined\") return this.item_info[stringified];\n\n // Get the schema for this item\n schema = this.jsoneditor.expandRefs(schema);\n\n this.item_info[stringified] = {\n title: schema.title || \"item\",\n 'default': schema[\"default\"],\n width: 12,\n child_editors: schema.properties || schema.items\n };\n\n return this.item_info[stringified];\n },\n getElementEditor: function(i) {\n var item_info = this.getItemInfo(i);\n var schema = this.getItemSchema(i);\n schema = this.jsoneditor.expandRefs(schema);\n schema.title = item_info.title+' '+(i+1);\n\n var editor = this.jsoneditor.getEditorClass(schema);\n\n var holder;\n if(this.tabs_holder) {\n if(this.schema.format === 'tabs-top') {\n holder = this.theme.getTopTabContent();\n }\n else {\n holder = this.theme.getTabContent();\n }\n holder.id = this.path+'.'+i;\n }\n else if(item_info.child_editors) {\n holder = this.theme.getChildEditorHolder();\n }\n else {\n holder = this.theme.getIndentedPanel();\n }\n\n this.row_holder.appendChild(holder);\n\n var ret = this.jsoneditor.createEditor(editor,{\n jsoneditor: this.jsoneditor,\n schema: schema,\n container: holder,\n path: this.path+'.'+i,\n parent: this,\n required: true\n });\n ret.preBuild();\n ret.build();\n ret.postBuild();\n\n if(!ret.title_controls) {\n ret.array_controls = this.theme.getButtonHolder();\n holder.appendChild(ret.array_controls);\n }\n\n return ret;\n },\n destroy: function() {\n this.empty(true);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.row_holder && this.row_holder.parentNode) this.row_holder.parentNode.removeChild(this.row_holder);\n if(this.controls && this.controls.parentNode) this.controls.parentNode.removeChild(this.controls);\n if(this.panel && this.panel.parentNode) this.panel.parentNode.removeChild(this.panel);\n\n this.rows = this.row_cache = this.title = this.description = this.row_holder = this.panel = this.controls = null;\n\n this._super();\n },\n empty: function(hard) {\n if(!this.rows) return;\n var self = this;\n $each(this.rows,function(i,row) {\n if(hard) {\n if(row.tab && row.tab.parentNode) row.tab.parentNode.removeChild(row.tab);\n self.destroyRow(row,true);\n self.row_cache[i] = null;\n }\n self.rows[i] = null;\n });\n self.rows = [];\n if(hard) self.row_cache = [];\n },\n destroyRow: function(row,hard) {\n var holder = row.container;\n if(hard) {\n row.destroy();\n if(holder.parentNode) holder.parentNode.removeChild(holder);\n if(row.tab && row.tab.parentNode) row.tab.parentNode.removeChild(row.tab);\n }\n else {\n if(row.tab) row.tab.style.display = 'none';\n holder.style.display = 'none';\n row.unregister();\n }\n },\n getMax: function() {\n if((Array.isArray(this.schema.items)) && this.schema.additionalItems === false) {\n return Math.min(this.schema.items.length,this.schema.maxItems || Infinity);\n }\n else {\n return this.schema.maxItems || Infinity;\n }\n },\n refreshTabs: function(refresh_headers) {\n var self = this;\n $each(this.rows, function(i,row) {\n if(!row.tab) return;\n\n if(refresh_headers) {\n row.tab_text.textContent = row.getHeaderText();\n }\n else {\n if(row.tab === self.active_tab) {\n self.theme.markTabActive(row);\n }\n else {\n self.theme.markTabInactive(row);\n }\n }\n });\n },\n setValue: function(value, initial) {\n // Update the array's value, adding/removing rows when necessary\n value = value || [];\n\n if(!(Array.isArray(value))) value = [value];\n\n var serialized = JSON.stringify(value);\n if(serialized === this.serialized) return;\n\n // Make sure value has between minItems and maxItems items in it\n if(this.schema.minItems) {\n while(value.length < this.schema.minItems) {\n value.push(this.getItemInfo(value.length)[\"default\"]);\n }\n }\n if(this.getMax() && value.length > this.getMax()) {\n value = value.slice(0,this.getMax());\n }\n\n var self = this;\n $each(value,function(i,val) {\n if(self.rows[i]) {\n // TODO: don't set the row's value if it hasn't changed\n self.rows[i].setValue(val,initial);\n }\n else if(self.row_cache[i]) {\n self.rows[i] = self.row_cache[i];\n self.rows[i].setValue(val,initial);\n self.rows[i].container.style.display = '';\n if(self.rows[i].tab) self.rows[i].tab.style.display = '';\n self.rows[i].register();\n }\n else {\n self.addRow(val,initial);\n }\n });\n\n for(var j=value.length; j<self.rows.length; j++) {\n self.destroyRow(self.rows[j]);\n self.rows[j] = null;\n }\n self.rows = self.rows.slice(0,value.length);\n\n // Set the active tab\n var new_active_tab = null;\n $each(self.rows, function(i,row) {\n if(row.tab === self.active_tab) {\n new_active_tab = row.tab;\n return false;\n }\n });\n if(!new_active_tab && self.rows.length) new_active_tab = self.rows[0].tab;\n\n self.active_tab = new_active_tab;\n\n self.refreshValue(initial);\n self.refreshTabs(true);\n self.refreshTabs();\n\n self.onChange();\n\n // TODO: sortable\n },\n refreshValue: function(force) {\n var self = this;\n var oldi = this.value? this.value.length : 0;\n this.value = [];\n\n $each(this.rows,function(i,editor) {\n // Get the value for this editor\n self.value[i] = editor.getValue();\n });\n\n if(oldi !== this.value.length || force) {\n // If we currently have minItems items in the array\n var minItems = this.schema.minItems && this.schema.minItems >= this.rows.length;\n\n $each(this.rows,function(i,editor) {\n // Hide the move down button for the last row\n if(editor.movedown_button) {\n if(i === self.rows.length - 1) {\n editor.movedown_button.style.display = 'none';\n }\n else {\n editor.movedown_button.style.display = '';\n }\n }\n\n // Hide the delete button if we have minItems items\n if(editor.delete_button) {\n if(minItems) {\n editor.delete_button.style.display = 'none';\n }\n else {\n editor.delete_button.style.display = '';\n }\n }\n\n // Get the value for this editor\n self.value[i] = editor.getValue();\n });\n\n var controls_needed = false;\n\n if(!this.value.length) {\n this.delete_last_row_button.style.display = 'none';\n this.remove_all_rows_button.style.display = 'none';\n }\n else if(this.value.length === 1) {\n this.remove_all_rows_button.style.display = 'none';\n\n // If there are minItems items in the array, or configured to hide the delete_last_row button, hide the delete button beneath the rows\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n }\n else {\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n\n if(minItems || this.hide_delete_all_rows_buttons) {\n this.remove_all_rows_button.style.display = 'none';\n }\n else {\n this.remove_all_rows_button.style.display = '';\n controls_needed = true;\n }\n }\n\n // If there are maxItems in the array, hide the add button beneath the rows\n if((this.getMax() && this.getMax() <= this.rows.length) || this.hide_add_button){\n this.add_row_button.style.display = 'none';\n }\n else {\n this.add_row_button.style.display = '';\n controls_needed = true;\n }\n\n if(!this.collapsed && controls_needed) {\n this.controls.style.display = 'inline-block';\n }\n else {\n this.controls.style.display = 'none';\n }\n }\n },\n addRow: function(value, initial) {\n var self = this;\n var i = this.rows.length;\n\n self.rows[i] = this.getElementEditor(i);\n self.row_cache[i] = self.rows[i];\n\n if(self.tabs_holder) {\n self.rows[i].tab_text = document.createElement('span');\n self.rows[i].tab_text.textContent = self.rows[i].getHeaderText();\n if(self.schema.format === 'tabs-top'){\n self.rows[i].tab = self.theme.getTopTab(self.rows[i].tab_text,this.getValidId(self.rows[i].path));\n self.theme.addTopTab(self.tabs_holder, self.rows[i].tab);\n }\n else {\n self.rows[i].tab = self.theme.getTab(self.rows[i].tab_text,this.getValidId(self.rows[i].path));\n self.theme.addTab(self.tabs_holder, self.rows[i].tab);\n }\n self.rows[i].tab.addEventListener('click', function(e) {\n self.active_tab = self.rows[i].tab;\n self.refreshTabs();\n e.preventDefault();\n e.stopPropagation();\n });\n\n }\n\n var controls_holder = self.rows[i].title_controls || self.rows[i].array_controls;\n\n // Buttons to delete row, move row up, and move row down\n if(!self.hide_delete_buttons) {\n self.rows[i].delete_button = this.getButton(self.getItemTitle(),'delete',this.translate('button_delete_row_title',[self.getItemTitle()]));\n self.rows[i].delete_button.classList.add('delete', 'json-editor-btntype-delete');\n self.rows[i].delete_button.setAttribute('data-i',i);\n self.rows[i].delete_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!self.askConfirmation()) {\n return false;\n }\n\n var i = this.getAttribute('data-i')*1;\n var value = self.getValue();\n var newval = [];\n var new_active_tab = null;\n\n $each(value,function(j,row) {\n if(j !== i) {\n newval.push(row);\n }\n });\n\n self.empty(true);\n self.setValue(newval);\n\n if (self.rows[i]) {\n new_active_tab = self.rows[i].tab;\n } else if (self.rows[i-1]) {\n new_active_tab = self.rows[i-1].tab;\n }\n\n if(new_active_tab) {\n self.active_tab = new_active_tab;\n self.refreshTabs();\n }\n\n self.onChange(true);\n self.jsoneditor.trigger('deleteRow');\n });\n\n if(controls_holder) {\n controls_holder.appendChild(self.rows[i].delete_button);\n }\n }\n\n\t//Button to copy an array element and add it as last element\n\tif(self.show_copy_button){\n self.rows[i].copy_button = this.getButton(self.getItemTitle(),'copy','Copy '+self.getItemTitle());\n self.rows[i].copy_button.classList.add('copy', 'json-editor-btntype-copy');\n self.rows[i].copy_button.setAttribute('data-i',i);\n self.rows[i].copy_button.addEventListener('click',function(e) {\n var value = self.getValue();\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n $each(value,function(j,row) {\n if(j===i) {\n value.push(row);\n }\n });\n\n self.setValue(value);\n self.refreshValue(true);\n self.onChange(true);\n\n });\n\n controls_holder.appendChild(self.rows[i].copy_button);\n }\n\n\n if(i && !self.hide_move_buttons) {\n self.rows[i].moveup_button = this.getButton('','moveup',this.translate('button_move_up_title'));\n self.rows[i].moveup_button.classList.add('moveup', 'json-editor-btntype-move');\n self.rows[i].moveup_button.setAttribute('data-i',i);\n self.rows[i].moveup_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n if(i<=0) return;\n var rows = self.getValue();\n var tmp = rows[i-1];\n rows[i-1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.active_tab = self.rows[i-1].tab;\n self.refreshTabs();\n\n self.onChange(true);\n\n self.jsoneditor.trigger('moveRow');\n });\n\n if(controls_holder) {\n controls_holder.appendChild(self.rows[i].moveup_button);\n }\n }\n\n if(!self.hide_move_buttons) {\n self.rows[i].movedown_button = this.getButton('','movedown',this.translate('button_move_down_title'));\n self.rows[i].movedown_button.classList.add('movedown', 'json-editor-btntype-move');\n self.rows[i].movedown_button.setAttribute('data-i',i);\n self.rows[i].movedown_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n var rows = self.getValue();\n if(i>=rows.length-1) return;\n var tmp = rows[i+1];\n rows[i+1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.active_tab = self.rows[i+1].tab;\n self.refreshTabs();\n self.onChange(true);\n\n self.jsoneditor.trigger('moveRow');\n });\n\n if(controls_holder) {\n controls_holder.appendChild(self.rows[i].movedown_button);\n }\n }\n\n if(value) self.rows[i].setValue(value, initial);\n self.refreshTabs();\n },\n addControls: function() {\n var self = this;\n\n this.collapsed = false;\n this.toggle_button = this.getButton('','collapse',this.translate('button_collapse'));\n this.toggle_button.classList.add('json-editor-btntype-toggle');\n this.title_controls.appendChild(this.toggle_button);\n var row_holder_display = self.row_holder.style.display;\n var controls_display = self.controls.style.display;\n this.toggle_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n if(self.collapsed) {\n self.collapsed = false;\n if(self.panel) self.panel.style.display = '';\n self.row_holder.style.display = row_holder_display;\n if(self.tabs_holder) self.tabs_holder.style.display = '';\n self.controls.style.display = controls_display;\n self.setButtonText(this,'','collapse',self.translate('button_collapse'));\n }\n else {\n self.collapsed = true;\n self.row_holder.style.display = 'none';\n if(self.tabs_holder) self.tabs_holder.style.display = 'none';\n self.controls.style.display = 'none';\n if(self.panel) self.panel.style.display = 'none';\n self.setButtonText(this,'','expand',self.translate('button_expand'));\n }\n });\n\n // If it should start collapsed\n if(this.options.collapsed) {\n $trigger(this.toggle_button,'click');\n }\n\n // Collapse button disabled\n if(this.schema.options && typeof this.schema.options.disable_collapse !== \"undefined\") {\n if(this.schema.options.disable_collapse) this.toggle_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none';\n }\n\n // Add \"new row\" and \"delete last\" buttons below editor\n this.add_row_button = this.getButton(this.getItemTitle(),'add',this.translate('button_add_row_title',[this.getItemTitle()]));\n this.add_row_button.classList.add('json-editor-btntype-add');\n this.add_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = self.rows.length;\n if(self.row_cache[i]) {\n self.rows[i] = self.row_cache[i];\n self.rows[i].setValue(self.rows[i].getDefault(), true);\n self.rows[i].container.style.display = '';\n if(self.rows[i].tab) self.rows[i].tab.style.display = '';\n self.rows[i].register();\n }\n else {\n self.addRow();\n }\n self.active_tab = self.rows[i].tab;\n self.refreshTabs();\n self.refreshValue();\n self.onChange(true);\n self.jsoneditor.trigger('addRow');\n });\n self.controls.appendChild(this.add_row_button);\n\n this.delete_last_row_button = this.getButton(this.translate('button_delete_last',[this.getItemTitle()]),'delete',this.translate('button_delete_last_title',[this.getItemTitle()]));\n this.delete_last_row_button.classList.add('json-editor-btntype-deletelast');\n this.delete_last_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!self.askConfirmation()) {\n return false;\n }\n\n var rows = self.getValue();\n var new_active_tab = null;\n\n rows.pop();\n self.empty(true);\n self.setValue(rows);\n\n if (self.rows[self.rows.length-1]) {\n new_active_tab = self.rows[self.rows.length-1].tab;\n }\n\n if(new_active_tab) {\n self.active_tab = new_active_tab;\n self.refreshTabs();\n }\n\n self.onChange(true);\n self.jsoneditor.trigger('deleteRow');\n });\n self.controls.appendChild(this.delete_last_row_button);\n\n this.remove_all_rows_button = this.getButton(this.translate('button_delete_all'),'delete',this.translate('button_delete_all_title'));\n this.remove_all_rows_button.classList.add('json-editor-btntype-deleteall');\n this.remove_all_rows_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!self.askConfirmation()) {\n return false;\n }\n\n self.empty(true);\n self.setValue([]);\n self.onChange(true);\n self.jsoneditor.trigger('deleteAllRows');\n });\n self.controls.appendChild(this.remove_all_rows_button);\n\n if(self.tabs) {\n this.add_row_button.style.width = '100%';\n this.add_row_button.style.textAlign = 'left';\n this.add_row_button.style.marginBottom = '3px';\n\n this.delete_last_row_button.style.width = '100%';\n this.delete_last_row_button.style.textAlign = 'left';\n this.delete_last_row_button.style.marginBottom = '3px';\n\n this.remove_all_rows_button.style.width = '100%';\n this.remove_all_rows_button.style.textAlign = 'left';\n this.remove_all_rows_button.style.marginBottom = '3px';\n }\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // Get all the errors that pertain to this editor\n var my_errors = [];\n var other_errors = [];\n $each(errors, function(i,error) {\n if(error.path === self.path) {\n my_errors.push(error);\n }\n else {\n other_errors.push(error);\n }\n });\n\n // Show errors for this editor\n if(this.error_holder) {\n if(my_errors.length) {\n var message = [];\n this.error_holder.innerHTML = '';\n this.error_holder.style.display = '';\n $each(my_errors, function(i,error) {\n self.error_holder.appendChild(self.theme.getErrorMessage(error.message));\n });\n }\n // Hide error area\n else {\n this.error_holder.style.display = 'none';\n }\n }\n\n // Show errors for child editors\n $each(this.rows, function(i,row) {\n row.showValidationErrors(other_errors);\n });\n }\n});\n","JSONEditor.defaults.editors.table = JSONEditor.defaults.editors.array.extend({\n register: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].register();\n }\n }\n },\n unregister: function() {\n this._super();\n if(this.rows) {\n for(var i=0; i<this.rows.length; i++) {\n this.rows[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n return Math.max(Math.min(12,this.width),3);\n },\n preBuild: function() {\n var item_schema = this.jsoneditor.expandRefs(this.schema.items || {});\n\n this.item_title = item_schema.title || 'row';\n this.item_default = item_schema[\"default\"] || null;\n this.item_has_child_editors = item_schema.properties || item_schema.items;\n this.width = 12;\n this._super();\n },\n build: function() {\n var self = this;\n this.table = this.theme.getTable();\n this.container.appendChild(this.table);\n this.thead = this.theme.getTableHead();\n this.table.appendChild(this.thead);\n this.header_row = this.theme.getTableRow();\n this.thead.appendChild(this.header_row);\n this.row_holder = this.theme.getTableBody();\n this.table.appendChild(this.row_holder);\n\n // Determine the default value of array element\n var tmp = this.getElementEditor(0,true);\n this.item_default = tmp.getDefault();\n this.width = tmp.getNumColumns() + 2;\n\n if(!this.options.compact) {\n this.title = this.theme.getHeader(this.getTitle());\n this.container.appendChild(this.title);\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n this.container.appendChild(this.description);\n }\n this.panel = this.theme.getIndentedPanel();\n this.container.appendChild(this.panel);\n this.error_holder = document.createElement('div');\n this.panel.appendChild(this.error_holder);\n }\n else {\n this.panel = document.createElement('div');\n this.container.appendChild(this.panel);\n }\n\n this.panel.appendChild(this.table);\n this.controls = this.theme.getButtonHolder();\n this.panel.appendChild(this.controls);\n\n if(this.item_has_child_editors) {\n var ce = tmp.getChildEditors();\n var order = tmp.property_order || Object.keys(ce);\n for(var i=0; i<order.length; i++) {\n var th = self.theme.getTableHeaderCell(ce[order[i]].getTitle());\n if(ce[order[i]].options.hidden) th.style.display = 'none';\n self.header_row.appendChild(th);\n }\n }\n else {\n self.header_row.appendChild(self.theme.getTableHeaderCell(this.item_title));\n }\n\n tmp.destroy();\n this.row_holder.innerHTML = '';\n\n // Row Controls column\n this.controls_header_cell = self.theme.getTableHeaderCell(\" \");\n self.header_row.appendChild(this.controls_header_cell);\n\n // Add controls\n this.addControls();\n },\n onChildEditorChange: function(editor) {\n this.refreshValue();\n this._super();\n },\n getItemDefault: function() {\n return $extend({},{\"default\":this.item_default})[\"default\"];\n },\n getItemTitle: function() {\n return this.item_title;\n },\n getElementEditor: function(i,ignore) {\n var schema_copy = $extend({},this.schema.items);\n var editor = this.jsoneditor.getEditorClass(schema_copy, this.jsoneditor);\n var row = this.row_holder.appendChild(this.theme.getTableRow());\n var holder = row;\n if(!this.item_has_child_editors) {\n holder = this.theme.getTableCell();\n row.appendChild(holder);\n }\n\n var ret = this.jsoneditor.createEditor(editor,{\n jsoneditor: this.jsoneditor,\n schema: schema_copy,\n container: holder,\n path: this.path+'.'+i,\n parent: this,\n compact: true,\n table_row: true\n });\n\n ret.preBuild();\n if(!ignore) {\n ret.build();\n ret.postBuild();\n\n ret.controls_cell = row.appendChild(this.theme.getTableCell());\n ret.row = row;\n ret.table_controls = this.theme.getButtonHolder();\n ret.controls_cell.appendChild(ret.table_controls);\n ret.table_controls.style.margin = 0;\n ret.table_controls.style.padding = 0;\n }\n\n return ret;\n },\n destroy: function() {\n this.innerHTML = '';\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.row_holder && this.row_holder.parentNode) this.row_holder.parentNode.removeChild(this.row_holder);\n if(this.table && this.table.parentNode) this.table.parentNode.removeChild(this.table);\n if(this.panel && this.panel.parentNode) this.panel.parentNode.removeChild(this.panel);\n\n this.rows = this.title = this.description = this.row_holder = this.table = this.panel = null;\n\n this._super();\n },\n setValue: function(value, initial) {\n // Update the array's value, adding/removing rows when necessary\n value = value || [];\n\n // Make sure value has between minItems and maxItems items in it\n if(this.schema.minItems) {\n while(value.length < this.schema.minItems) {\n value.push(this.getItemDefault());\n }\n }\n if(this.schema.maxItems && value.length > this.schema.maxItems) {\n value = value.slice(0,this.schema.maxItems);\n }\n\n var serialized = JSON.stringify(value);\n if(serialized === this.serialized) return;\n\n var numrows_changed = false;\n\n var self = this;\n $each(value,function(i,val) {\n if(self.rows[i]) {\n // TODO: don't set the row's value if it hasn't changed\n self.rows[i].setValue(val);\n }\n else {\n self.addRow(val);\n numrows_changed = true;\n }\n });\n\n for(var j=value.length; j<self.rows.length; j++) {\n var holder = self.rows[j].container;\n if(!self.item_has_child_editors) {\n self.rows[j].row.parentNode.removeChild(self.rows[j].row);\n }\n self.rows[j].destroy();\n if(holder.parentNode) holder.parentNode.removeChild(holder);\n self.rows[j] = null;\n numrows_changed = true;\n }\n self.rows = self.rows.slice(0,value.length);\n\n self.refreshValue();\n if(numrows_changed || initial) self.refreshRowButtons();\n\n self.onChange();\n\n // TODO: sortable\n },\n refreshRowButtons: function() {\n var self = this;\n\n // If we currently have minItems items in the array\n var minItems = this.schema.minItems && this.schema.minItems >= this.rows.length;\n\n var need_row_buttons = false;\n $each(this.rows,function(i,editor) {\n // Hide the move down button for the last row\n if(editor.movedown_button) {\n if(i === self.rows.length - 1) {\n editor.movedown_button.style.display = 'none';\n }\n else {\n need_row_buttons = true;\n editor.movedown_button.style.display = '';\n }\n }\n\n // Hide the delete button if we have minItems items\n if(editor.delete_button) {\n if(minItems) {\n editor.delete_button.style.display = 'none';\n }\n else {\n need_row_buttons = true;\n editor.delete_button.style.display = '';\n }\n }\n\n if(editor.moveup_button) {\n need_row_buttons = true;\n }\n });\n\n // Show/hide controls column in table\n $each(this.rows,function(i,editor) {\n if(need_row_buttons) {\n editor.controls_cell.style.display = '';\n }\n else {\n editor.controls_cell.style.display = 'none';\n }\n });\n if(need_row_buttons) {\n this.controls_header_cell.style.display = '';\n }\n else {\n this.controls_header_cell.style.display = 'none';\n }\n\n var controls_needed = false;\n\n if(!this.value.length) {\n this.delete_last_row_button.style.display = 'none';\n this.remove_all_rows_button.style.display = 'none';\n this.table.style.display = 'none';\n }\n else if(this.value.length === 1) {\n this.table.style.display = '';\n this.remove_all_rows_button.style.display = 'none';\n\n // If there are minItems items in the array, or configured to hide the delete_last_row button, hide the delete button beneath the rows\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n }\n else {\n this.table.style.display = '';\n\n if(minItems || this.hide_delete_last_row_buttons) {\n this.delete_last_row_button.style.display = 'none';\n }\n else {\n this.delete_last_row_button.style.display = '';\n controls_needed = true;\n }\n\n if(minItems || this.hide_delete_all_rows_buttons) {\n this.remove_all_rows_button.style.display = 'none';\n }\n else {\n this.remove_all_rows_button.style.display = '';\n controls_needed = true;\n }\n }\n\n // If there are maxItems in the array, hide the add button beneath the rows\n if((this.schema.maxItems && this.schema.maxItems <= this.rows.length) || this.hide_add_button) {\n this.add_row_button.style.display = 'none';\n }\n else {\n this.add_row_button.style.display = '';\n controls_needed = true;\n }\n\n if(!controls_needed) {\n this.controls.style.display = 'none';\n }\n else {\n this.controls.style.display = '';\n }\n },\n refreshValue: function() {\n var self = this;\n this.value = [];\n\n $each(this.rows,function(i,editor) {\n // Get the value for this editor\n self.value[i] = editor.getValue();\n });\n this.serialized = JSON.stringify(this.value);\n },\n addRow: function(value) {\n var self = this;\n var i = this.rows.length;\n\n self.rows[i] = this.getElementEditor(i);\n\n var controls_holder = self.rows[i].table_controls;\n\n // Buttons to delete row, move row up, and move row down\n if(!this.hide_delete_buttons) {\n self.rows[i].delete_button = this.getButton('','delete',this.translate('button_delete_row_title_short'));\n self.rows[i].delete_button.classList.add('delete','json-editor-btntype-delete');\n self.rows[i].delete_button.setAttribute('data-i',i);\n self.rows[i].delete_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!self.askConfirmation()) {\n return false;\n }\n\n var i = this.getAttribute('data-i')*1;\n\n var value = self.getValue();\n\n var newval = [];\n $each(value,function(j,row) {\n if(j===i) return; // If this is the one we're deleting\n newval.push(row);\n });\n self.setValue(newval);\n self.onChange(true);\n });\n controls_holder.appendChild(self.rows[i].delete_button);\n }\n\n\n if(i && !this.hide_move_buttons) {\n self.rows[i].moveup_button = this.getButton('','moveup',this.translate('button_move_up_title'));\n self.rows[i].moveup_button.classList.add('moveup','json-editor-btntype-move');\n self.rows[i].moveup_button.setAttribute('data-i',i);\n self.rows[i].moveup_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n\n if(i<=0) return;\n var rows = self.getValue();\n var tmp = rows[i-1];\n rows[i-1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.onChange(true);\n });\n controls_holder.appendChild(self.rows[i].moveup_button);\n }\n\n if(!this.hide_move_buttons) {\n self.rows[i].movedown_button = this.getButton('','movedown',this.translate('button_move_down_title'));\n self.rows[i].movedown_button.classList.add('movedown','json-editor-btntype-move');\n self.rows[i].movedown_button.setAttribute('data-i',i);\n self.rows[i].movedown_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n var i = this.getAttribute('data-i')*1;\n var rows = self.getValue();\n if(i>=rows.length-1) return;\n var tmp = rows[i+1];\n rows[i+1] = rows[i];\n rows[i] = tmp;\n\n self.setValue(rows);\n self.onChange(true);\n });\n controls_holder.appendChild(self.rows[i].movedown_button);\n }\n\n if(value) self.rows[i].setValue(value);\n },\n addControls: function() {\n var self = this;\n\n this.collapsed = false;\n this.toggle_button = this.getButton('','collapse',this.translate('button_collapse'));\n this.toggle_button.classList.add('json-editor-btntype-toggle');\n if(this.title_controls) {\n this.title_controls.appendChild(this.toggle_button);\n this.toggle_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if(self.collapsed) {\n self.collapsed = false;\n self.panel.style.display = '';\n self.setButtonText(this,'','collapse',self.translate('button_collapse'));\n }\n else {\n self.collapsed = true;\n self.panel.style.display = 'none';\n self.setButtonText(this,'','expand',self.translate('button_expand'));\n }\n });\n\n // If it should start collapsed\n if(this.options.collapsed) {\n $trigger(this.toggle_button,'click');\n }\n\n // Collapse button disabled\n if(this.schema.options && typeof this.schema.options.disable_collapse !== \"undefined\") {\n if(this.schema.options.disable_collapse) this.toggle_button.style.display = 'none';\n }\n else if(this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none';\n }\n }\n\n // Add \"new row\" and \"delete last\" buttons below editor\n this.add_row_button = this.getButton(this.getItemTitle(),'add',this.translate('button_add_row_title',[this.getItemTitle()]));\n this.add_row_button.classList.add('json-editor-btntype-add');\n this.add_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n self.addRow();\n self.refreshValue();\n self.refreshRowButtons();\n self.onChange(true);\n });\n self.controls.appendChild(this.add_row_button);\n\n this.delete_last_row_button = this.getButton(this.translate('button_delete_last',[this.getItemTitle()]),'delete',this.translate('button_delete_last_title',[this.getItemTitle()]));\n this.delete_last_row_button.classList.add('json-editor-btntype-deletelast');\n this.delete_last_row_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!self.askConfirmation()) {\n return false;\n }\n\n var rows = self.getValue();\n rows.pop();\n self.setValue(rows);\n self.onChange(true);\n });\n self.controls.appendChild(this.delete_last_row_button);\n\n this.remove_all_rows_button = this.getButton(this.translate('button_delete_all'),'delete',this.translate('button_delete_all_title'));\n this.remove_all_rows_button.classList.add('json-editor-btntype-deleteall');\n this.remove_all_rows_button.addEventListener('click',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!self.askConfirmation()) {\n return false;\n }\n\n self.setValue([]);\n self.onChange(true);\n });\n self.controls.appendChild(this.remove_all_rows_button);\n }\n});\n","// Multiple Editor (for when `type` is an array, also when `oneOf` is present)\nJSONEditor.defaults.editors.multiple = JSONEditor.AbstractEditor.extend({\n register: function() {\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].unregister();\n }\n if(this.editors[this.type]) this.editors[this.type].register();\n }\n this._super();\n },\n unregister: function() {\n this._super();\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n if(!this.editors[this.type]) return 4;\n return Math.max(this.editors[this.type].getNumColumns(),4);\n },\n enable: function() {\n if(!this.always_disabled) {\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].enable();\n }\n }\n this.switcher.disabled = false;\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n if(this.editors) {\n for(var i=0; i<this.editors.length; i++) {\n if(!this.editors[i]) continue;\n this.editors[i].disable(always_disabled);\n }\n }\n this.switcher.disabled = true;\n this._super();\n },\n switchEditor: function(i) {\n var self = this;\n\n if(!this.editors[i]) {\n this.buildChildEditor(i);\n }\n \n var current_value = self.getValue();\n\n self.type = i;\n\n self.register();\n\n $each(self.editors,function(type,editor) {\n if(!editor) return;\n if(self.type === type) {\n if(self.keep_values) editor.setValue(current_value,true);\n editor.container.style.display = '';\n }\n else editor.container.style.display = 'none';\n });\n self.refreshValue();\n self.refreshHeaderText();\n },\n buildChildEditor: function(i) {\n var self = this;\n var type = this.types[i];\n var holder = self.theme.getChildEditorHolder();\n self.editor_holder.appendChild(holder);\n\n var schema;\n\n if(typeof type === \"string\") {\n schema = $extend({},self.schema);\n schema.type = type;\n }\n else {\n schema = $extend({},self.schema,type);\n schema = self.jsoneditor.expandRefs(schema);\n\n // If we need to merge `required` arrays\n if(type && type.required && Array.isArray(type.required) && self.schema.required && Array.isArray(self.schema.required)) {\n schema.required = self.schema.required.concat(type.required);\n }\n }\n\n var editor = self.jsoneditor.getEditorClass(schema);\n\n self.editors[i] = self.jsoneditor.createEditor(editor,{\n jsoneditor: self.jsoneditor,\n schema: schema,\n container: holder,\n path: self.path,\n parent: self,\n required: true\n });\n self.editors[i].preBuild();\n self.editors[i].build();\n self.editors[i].postBuild();\n\n if(self.editors[i].header) self.editors[i].header.style.display = 'none';\n\n self.editors[i].option = self.switcher_options[i];\n\n holder.addEventListener('change_header_text',function() {\n self.refreshHeaderText();\n });\n\n if(i !== self.type) holder.style.display = 'none';\n },\n preBuild: function() {\n var self = this;\n\n this.types = [];\n this.type = 0;\n this.editors = [];\n this.validators = [];\n\n this.keep_values = true;\n if(typeof this.jsoneditor.options.keep_oneof_values !== \"undefined\") this.keep_values = this.jsoneditor.options.keep_oneof_values;\n if(typeof this.options.keep_oneof_values !== \"undefined\") this.keep_values = this.options.keep_oneof_values;\n\n if(this.schema.oneOf) {\n this.oneOf = true;\n this.types = this.schema.oneOf;\n delete this.schema.oneOf;\n }\n else if(this.schema.anyOf) {\n this.anyOf = true;\n this.types = this.schema.anyOf;\n delete this.schema.anyOf;\n }\n else {\n if(!this.schema.type || this.schema.type === \"any\") {\n this.types = ['string','number','integer','boolean','object','array','null'];\n\n // If any of these primitive types are disallowed\n if(this.schema.disallow) {\n var disallow = this.schema.disallow;\n if(typeof disallow !== 'object' || !(Array.isArray(disallow))) {\n disallow = [disallow];\n }\n var allowed_types = [];\n $each(this.types,function(i,type) {\n if(disallow.indexOf(type) === -1) allowed_types.push(type);\n });\n this.types = allowed_types;\n }\n }\n else if(Array.isArray(this.schema.type)) {\n this.types = this.schema.type;\n }\n else {\n this.types = [this.schema.type];\n }\n delete this.schema.type;\n }\n\n this.display_text = this.getDisplayText(this.types);\n },\n build: function() {\n var self = this;\n var container = this.container;\n\n this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n this.container.appendChild(this.header);\n\n this.switcher = this.theme.getSwitcher(this.display_text);\n container.appendChild(this.switcher);\n this.switcher.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n self.switchEditor(self.display_text.indexOf(this.value));\n self.onChange(true);\n });\n\n this.editor_holder = document.createElement('div');\n container.appendChild(this.editor_holder);\n \n \n var validator_options = {};\n if(self.jsoneditor.options.custom_validators) {\n validator_options.custom_validators = self.jsoneditor.options.custom_validators;\n }\n\n this.switcher_options = this.theme.getSwitcherOptions(this.switcher);\n $each(this.types,function(i,type) {\n self.editors[i] = false;\n\n var schema;\n\n if(typeof type === \"string\") {\n schema = $extend({},self.schema);\n schema.type = type;\n }\n else {\n schema = $extend({},self.schema,type);\n\n // If we need to merge `required` arrays\n if(type.required && Array.isArray(type.required) && self.schema.required && Array.isArray(self.schema.required)) {\n schema.required = self.schema.required.concat(type.required);\n }\n }\n\n self.validators[i] = new JSONEditor.Validator(self.jsoneditor,schema,validator_options);\n });\n\n this.switchEditor(0);\n },\n onChildEditorChange: function(editor) {\n if(this.editors[this.type]) {\n this.refreshValue();\n this.refreshHeaderText();\n }\n\n this._super();\n },\n refreshHeaderText: function() {\n var display_text = this.getDisplayText(this.types);\n $each(this.switcher_options, function(i,option) {\n option.textContent = display_text[i];\n });\n },\n refreshValue: function() {\n this.value = this.editors[this.type].getValue();\n },\n setValue: function(val,initial) {\n // Determine type by getting the first one that validates\n var self = this;\n var prev_type = this.type;\n $each(this.validators, function(i,validator) {\n if(!validator.validate(val).length) {\n self.type = i;\n self.switcher.value = self.display_text[i];\n return false;\n }\n });\n\n var type_changed = this.type != prev_type;\n if (type_changed) {\n\tthis.switchEditor(this.type);\n }\n\n this.editors[this.type].setValue(val,initial);\n\n this.refreshValue();\n self.onChange(type_changed);\n },\n destroy: function() {\n $each(this.editors, function(type,editor) {\n if(editor) editor.destroy();\n });\n if(this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder);\n if(this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher);\n this._super();\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // oneOf and anyOf error paths need to remove the oneOf[i] part before passing to child editors\n if(this.oneOf || this.anyOf) {\n var check_part = this.oneOf? 'oneOf' : 'anyOf';\n $each(this.editors,function(i,editor) {\n if(!editor) return;\n var check = self.path+'.'+check_part+'['+i+']';\n var new_errors = [];\n $each(errors, function(j,error) {\n if(error.path.substr(0,check.length)===check) {\n var new_error = $extend({},error);\n new_error.path = self.path+new_error.path.substr(check.length);\n new_errors.push(new_error);\n }\n });\n\n editor.showValidationErrors(new_errors);\n });\n }\n else {\n $each(this.editors,function(type,editor) {\n if(!editor) return;\n editor.showValidationErrors(errors);\n });\n }\n }\n});\n","// Enum Editor (used for objects and arrays with enumerated values)\nJSONEditor.defaults.editors[\"enum\"] = JSONEditor.AbstractEditor.extend({\n getNumColumns: function() {\n return 4;\n },\n build: function() {\n var container = this.container;\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n this.container.appendChild(this.title);\n\n this.options.enum_titles = this.options.enum_titles || [];\n\n this[\"enum\"] = this.schema[\"enum\"];\n this.selected = 0;\n this.select_options = [];\n this.html_values = [];\n\n var self = this;\n for(var i=0; i<this[\"enum\"].length; i++) {\n this.select_options[i] = this.options.enum_titles[i] || \"Value \"+(i+1);\n this.html_values[i] = this.getHTML(this[\"enum\"][i]);\n }\n\n // Switcher\n this.switcher = this.theme.getSwitcher(this.select_options);\n this.container.appendChild(this.switcher);\n\n // Display area\n this.display_area = this.theme.getIndentedPanel();\n this.container.appendChild(this.display_area);\n\n if(this.options.hide_display) this.display_area.style.display = \"none\";\n\n this.switcher.addEventListener('change',function() {\n self.selected = self.select_options.indexOf(this.value);\n self.value = self[\"enum\"][self.selected];\n self.refreshValue();\n self.onChange(true);\n });\n this.value = this[\"enum\"][0];\n this.refreshValue();\n\n if(this[\"enum\"].length === 1) this.switcher.style.display = 'none';\n },\n refreshValue: function() {\n var self = this;\n self.selected = -1;\n var stringified = JSON.stringify(this.value);\n $each(this[\"enum\"], function(i, el) {\n if(stringified === JSON.stringify(el)) {\n self.selected = i;\n return false;\n }\n });\n\n if(self.selected<0) {\n self.setValue(self[\"enum\"][0]);\n return;\n }\n\n this.switcher.value = this.select_options[this.selected];\n this.display_area.innerHTML = this.html_values[this.selected];\n },\n enable: function() {\n if(!this.always_disabled) {\n this.switcher.disabled = false;\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n this.switcher.disabled = true;\n this._super();\n },\n getHTML: function(el) {\n var self = this;\n\n if(el === null) {\n return '<em>null</em>';\n }\n // Array or Object\n else if(typeof el === \"object\") {\n // TODO: use theme\n var ret = '';\n\n $each(el,function(i,child) {\n var html = self.getHTML(child);\n\n // Add the keys to object children\n if(!(Array.isArray(el))) {\n // TODO: use theme\n html = '<div><em>'+i+'</em>: '+html+'</div>';\n }\n\n // TODO: use theme\n ret += '<li>'+html+'</li>';\n });\n\n if(Array.isArray(el)) ret = '<ol>'+ret+'</ol>';\n else ret = \"<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>\"+ret+'</ul>';\n\n return ret;\n }\n // Boolean\n else if(typeof el === \"boolean\") {\n return el? 'true' : 'false';\n }\n // String\n else if(typeof el === \"string\") {\n return el.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');\n }\n // Number\n else {\n return el;\n }\n },\n setValue: function(val) {\n if(this.value !== val) {\n this.value = val;\n this.refreshValue();\n this.onChange();\n }\n },\n destroy: function() {\n if(this.display_area && this.display_area.parentNode) this.display_area.parentNode.removeChild(this.display_area);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher);\n\n this._super();\n }\n});\n","JSONEditor.defaults.editors.select = JSONEditor.AbstractEditor.extend({\n setValue: function(value,initial) {\n value = this.typecast(value||'');\n\n // Sanitize value before setting it\n var sanitized = value;\n if(this.enum_values.indexOf(sanitized) < 0) {\n sanitized = this.enum_values[0];\n }\n\n if(this.value === sanitized) {\n return;\n }\n\n if(initial) this.is_dirty = false;\n else if(this.jsoneditor.options.show_errors === \"change\") this.is_dirty = true;\n\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)];\n if(this.select2) {\n if(this.select2v4)\n this.select2.val(this.input.value).trigger(\"change\");\n else\n this.select2.select2('val',this.input.value);\n }\n this.value = sanitized;\n this.onChange();\n this.change();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n if(!this.enum_options) return 3;\n var longest_text = this.getTitle().length;\n for(var i=0; i<this.enum_options.length; i++) {\n longest_text = Math.max(longest_text,this.enum_options[i].length+4);\n }\n return Math.min(12,Math.max(longest_text/7,2));\n },\n typecast: function(value) {\n if(this.schema.type === \"boolean\") {\n return !!value;\n }\n else if(this.schema.type === \"number\") {\n return 1*value;\n }\n else if(this.schema.type === \"integer\") {\n return Math.floor(value*1);\n }\n else {\n return \"\"+value;\n }\n },\n getValue: function() {\n if (!this.dependenciesFulfilled) {\n return undefined;\n }\n return this.typecast(this.value);\n },\n preBuild: function() {\n var self = this;\n this.input_type = 'select';\n this.enum_options = [];\n this.enum_values = [];\n this.enum_display = [];\n var i;\n\n // Enum options enumerated\n if(this.schema[\"enum\"]) {\n var display = this.schema.options && this.schema.options.enum_titles || [];\n\n $each(this.schema[\"enum\"],function(i,option) {\n self.enum_options[i] = \"\"+option;\n self.enum_display[i] = \"\"+(display[i] || option);\n self.enum_values[i] = self.typecast(option);\n });\n\n if(!this.isRequired()){\n self.enum_display.unshift(' ');\n self.enum_options.unshift('undefined');\n self.enum_values.unshift(undefined);\n }\n\n }\n // Boolean\n else if(this.schema.type === \"boolean\") {\n self.enum_display = this.schema.options && this.schema.options.enum_titles || ['true','false'];\n self.enum_options = ['1',''];\n self.enum_values = [true,false];\n\n if(!this.isRequired()){\n self.enum_display.unshift(' ');\n self.enum_options.unshift('undefined');\n self.enum_values.unshift(undefined);\n }\n\n }\n // Dynamic Enum\n else if(this.schema.enumSource) {\n this.enumSource = [];\n this.enum_display = [];\n this.enum_options = [];\n this.enum_values = [];\n\n // Shortcut declaration for using a single array\n if(!(Array.isArray(this.schema.enumSource))) {\n if(this.schema.enumValue) {\n this.enumSource = [\n {\n source: this.schema.enumSource,\n value: this.schema.enumValue\n }\n ];\n }\n else {\n this.enumSource = [\n {\n source: this.schema.enumSource\n }\n ];\n }\n }\n else {\n for(i=0; i<this.schema.enumSource.length; i++) {\n // Shorthand for watched variable\n if(typeof this.schema.enumSource[i] === \"string\") {\n this.enumSource[i] = {\n source: this.schema.enumSource[i]\n };\n }\n // Make a copy of the schema\n else if(!(Array.isArray(this.schema.enumSource[i]))) {\n this.enumSource[i] = $extend({},this.schema.enumSource[i]);\n }\n else {\n this.enumSource[i] = this.schema.enumSource[i];\n }\n }\n }\n\n // Now, enumSource is an array of sources\n // Walk through this array and fix up the values\n for(i=0; i<this.enumSource.length; i++) {\n if(this.enumSource[i].value) {\n this.enumSource[i].value = this.jsoneditor.compileTemplate(this.enumSource[i].value, this.template_engine);\n }\n if(this.enumSource[i].title) {\n this.enumSource[i].title = this.jsoneditor.compileTemplate(this.enumSource[i].title, this.template_engine);\n }\n if(this.enumSource[i].filter) {\n this.enumSource[i].filter = this.jsoneditor.compileTemplate(this.enumSource[i].filter, this.template_engine);\n }\n }\n }\n // Other, not supported\n else {\n throw \"'select' editor requires the enum property to be set.\";\n }\n },\n build: function() {\n var self = this;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n if(this.options.infoText) this.infoButton = this.theme.getInfoButton(this.options.infoText);\n if(this.options.compact) this.container.classList.add('compact');\n\n this.input = this.theme.getSelectInput(this.enum_options);\n this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display);\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n // Set custom attributes on input element. Parameter is array of protected keys. Empty array if none.\n this.setInputAttributes([]);\n\n this.input.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.onInputChange();\n });\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton);\n this.container.appendChild(this.control);\n\n this.value = this.enum_values[0];\n },\n onInputChange: function() {\n var val = this.typecast(this.input.value);\n\n var new_val;\n // Invalid option, use first option instead\n if(this.enum_values.indexOf(val) === -1) {\n new_val = this.enum_values[0];\n }\n else {\n new_val = this.enum_values[this.enum_values.indexOf(val)];\n }\n\n // If valid hasn't changed\n if(new_val === this.value) return;\n\n this.is_dirty = true;\n\n // Store new value and propogate change event\n this.value = new_val;\n this.onChange(true);\n },\n setupSelect2: function() {\n // If the Select2 library is loaded use it when we have lots of items\n if(window.jQuery && window.jQuery.fn && window.jQuery.fn.select2 && (this.enum_options.length > 2 || (this.enum_options.length && this.enumSource))) {\n var options = $extend({},JSONEditor.plugins.select2);\n if(this.schema.options && this.schema.options.select2_options) options = $extend(options,this.schema.options.select2_options);\n this.select2 = window.jQuery(this.input).select2(options);\n this.select2v4 = this.select2.select2.hasOwnProperty(\"amd\");\n\n var self = this;\n this.select2.on('select2-blur',function() {\n if(self.select2v4)\n self.input.value = self.select2.val();\n else\n self.input.value = self.select2.select2('val');\n\n self.onInputChange();\n });\n\n this.select2.on('change',function() {\n if(self.select2v4)\n self.input.value = self.select2.val();\n else\n self.input.value = self.select2.select2('val');\n\n self.onInputChange();\n });\n }\n else {\n this.select2 = null;\n }\n },\n postBuild: function() {\n this._super();\n this.theme.afterInputReady(this.input);\n this.setupSelect2();\n },\n onWatchedFieldChange: function() {\n var self = this, vars, j;\n\n // If this editor uses a dynamic select box\n if(this.enumSource) {\n vars = this.getWatchedFieldValues();\n var select_options = [];\n var select_titles = [];\n\n for(var i=0; i<this.enumSource.length; i++) {\n // Constant values\n if(Array.isArray(this.enumSource[i])) {\n select_options = select_options.concat(this.enumSource[i]);\n select_titles = select_titles.concat(this.enumSource[i]);\n }\n else {\n var items = [];\n // Static list of items\n if(Array.isArray(this.enumSource[i].source)) {\n items = this.enumSource[i].source;\n // A watched field\n } else {\n items = vars[this.enumSource[i].source];\n }\n\n if(items) {\n // Only use a predefined part of the array\n if(this.enumSource[i].slice) {\n items = Array.prototype.slice.apply(items,this.enumSource[i].slice);\n }\n // Filter the items\n if(this.enumSource[i].filter) {\n var new_items = [];\n for(j=0; j<items.length; j++) {\n if(this.enumSource[i].filter({i:j,item:items[j],watched:vars})) new_items.push(items[j]);\n }\n items = new_items;\n }\n\n var item_titles = [];\n var item_values = [];\n for(j=0; j<items.length; j++) {\n var item = items[j];\n\n // Rendered value\n if(this.enumSource[i].value) {\n item_values[j] = this.typecast(this.enumSource[i].value({\n i: j,\n item: item\n }));\n }\n // Use value directly\n else {\n item_values[j] = items[j];\n }\n\n // Rendered title\n if(this.enumSource[i].title) {\n item_titles[j] = this.enumSource[i].title({\n i: j,\n item: item\n });\n }\n // Use value as the title also\n else {\n item_titles[j] = item_values[j];\n }\n }\n\n // TODO: sort\n\n select_options = select_options.concat(item_values);\n select_titles = select_titles.concat(item_titles);\n }\n }\n }\n\n var prev_value = this.value;\n\n this.theme.setSelectOptions(this.input, select_options, select_titles);\n this.enum_options = select_options;\n this.enum_display = select_titles;\n this.enum_values = select_options;\n\n if(this.select2) {\n this.select2.select2('destroy');\n }\n\n // If the previous value is still in the new select options, stick with it\n if(select_options.indexOf(prev_value) !== -1) {\n this.input.value = prev_value;\n this.value = prev_value;\n }\n // Otherwise, set the value to the first select option\n else {\n this.input.value = select_options[0];\n this.value = this.typecast(select_options[0] || \"\"); \n if(this.parent) this.parent.onChildEditorChange(this);\n else this.jsoneditor.onChange();\n this.jsoneditor.notifyWatchers(this.path);\n }\n\n this.setupSelect2();\n }\n\n this._super();\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n if(this.select2) {\n if(this.select2v4)\n this.select2.prop(\"disabled\",false);\n else\n this.select2.select2(\"enable\",true);\n }\n }\n this._super();\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n this.input.disabled = true;\n if(this.select2) {\n if(this.select2v4)\n this.select2.prop(\"disabled\",true);\n else\n this.select2.select2(\"enable\",false);\n }\n this._super();\n },\n destroy: function() {\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.select2) {\n this.select2.select2('destroy');\n this.select2 = null;\n }\n\n this._super();\n },\n showValidationErrors: function (errors) {\n var self = this;\n\n if (this.jsoneditor.options.show_errors === \"always\") {}\n else if(!this.is_dirty && this.previous_error_setting===this.jsoneditor.options.show_errors) return;\n\n this.previous_error_setting = this.jsoneditor.options.show_errors;\n\n var messages = [];\n $each(errors, function (i, error) {\n if (error.path === self.path) {\n messages.push(error.message);\n }\n });\n\n if (messages.length) {\n this.theme.addInputError(this.input, messages.join('. ') + '.');\n }\n else {\n this.theme.removeInputError(this.input);\n }\n }\n});\n","JSONEditor.defaults.editors.selectize = JSONEditor.AbstractEditor.extend({\n setValue: function(value,initial) {\n value = this.typecast(value||'');\n\n // Sanitize value before setting it\n var sanitized = value;\n if(this.enum_values.indexOf(sanitized) < 0) {\n sanitized = this.enum_values[0];\n }\n\n if(this.value === sanitized) {\n return;\n }\n\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)];\n\n if(this.selectize) {\n this.selectize[0].selectize.addItem(sanitized);\n }\n\n this.value = sanitized;\n this.onChange();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n if(!this.enum_options) return 3;\n var longest_text = this.getTitle().length;\n for(var i=0; i<this.enum_options.length; i++) {\n longest_text = Math.max(longest_text,this.enum_options[i].length+4);\n }\n return Math.min(12,Math.max(longest_text/7,2));\n },\n typecast: function(value) {\n if(this.schema.type === \"boolean\") {\n return !!value;\n }\n else if(this.schema.type === \"number\") {\n return 1*value;\n }\n else if(this.schema.type === \"integer\") {\n return Math.floor(value*1);\n }\n else {\n return \"\"+value;\n }\n },\n getValue: function() {\n if (!this.dependenciesFulfilled) {\n return undefined;\n }\n return this.value;\n },\n preBuild: function() {\n var self = this;\n this.input_type = 'select';\n this.enum_options = [];\n this.enum_values = [];\n this.enum_display = [];\n var i;\n\n // Enum options enumerated\n if(this.schema.enum) {\n var display = this.schema.options && this.schema.options.enum_titles || [];\n\n $each(this.schema.enum,function(i,option) {\n self.enum_options[i] = \"\"+option;\n self.enum_display[i] = \"\"+(display[i] || option);\n self.enum_values[i] = self.typecast(option);\n });\n }\n // Boolean\n else if(this.schema.type === \"boolean\") {\n self.enum_display = this.schema.options && this.schema.options.enum_titles || ['true','false'];\n self.enum_options = ['1','0'];\n self.enum_values = [true,false];\n }\n // Dynamic Enum\n else if(this.schema.enumSource) {\n this.enumSource = [];\n this.enum_display = [];\n this.enum_options = [];\n this.enum_values = [];\n\n // Shortcut declaration for using a single array\n if(!(Array.isArray(this.schema.enumSource))) {\n if(this.schema.enumValue) {\n this.enumSource = [\n {\n source: this.schema.enumSource,\n value: this.schema.enumValue\n }\n ];\n }\n else {\n this.enumSource = [\n {\n source: this.schema.enumSource\n }\n ];\n }\n }\n else {\n for(i=0; i<this.schema.enumSource.length; i++) {\n // Shorthand for watched variable\n if(typeof this.schema.enumSource[i] === \"string\") {\n this.enumSource[i] = {\n source: this.schema.enumSource[i]\n };\n }\n // Make a copy of the schema\n else if(!(Array.isArray(this.schema.enumSource[i]))) {\n this.enumSource[i] = $extend({},this.schema.enumSource[i]);\n }\n else {\n this.enumSource[i] = this.schema.enumSource[i];\n }\n }\n }\n\n // Now, enumSource is an array of sources\n // Walk through this array and fix up the values\n for(i=0; i<this.enumSource.length; i++) {\n if(this.enumSource[i].value) {\n this.enumSource[i].value = this.jsoneditor.compileTemplate(this.enumSource[i].value, this.template_engine);\n }\n if(this.enumSource[i].title) {\n this.enumSource[i].title = this.jsoneditor.compileTemplate(this.enumSource[i].title, this.template_engine);\n }\n if(this.enumSource[i].filter) {\n this.enumSource[i].filter = this.jsoneditor.compileTemplate(this.enumSource[i].filter, this.template_engine);\n }\n }\n }\n // Other, not supported\n else {\n throw \"'select' editor requires the enum property to be set.\";\n }\n },\n build: function() {\n var self = this;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n if(this.options.infoText) this.infoButton = this.theme.getInfoButton(this.options.infoText);\n\n if(this.options.compact) this.container.classList.add('compact');\n\n this.input = this.theme.getSelectInput(this.enum_options);\n this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display);\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.input.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.onInputChange();\n });\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton);\n this.container.appendChild(this.control);\n\n this.value = this.enum_values[0];\n },\n onInputChange: function() {\n //console.log(\"onInputChange\");\n var val = this.input.value;\n\n var sanitized = val;\n if(this.enum_options.indexOf(val) === -1) {\n sanitized = this.enum_options[0];\n }\n\n //this.value = this.enum_values[this.enum_options.indexOf(val)];\n this.value = val;\n this.onChange(true);\n },\n setupSelectize: function() {\n // If the Selectize library is loaded use it when we have lots of items\n var self = this;\n if(window.jQuery && window.jQuery.fn && window.jQuery.fn.selectize && (this.enum_options.length >= 2 || (this.enum_options.length && this.enumSource))) {\n var options = $extend({},JSONEditor.plugins.selectize);\n if(this.schema.options && this.schema.options.selectize_options) options = $extend(options,this.schema.options.selectize_options);\n this.selectize = window.jQuery(this.input).selectize($extend(options,\n {\n // set the create option to true by default, or to the user specified value if defined\n create: ( options.create === undefined ? true : options.create),\n onChange : function() {\n self.onInputChange();\n }\n }));\n }\n else {\n this.selectize = null;\n }\n },\n postBuild: function() {\n this._super();\n this.theme.afterInputReady(this.input);\n this.setupSelectize();\n },\n onWatchedFieldChange: function() {\n var self = this, vars, j;\n\n // If this editor uses a dynamic select box\n if(this.enumSource) {\n vars = this.getWatchedFieldValues();\n var select_options = [];\n var select_titles = [];\n\n for(var i=0; i<this.enumSource.length; i++) {\n // Constant values\n if(Array.isArray(this.enumSource[i])) {\n select_options = select_options.concat(this.enumSource[i]);\n select_titles = select_titles.concat(this.enumSource[i]);\n }\n // A watched field\n else if(vars[this.enumSource[i].source]) {\n var items = vars[this.enumSource[i].source];\n\n // Only use a predefined part of the array\n if(this.enumSource[i].slice) {\n items = Array.prototype.slice.apply(items,this.enumSource[i].slice);\n }\n // Filter the items\n if(this.enumSource[i].filter) {\n var new_items = [];\n for(j=0; j<items.length; j++) {\n if(this.enumSource[i].filter({i:j,item:items[j]})) new_items.push(items[j]);\n }\n items = new_items;\n }\n\n var item_titles = [];\n var item_values = [];\n for(j=0; j<items.length; j++) {\n var item = items[j];\n\n // Rendered value\n if(this.enumSource[i].value) {\n item_values[j] = this.enumSource[i].value({\n i: j,\n item: item\n });\n }\n // Use value directly\n else {\n item_values[j] = items[j];\n }\n\n // Rendered title\n if(this.enumSource[i].title) {\n item_titles[j] = this.enumSource[i].title({\n i: j,\n item: item\n });\n }\n // Use value as the title also\n else {\n item_titles[j] = item_values[j];\n }\n }\n\n // TODO: sort\n\n select_options = select_options.concat(item_values);\n select_titles = select_titles.concat(item_titles);\n }\n }\n\n var prev_value = this.value;\n\n // Check to see if this item is in the list\n // Note: We have to skip empty string for watch lists to work properly\n if ((prev_value !== undefined) && (prev_value !== \"\") && (select_options.indexOf(prev_value) === -1)) {\n // item is not in the list. Add it.\n select_options = select_options.concat(prev_value);\n select_titles = select_titles.concat(prev_value);\n }\n\n this.theme.setSelectOptions(this.input, select_options, select_titles);\n this.enum_options = select_options;\n this.enum_display = select_titles;\n this.enum_values = select_options;\n\n // If the previous value is still in the new select options, stick with it\n if(select_options.indexOf(prev_value) !== -1) {\n this.input.value = prev_value;\n this.value = prev_value;\n }\n\n // Otherwise, set the value to the first select option\n else {\n this.input.value = select_options[0];\n this.value = select_options[0] || \"\";\n if(this.parent) this.parent.onChildEditorChange(this);\n else this.jsoneditor.onChange();\n this.jsoneditor.notifyWatchers(this.path);\n }\n\n if(this.selectize) {\n // Update the Selectize options\n this.updateSelectizeOptions(select_options);\n }\n else {\n this.setupSelectize();\n }\n\n this._super();\n }\n },\n updateSelectizeOptions: function(select_options) {\n var selectized = this.selectize[0].selectize,\n self = this;\n\n selectized.off();\n selectized.clearOptions();\n for(var n in select_options) {\n selectized.addOption({value:select_options[n],text:select_options[n]});\n }\n selectized.addItem(this.value);\n selectized.on('change',function() {\n self.onInputChange();\n });\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n if(this.selectize) {\n this.selectize[0].selectize.unlock();\n }\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n this.input.disabled = true;\n if(this.selectize) {\n this.selectize[0].selectize.lock();\n }\n this._super();\n },\n destroy: function() {\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.selectize) {\n this.selectize[0].selectize.destroy();\n this.selectize = null;\n }\n this._super();\n }\n});\n","JSONEditor.defaults.editors.multiselect = JSONEditor.AbstractEditor.extend({\n preBuild: function() {\n this._super();\n var i;\n\n this.select_options = {};\n this.select_values = {};\n\n var items_schema = this.jsoneditor.expandRefs(this.schema.items || {});\n\n var e = items_schema[\"enum\"] || [];\n var t = items_schema.options? items_schema.options.enum_titles || [] : [];\n this.option_keys = [];\n this.option_titles = [];\n for(i=0; i<e.length; i++) {\n // If the sanitized value is different from the enum value, don't include it\n if(this.sanitize(e[i]) !== e[i]) continue;\n\n this.option_keys.push(e[i]+\"\");\n this.option_titles.push((t[i]||e[i])+\"\");\n this.select_values[e[i]+\"\"] = e[i];\n }\n },\n build: function() {\n var self = this, i;\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n\n if((!this.schema.format && this.option_keys.length < 8) || this.schema.format === \"checkbox\") {\n this.input_type = 'checkboxes';\n\n this.inputs = {};\n this.controls = {};\n for(i=0; i<this.option_keys.length; i++) {\n this.inputs[this.option_keys[i]] = this.theme.getCheckbox();\n this.select_options[this.option_keys[i]] = this.inputs[this.option_keys[i]];\n var label = this.theme.getCheckboxLabel(this.option_titles[i]);\n this.controls[this.option_keys[i]] = this.theme.getFormControl(label, this.inputs[this.option_keys[i]]);\n }\n\n this.control = this.theme.getMultiCheckboxHolder(this.controls,this.label,this.description);\n }\n else {\n this.input_type = 'select';\n this.input = this.theme.getSelectInput(this.option_keys);\n this.theme.setSelectOptions(this.input,this.option_keys,this.option_titles);\n this.input.multiple = true;\n this.input.size = Math.min(10,this.option_keys.length);\n\n for(i=0; i<this.option_keys.length; i++) {\n this.select_options[this.option_keys[i]] = this.input.children[i];\n }\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description);\n }\n\n this.container.appendChild(this.control);\n this.control.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n var new_value = [];\n for(i = 0; i<self.option_keys.length; i++) {\n if(self.select_options[self.option_keys[i]].selected || self.select_options[self.option_keys[i]].checked) new_value.push(self.select_values[self.option_keys[i]]);\n }\n\n self.updateValue(new_value);\n self.onChange(true);\n });\n },\n setValue: function(value, initial) {\n var i;\n value = value || [];\n if(typeof value !== \"object\") value = [value];\n else if(!(Array.isArray(value))) value = [];\n\n // Make sure we are dealing with an array of strings so we can check for strict equality\n for(i=0; i<value.length; i++) {\n if(typeof value[i] !== \"string\") value[i] += \"\";\n }\n\n // Update selected status of options\n for(i in this.select_options) {\n if(!this.select_options.hasOwnProperty(i)) continue;\n\n this.select_options[i][this.input_type === \"select\"? \"selected\" : \"checked\"] = (value.indexOf(i) !== -1);\n }\n\n this.updateValue(value);\n this.onChange();\n },\n setupSelect2: function() {\n if(window.jQuery && window.jQuery.fn && window.jQuery.fn.select2) {\n var options = window.jQuery.extend({},JSONEditor.plugins.select2);\n if(this.schema.options && this.schema.options.select2_options) options = $extend(options,this.schema.options.select2_options);\n this.select2 = window.jQuery(this.input).select2(options);\n this.select2v4 = this.select2.select2.hasOwnProperty(\"amd\");\n\n var self = this;\n this.select2.on('select2-blur',function() {\n if(self.select2v4)\n self.value = self.select2.val();\n else\n self.value = self.select2.select2('val');\n\n self.onChange(true);\n });\n\n this.select2.on('change',function() {\n if(self.select2v4)\n self.value = self.select2.val();\n else\n self.value = self.select2.select2('val');\n\n self.onChange(true);\n });\n }\n else {\n this.select2 = null;\n }\n },\n onInputChange: function() {\n this.value = this.input.value;\n this.onChange(true);\n },\n postBuild: function() {\n this._super();\n this.setupSelect2();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n var longest_text = this.getTitle().length;\n for(var i in this.select_values) {\n if(!this.select_values.hasOwnProperty(i)) continue;\n longest_text = Math.max(longest_text,(this.select_values[i]+\"\").length+4);\n }\n\n return Math.min(12,Math.max(longest_text/7,2));\n },\n updateValue: function(value) {\n var changed = false;\n var new_value = [];\n for(var i=0; i<value.length; i++) {\n if(!this.select_options[value[i]+\"\"]) {\n changed = true;\n continue;\n }\n var sanitized = this.sanitize(this.select_values[value[i]]);\n new_value.push(sanitized);\n if(sanitized !== value[i]) changed = true;\n }\n this.value = new_value;\n\n if(this.select2) {\n if(this.select2v4)\n this.select2.val(this.value).trigger(\"change\"); \n else\n this.select2.select2('val',this.value);\n }\n\n return changed;\n },\n sanitize: function(value) {\n if(this.schema.items.type === \"number\") {\n return 1*value;\n }\n else if(this.schema.items.type === \"integer\") {\n return Math.floor(value*1);\n }\n else {\n return \"\"+value;\n }\n },\n enable: function() {\n if(!this.always_disabled) {\n if(this.input) {\n this.input.disabled = false;\n }\n else if(this.inputs) {\n for(var i in this.inputs) {\n if(!this.inputs.hasOwnProperty(i)) continue;\n this.inputs[i].disabled = false;\n }\n }\n if(this.select2) {\n if(this.select2v4)\n this.select2.prop(\"disabled\",false);\n else\n this.select2.select2(\"enable\",true);\n }\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n if(this.input) {\n this.input.disabled = true;\n }\n else if(this.inputs) {\n for(var i in this.inputs) {\n if(!this.inputs.hasOwnProperty(i)) continue;\n this.inputs[i].disabled = true;\n }\n }\n if(this.select2) {\n if(this.select2v4)\n this.select2.prop(\"disabled\",true);\n else\n this.select2.select2(\"enable\",false);\n }\n this._super();\n },\n destroy: function() {\n if(this.select2) {\n this.select2.select2('destroy');\n this.select2 = null;\n }\n this._super();\n }\n});\n","JSONEditor.defaults.editors.base64 = JSONEditor.AbstractEditor.extend({\n getNumColumns: function() {\n return 4;\n },\n setFileReaderListener: function (fr_multiple) {\n var self = this;\n fr_multiple.addEventListener(\"load\", function(event) {\n if (self.count == self.current_item_index) {\n // Overwrite existing file by default, leave other properties unchanged\n self.value[self.count][self.key] = event.target.result;\n } else {\n var temp_object = {};\n // Create empty object\n for (var key in self.parent.schema.properties) {\n temp_object[key] = \"\";\n }\n // Set object media file\n temp_object[self.key] = event.target.result;\n self.value.splice(self.count, 0, temp_object); // insert new file object\n }\n\n // Increment using the listener and not the 'for' loop as the listener will be processed asynchronously\n self.count += 1;\n // When all files have been processed, update the value of the editor\n if (self.count == (self.total+self.current_item_index)) {\n self.arrayEditor.setValue(self.value);\n }\n });\n },\n build: function() {\n var self = this;\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.options.infoText) this.infoButton = this.theme.getInfoButton(this.options.infoText);\n\n // Input that holds the base64 string\n this.input = this.theme.getFormInputField('hidden');\n this.container.appendChild(this.input);\n\n // Don't show uploader if this is readonly\n if(!this.schema.readOnly && !this.schema.readonly) {\n if(!window.FileReader) throw \"FileReader required for base64 editor\";\n\n // File uploader\n this.uploader = this.theme.getFormInputField('file');\n\n // Set attribute of file input field to 'multiple' if:\n // 'multiple' key has been set to 'true' in the schema\n // and the parent object is of type 'object'\n // and the parent of the parent type has been set to 'array'\n if (self.schema.options && self.schema.options.multiple && self.schema.options.multiple == true && self.parent && self.parent.schema.type == 'object' && self.parent.parent && self.parent.parent.schema.type == 'array') {\n this.uploader.setAttribute('multiple', '');\n }\n\n this.uploader.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if(this.files && this.files.length) {\n\n // Check the amount of files uploaded.\n // If 1, use the regular upload, otherwise use the multiple upload method\n if (this.files.length>1 && self.schema.options && self.schema.options.multiple && self.schema.options.multiple == true && self.parent && self.parent.schema.type == 'object' && self.parent.parent && self.parent.parent.schema.type == 'array') {\n\n // Load editor of parent.parent to get the array\n self.arrayEditor = self.jsoneditor.getEditor(self.parent.parent.path);\n // Check the current value of this editor\n self.value = self.arrayEditor.getValue();\n // Set variables for amount of files, index of current array item and\n // count value containing current status of processed files\n self.total = this.files.length;\n self.current_item_index = parseInt(self.parent.key);\n self.count = self.current_item_index;\n\n for (var i = 0; i < self.total; i++) {\n var fr_multiple = new FileReader();\n self.setFileReaderListener(fr_multiple);\n fr_multiple.readAsDataURL(this.files[i]);\n }\n } else {\n var fr = new FileReader();\n fr.onload = function(evt) {\n self.value = evt.target.result;\n self.refreshPreview();\n self.onChange(true);\n fr = null;\n };\n fr.readAsDataURL(this.files[0]);\n }\n }\n });\n }\n\n this.preview = this.theme.getFormInputDescription(this.schema.description);\n this.container.appendChild(this.preview);\n\n this.control = this.theme.getFormControl(this.label, this.uploader||this.input, this.preview, this.infoButton);\n this.container.appendChild(this.control);\n },\n refreshPreview: function() {\n if(this.last_preview === this.value) return;\n this.last_preview = this.value;\n\n this.preview.innerHTML = '';\n\n if(!this.value) return;\n\n var mime = this.value.match(/^data:([^;,]+)[;,]/);\n if(mime) mime = mime[1];\n\n if(!mime) {\n this.preview.innerHTML = '<em>Invalid data URI</em>';\n }\n else {\n this.preview.innerHTML = '<strong>Type:</strong> '+mime+', <strong>Size:</strong> '+Math.floor((this.value.length-this.value.split(',')[0].length-1)/1.33333)+' bytes';\n if(mime.substr(0,5)===\"image\") {\n this.preview.innerHTML += '<br>';\n var img = document.createElement('img');\n img.style.maxWidth = '100%';\n img.style.maxHeight = '100px';\n img.src = this.value;\n this.preview.appendChild(img);\n }\n }\n },\n enable: function() {\n if(!this.always_disabled) {\n if(this.uploader) this.uploader.disabled = false;\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n if(this.uploader) this.uploader.disabled = true;\n this._super();\n },\n setValue: function(val) {\n if(this.value !== val) {\n this.value = val;\n this.input.value = this.value;\n this.refreshPreview();\n this.onChange();\n }\n },\n destroy: function() {\n if(this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.uploader && this.uploader.parentNode) this.uploader.parentNode.removeChild(this.uploader);\n\n this._super();\n }\n});\n","JSONEditor.defaults.editors.upload = JSONEditor.AbstractEditor.extend({\n getNumColumns: function() {\n return 4;\n },\n build: function() { \n var self = this;\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n\n // Input that holds the base64 string\n this.input = this.theme.getFormInputField('hidden');\n this.container.appendChild(this.input);\n \n // Don't show uploader if this is readonly\n if(!this.schema.readOnly && !this.schema.readonly) {\n\n if(!this.jsoneditor.options.upload) throw \"Upload handler required for upload editor\";\n\n // File uploader\n this.uploader = this.theme.getFormInputField('file');\n \n this.uploader.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n \n if(this.files && this.files.length) {\n var fr = new FileReader();\n fr.onload = function(evt) {\n self.preview_value = evt.target.result;\n self.refreshPreview();\n self.onChange(true);\n fr = null;\n };\n fr.readAsDataURL(this.files[0]);\n }\n });\n }\n\n var description = this.schema.description;\n if (!description) description = '';\n\n this.preview = this.theme.getFormInputDescription(description);\n this.container.appendChild(this.preview);\n\n this.control = this.theme.getFormControl(this.label, this.uploader||this.input, this.preview);\n this.container.appendChild(this.control);\n\n window.requestAnimationFrame(function() {\n if (self.value) {\n var img = document.createElement('img');\n img.style.maxWidth = '100%';\n img.style.maxHeight = '100px';\n img.onload = function (event) {\n self.preview.appendChild(img);\n };\n img.onerror = function(error) {\n console.error('upload error', error);\n };\n img.src = self.container.querySelector('a').href;\n }\n });\n\n },\n refreshPreview: function() {\n if(this.last_preview === this.preview_value) return;\n this.last_preview = this.preview_value;\n\n this.preview.innerHTML = '';\n \n if(!this.preview_value) return;\n\n var self = this;\n\n var mime = this.preview_value.match(/^data:([^;,]+)[;,]/);\n if(mime) mime = mime[1];\n if(!mime) mime = 'unknown';\n\n var file = this.uploader.files[0];\n\n this.preview.innerHTML = '<strong>Type:</strong> '+mime+', <strong>Size:</strong> '+file.size+' bytes';\n if(mime.substr(0,5)===\"image\") {\n this.preview.innerHTML += '<br>';\n var img = document.createElement('img');\n img.style.maxWidth = '100%';\n img.style.maxHeight = '100px';\n img.src = this.preview_value;\n this.preview.appendChild(img);\n }\n\n this.preview.innerHTML += '<br>';\n var uploadButton = this.getButton('Upload', 'upload', 'Upload');\n this.preview.appendChild(uploadButton);\n uploadButton.addEventListener('click',function(event) {\n event.preventDefault();\n\n uploadButton.setAttribute(\"disabled\", \"disabled\");\n self.theme.removeInputError(self.uploader);\n\n if (self.theme.getProgressBar) {\n self.progressBar = self.theme.getProgressBar();\n self.preview.appendChild(self.progressBar);\n }\n\n self.jsoneditor.options.upload(self.path, file, {\n success: function(url) {\n self.setValue(url);\n\n if(self.parent) self.parent.onChildEditorChange(self);\n else self.jsoneditor.onChange();\n\n if (self.progressBar) self.preview.removeChild(self.progressBar);\n uploadButton.removeAttribute(\"disabled\");\n },\n failure: function(error) {\n self.theme.addInputError(self.uploader, error);\n if (self.progressBar) self.preview.removeChild(self.progressBar);\n uploadButton.removeAttribute(\"disabled\");\n },\n updateProgress: function(progress) {\n if (self.progressBar) {\n if (progress) self.theme.updateProgressBar(self.progressBar, progress);\n else self.theme.updateProgressBarUnknown(self.progressBar);\n }\n }\n });\n });\n\n if(this.jsoneditor.options.auto_upload || this.schema.options.auto_upload) {\n uploadButton.dispatchEvent(new MouseEvent('click'));\n this.preview.removeChild(uploadButton);\n }\n },\n enable: function() {\n if(!this.always_disabled) {\n if(this.uploader) this.uploader.disabled = false;\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n if(this.uploader) this.uploader.disabled = true;\n this._super();\n },\n setValue: function(val) {\n if(this.value !== val) {\n this.value = val;\n this.input.value = this.value;\n this.onChange();\n }\n },\n destroy: function() {\n if(this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n if(this.uploader && this.uploader.parentNode) this.uploader.parentNode.removeChild(this.uploader);\n\n this._super();\n }\n});\n","JSONEditor.defaults.editors.checkbox = JSONEditor.AbstractEditor.extend({\n setValue: function(value,initial) {\n this.value = !!value;\n this.input.checked = this.value;\n this.onChange();\n },\n register: function() {\n this._super();\n if(!this.input) return;\n this.input.setAttribute('name',this.formname);\n },\n unregister: function() {\n this._super();\n if(!this.input) return;\n this.input.removeAttribute('name');\n },\n getNumColumns: function() {\n return Math.min(12,Math.max(this.getTitle().length/7,2));\n },\n build: function() {\n var self = this;\n if(!this.options.compact) {\n this.label = this.header = this.theme.getCheckboxLabel(this.getTitle());\n }\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n if(this.options.infoText) this.infoButton = this.theme.getInfoButton(this.options.infoText);\n if(this.options.compact) this.container.classList.add('compact');\n\n this.input = this.theme.getCheckbox();\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton);\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n this.input.disabled = true;\n }\n\n this.input.addEventListener('change',function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.value = this.checked;\n self.onChange(true);\n });\n\n this.container.appendChild(this.control);\n },\n enable: function() {\n if(!this.always_disabled) {\n this.input.disabled = false;\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n this.input.disabled = true;\n this._super();\n },\n destroy: function() {\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n this._super();\n },\n showValidationErrors: function (errors) {\n var self = this;\n\n if (this.jsoneditor.options.show_errors === \"always\") {}\n\n else if (!this.is_dirty && this.previous_error_setting === this.jsoneditor.options.show_errors) {\n return;\n }\n\n this.previous_error_setting = this.jsoneditor.options.show_errors;\n\n var messages = [];\n $each(errors, function (i, error) {\n if (error.path === self.path) {\n messages.push(error.message);\n }\n });\n\n this.input.controlgroup = this.control;\n\n if (messages.length) {\n this.theme.addInputError(this.input, messages.join('. ') + '.');\n }\n else {\n this.theme.removeInputError(this.input);\n }\n }\n});\n","JSONEditor.defaults.editors.arraySelectize = JSONEditor.AbstractEditor.extend({\n preBuild: function() {\n var self = this;\n this.enum_options = [];\n this.enum_values = [];\n this.enum_display = [];\n var i;\n\n // Enum options enumerated\n if(this.schema.items.enum) {\n var display = this.schema.options && this.schema.options.enum_titles || [];\n\n $each(this.schema.items.enum,function(i,option) {\n self.enum_options[i] = \"\"+option;\n self.enum_display[i] = \"\"+(display[i] || option);\n self.enum_values[i] = self.typecast(option);\n });\n }\n // Dynamic Enum for arrays is not specified in docs\n },\n build: function() {\n this.title = this.theme.getFormInputLabel(this.getTitle());\n\n this.title_controls = this.theme.getHeaderButtonHolder();\n this.title.appendChild(this.title_controls);\n this.error_holder = document.createElement('div');\n\n if(this.schema.description) {\n this.description = this.theme.getDescription(this.schema.description);\n }\n\n this.input = this.theme.getSelectInput(this.enum_options);\n this.input.setAttribute('multiple', 'multiple');\n var group = this.theme.getFormControl(this.title, this.input, this.description);\n\n this.container.appendChild(group);\n this.container.appendChild(this.error_holder);\n\n //apply global options to array selectize\n var options = $extend({},JSONEditor.plugins.selectize);\n if(this.schema.options && this.schema.options.selectize_options) options = $extend(options,this.schema.options.selectize_options);\n window.jQuery(this.input).selectize($extend(options,\n {\n delimiter: ( options.delimiter === undefined ? false : options.delimiter),\n createOnBlur: ( options.createOnBlur === undefined ? true : options.createOnBlur),\n create: ( options.create === undefined ? true : options.create)\n }));\n },\n postBuild: function() {\n this._super();\n var self = this;\n this.input.selectize.on('change', function(event) {\n self.refreshValue();\n self.onChange(true);\n });\n },\n destroy: function() {\n this.empty(true);\n if(this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n if(this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input);\n\n this._super();\n },\n empty: function(hard) {},\n setValue: function(value, initial) {\n var self = this;\n // Update the array's value, adding/removing rows when necessary\n value = value || [];\n if(!(Array.isArray(value))) value = [value];\n\n this.input.selectize.clearOptions();\n this.input.selectize.clear(true);\n\n if (this.schema.items.enum && this.enum_options && this.enum_options.length > 0) {\n var titles = this.enum_titles || [];\n this.enum_options.forEach(function(x, idx) {\n self.input.selectize.addOption({ text: titles[idx] || x, value: x });\n });\n } else {\n value.forEach(function(item) {\n self.input.selectize.addOption({text: item, value: item});\n });\n }\n \n this.input.selectize.setValue(value);\n\n this.refreshValue(initial);\n },\n refreshValue: function(force) {\n this.value = this.input.selectize.getValue();\n },\n showValidationErrors: function(errors) {\n var self = this;\n\n // Get all the errors that pertain to this editor\n var my_errors = [];\n var other_errors = [];\n $each(errors, function(i,error) {\n if(error.path === self.path) {\n my_errors.push(error);\n }\n else {\n other_errors.push(error);\n }\n });\n\n // Show errors for this editor\n if(this.error_holder) {\n\n if(my_errors.length) {\n var message = [];\n this.error_holder.innerHTML = '';\n this.error_holder.style.display = '';\n $each(my_errors, function(i,error) {\n self.error_holder.appendChild(self.theme.getErrorMessage(error.message));\n });\n }\n // Hide error area\n else {\n this.error_holder.style.display = 'none';\n }\n }\n },\n typecast: function(value) {\n if(this.schema.type === \"boolean\") {\n return !!value;\n }\n else if(this.schema.type === \"number\") {\n return 1*value;\n }\n else if(this.schema.type === \"integer\") {\n return Math.floor(value*1);\n }\n else {\n return \"\"+value;\n }\n }\n});\n","JSONEditor.defaults.editors.starrating = JSONEditor.defaults.editors.string.extend({\n build: function () {\n var self = this;\n\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n if(this.options.infoText) this.infoButton = this.theme.getInfoButton(this.options.infoText);\n if(this.options.compact) this.container.classList.add('compact');\n\n this.ratingContainer = document.createElement('div');\n this.ratingContainer.classList.add('starrating');\n\n this.enum_values = this.schema.enum;\n this.radioGroup =[];\n\n var radioInputEventhandler = function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.setValue(this.value);\n self.onChange(true);\n };\n\n for(var i = this.enum_values.length-1; i>-1; i--) {\n\n var id = this.key + '-' + i;\n\n // form radio elements\n var radioInput = this.theme.getFormInputField('radio');\n radioInput.name = this.formname + '[starrating]';\n radioInput.value = this.enum_values[i];\n radioInput.id = id;\n radioInput.addEventListener('change', radioInputEventhandler, false);\n this.radioGroup.push(radioInput);\n\n // form-label for radio elements\n var radioLabel = document.createElement('label');\n radioLabel.htmlFor = id;\n radioLabel.title = this.enum_values[i];\n if(this.options.displayValue) {\n radioLabel.classList.add('starrating-display-enabled');\n }\n\n this.ratingContainer.appendChild(radioInput);\n this.ratingContainer.appendChild(radioLabel);\n\n }\n\n if(this.options.displayValue) {\n this.displayRating = document.createElement('div');\n this.displayRating.classList.add('starrating-display');\n this.displayRating.innerText = this.enum_values[0];\n this.ratingContainer.appendChild(this.displayRating);\n }\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n for (var j = 0; i<this.radioGroup.length; j++) {\n this.radioGroup[j].disabled = true;\n }\n this.ratingContainer.classList.add('readonly');\n }\n\n var ratingsContainerWrapper = this.theme.getContainer();\n ratingsContainerWrapper.appendChild(this.ratingContainer);\n\n this.input = ratingsContainerWrapper;\n \n this.control = this.theme.getFormControl(this.label, ratingsContainerWrapper, this.description, this.infoButton);\n this.container.appendChild(this.control);\n },\n enable: function() {\n if(!this.always_disabled) {\n for (var i = 0; i<this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = false;\n }\n this.ratingContainer.classList.remove('readonly');\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n for (var i = 0; i<this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = true;\n }\n this.ratingContainer.classList.add('readonly');\n this._super();\n },\n destroy: function() {\n if(this.ratingContainer.parentNode && this.ratingContainer.parentNode.parentNode) this.ratingContainer.parentNode.parentNode.removeChild(this.ratingContainer.parentNode);\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n this._super();\n },\n getNumColumns: function() {\n return 2;\n },\n setValue: function (val) {\n for(var i = 0; i < this.radioGroup.length; i++) {\n\n if(this.radioGroup[i].value == val) {\n this.radioGroup[i].checked = true;\n this.value = val;\n if(this.options.displayValue) {\n this.displayRating.innerHTML = this.value;\n }\n this.onChange();\n break;\n }\n }\n }\n});\n","/*\n\nEdtended handling of date, time and datetime-local type fields.\n\nWorks with both string and integer data types. (default only support string type)\n\nHas optional support for using flatpickr datepicker.\nAll flatpickr options is supported with a few minor differences.\n- \"enableTime\" and \"noCalendar\" are set automatically, based on the data type.\n- Extra config option \"errorDateFormat\". If this is set, it will replace the format displayed in error messages.\n- It is not possible to use \"inline\" and \"wrap\" options together.\n- When using the \"wrap\" option, \"toggle\" and \"clear\" buttons are automatically added to markup. 2 extra boolean options (\"showToggleButton\" and \"showClearButton\") are available to control which buttons to display. Note: not all frameworks supports this. (Works in: Bootstrap and Foundation)\n- When using the \"inline\" option, an extra boolean option (\"inlineHideInput\") is available to hide the original input field.\n- If \"mode\" is set to either \"multiple\" or \"range\", only string data type is supported. Also the result from these is returned as a string not an array.\n\nToDo:\n - Improve Handling of flatpicker \"multiple\" and \"range\" modes. (Currently the values are just added as string values, but the optimal scenario would be to save those as array if possible)\n\n*/\nJSONEditor.defaults.editors.datetime = JSONEditor.defaults.editors.string.extend({\n build: function () {\n this._super();\n if(!this.input) return;\n\n if(window.flatpickr && typeof this.options.flatpickr == 'object') {\n\n // Make sure that flatpickr settings matches the input type\n this.options.flatpickr.enableTime = this.schema.format == 'date' ? false : true;\n this.options.flatpickr.noCalendar = this.schema.format == 'time' ? true : false;\n\n // Curently only string can contain range or multiple values\n if (this.schema.type == 'integer') this.options.flatpickr.mode = 'single';\n\n // Attribute for flatpicker\n this.input.setAttribute('data-input','');\n\n var input = this.input;\n\n if (this.options.flatpickr.wrap === true) {\n\n // Create buttons for input group\n var buttons = [];\n if (this.options.flatpickr.showToggleButton !== false) {\n var toggleButton = this.getButton('',this.schema.format == 'time' ? 'time' :'calendar', this.translate('flatpickr_toggle_button'));\n // Attribute for flatpicker\n toggleButton.setAttribute('data-toggle','');\n buttons.push(toggleButton);\n }\n if (this.options.flatpickr.showClearButton !== false) {\n var clearButton = this.getButton('','clear', this.translate('flatpickr_clear_button'));\n // Attribute for flatpicker\n clearButton.setAttribute('data-clear','');\n buttons.push(clearButton);\n }\n\n // Save position of input field\n var parentNode = this.input.parentNode, nextSibling = this.input.nextSibling;\n\n var buttonContainer = this.theme.getInputGroup(this.input, buttons);\n if (buttonContainer !== undefined) {\n // Make sure \"inline\" option is turned off\n this.options.flatpickr.inline = false;\n\n // Insert container at same position as input field\n parentNode.insertBefore(buttonContainer, nextSibling);\n\n input = buttonContainer;\n }\n else {\n this.options.flatpickr.wrap = false;\n }\n\n }\n\n this.flatpickr = window.flatpickr(input, this.options.flatpickr);\n\n if (this.options.flatpickr.inline === true && this.options.flatpickr.inlineHideInput === true) {\n this.input.setAttribute('type','hidden');\n }\n }\n },\n getValue: function() {\n if (!this.dependenciesFulfilled) {\n return undefined;\n }\n if (this.schema.type == 'string') {\n return this.value;\n }\n if (this.value === '' || this.value === undefined) {\n return undefined;\n }\n\n var value = this.schema.format == 'time' ? '1970-01-01 ' + this.value : this.value;\n return parseInt(new Date(value).getTime() / 1000);\n },\n setValue: function(value, initial, from_template) {\n if (this.schema.type == 'string') {\n this._super(value, initial, from_template);\n if (this.flatpickr) this.flatpickr.setDate(value);\n }\n else if (value > 0) {\n var dateObj = new Date(value * 1000),\n year = dateObj.getFullYear(),\n month = this.zeroPad(dateObj.getMonth() + 1),\n day = this.zeroPad(dateObj.getDate()),\n hour = this.zeroPad(dateObj.getHours()),\n min = this.zeroPad(dateObj.getMinutes()),\n sec = this.zeroPad(dateObj.getSeconds()),\n date = [year, month, day].join('-'),\n time = [hour, min, sec].join(':'),\n dateValue = date + 'T' + time;\n\n if (this.schema.format == 'date') dateValue = date;\n else if (this.schema.format == 'time') dateValue = time;\n\n this.input.value = dateValue;\n if (this.flatpickr) this.flatpickr.setDate(dateValue);\n }\n },\n destroy: function() {\n if (this.flatpickr) this.flatpickr.destroy();\n this.flatpickr = null;\n this._super();\n },\n // helper function\n zeroPad: function(value) {\n return ('0' + value).slice(-2);\n }\n});\n","JSONEditor.defaults.editors.signature = JSONEditor.defaults.editors.string.extend({\n\n // This editor is using the signature pad editor from https://github.com/szimek/signature_pad\n // Credits for the pad itself go to https://github.com/szimek\n\n build: function() {\n var self = this, i;\n\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n var formname = this.formname.replace(/\\W/g, '');\n\n if (typeof SignaturePad == 'function') {\n // Dynamically add the required CSS the first time this editor is used\n var styleId = 'json-editor-style-signature';\n var styles = document.getElementById(styleId);\n this.input = this.theme.getFormInputField('hidden');\n this.container.appendChild(this.input);\n\n // Required to keep height\n var signatureContainer = document.createElement('div');\n signatureContainer.classList.add('signature-container');\n\n // Create canvas for signature pad\n var canvas = document.createElement('canvas');\n canvas.setAttribute('name', formname);\n canvas.classList.add('signature');\n signatureContainer.appendChild(canvas);\n\n\n self.signaturePad = new window.SignaturePad(canvas, {\n onEnd: function() {\n\n // check if the signature is not empty before setting a value\n if (!self.signaturePad.isEmpty()) {\n self.input.value = self.signaturePad.toDataURL();\n } else {\n self.input.value = '';\n }\n\n self.is_dirty = true;\n self.refreshValue();\n self.watch_listener();\n self.jsoneditor.notifyWatchers(self.path);\n if(self.parent) self.parent.onChildEditorChange(self);\n else self.jsoneditor.onChange();\n\n }\n });\n\n // create button containers and add clear signature button\n var buttons = document.createElement('div');\n var clearButton = document.createElement('button');\n clearButton.classList.add('tiny', 'button');\n clearButton.innerHTML='Clear signature';\n buttons.appendChild(clearButton);\n signatureContainer.appendChild(buttons);\n\n if(this.options.compact) this.container.setAttribute('class',this.container.getAttribute('class')+' compact');\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n $each(this.inputs,function(i,input) {\n canvas.setAttribute(\"readOnly\", \"readOnly\");\n input.disabled = true;\n });\n }\n // add listener to the clear button. when clicked, trigger a canvas change after emptying the canvas\n clearButton.addEventListener('click', function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.signaturePad.clear();\n // trigger stroke end to let signaturePad update the dataURL\n self.signaturePad.strokeEnd();\n });\n\n this.control = this.theme.getFormControl(this.label, signatureContainer, this.description);\n this.container.appendChild(this.control);\n this.refreshValue();\n\n // signature canvas will stretch to signatureContainer width\n canvas.width = signatureContainer.offsetWidth;\n if (self.options && self.options.canvas_height) {\n canvas.height = self.options.canvas_height;\n } else {\n canvas.height = \"300\"; // Set to default height of 300px;\n }\n } else {\n var message = document.createElement('p');\n message.innerHTML='Signature pad is not available, please include SignaturePad from https://github.com/szimek/signature_pad';\n this.container.appendChild(message);\n }\n\n },\n setValue: function(val) {\n var self = this, i;\n if (typeof SignaturePad == 'function') {\n var formname = this.formname.replace(/\\W/g, '');\n var sanitized = this.sanitize(val);\n if(this.value === sanitized) {\n return;\n }\n self.value = sanitized;\n self.input.value = self.value;\n self.signaturePad.clear();\n // only set contents if value != ''\n if (val && val != '') {\n self.signaturePad.fromDataURL(val);\n }\n self.watch_listener();\n self.jsoneditor.notifyWatchers(self.path);\n return false;\n }\n },\n destroy: function() {\n var self = this, i;\n var formname = this.formname.replace(/\\W/g, '');\n self.signaturePad.off();\n delete self.signaturePad;\n }\n});\n","JSONEditor.defaults.editors.radio = JSONEditor.defaults.editors.string.extend({\n build: function () {\n var self = this;\n\n if(!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle());\n if(this.schema.description) this.description = this.theme.getFormInputDescription(this.schema.description);\n if(this.options.infoText) this.infoButton = this.theme.getInfoButton(this.options.infoText);\n if(this.options.compact) this.container.classList.add('compact');\n\n this.radioContainer = document.createElement('div');\n\n this.enum_values = this.schema.enum;\n this.radioGroup = [];\n\n var radioInputEventhandler = function(e) {\n e.preventDefault();\n e.stopPropagation();\n self.setValue(this.value);\n self.onChange(true);\n };\n\n for(var i = 0; i < this.enum_values.length; i++) {\n\n var id = this.key + '-' + i;\n\n // form radio elements\n var radioInput = this.theme.getFormInputField('radio');\n radioInput.name = this.formname;\n radioInput.value = this.enum_values[i];\n radioInput.id = id;\n radioInput.classList.add('radio__field');\n radioInput.addEventListener('change', radioInputEventhandler, false);\n this.radioGroup.push(radioInput);\n\n // form-label for radio elements\n var radioLabel = document.createElement('label');\n radioLabel.htmlFor = id;\n radioLabel.classList.add('radio');\n\n // contains the displayed text to the label\n var radioLabelText = document.createElement('span');\n radioLabelText.innerText = this.enum_values[i];\n radioLabelText.classList.add('radio__label');\n\n // permits the addition of styles for the radio itself (if you want it to look differently than browser default)\n var radioLabelIcon = document.createElement('span');\n radioLabelIcon.classList.add('radio__icon');\n\n radioLabel.appendChild(radioInput);\n radioLabel.appendChild(radioLabelIcon);\n radioLabel.appendChild(radioLabelText);\n\n this.radioContainer.appendChild(radioLabel);\n }\n\n if(this.schema.readOnly || this.schema.readonly) {\n this.always_disabled = true;\n for (var j = 0; j < this.radioGroup.length; j++) {\n this.radioGroup[j].disabled = true;\n }\n this.radioContainer.classList.add('readonly');\n }\n\n var radioContainerWrapper = this.theme.getContainer();\n radioContainerWrapper.appendChild(this.radioContainer);\n\n this.input = radioContainerWrapper;\n \n this.control = this.theme.getFormControl(this.label, radioContainerWrapper, this.description, this.infoButton);\n this.container.appendChild(this.control);\n },\n enable: function() {\n if(!this.always_disabled) {\n for (var i = 0; i<this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = false;\n }\n this.radioContainer.classList.remove('readonly');\n this._super();\n }\n },\n disable: function(always_disabled) {\n if(always_disabled) this.always_disabled = true;\n for (var i = 0; i<this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = true;\n }\n this.radioContainer.classList.add('readonly');\n this._super();\n },\n destroy: function() {\n if(this.radioContainer.parentNode && this.radioContainer.parentNode.parentNode) this.radioContainer.parentNode.parentNode.removeChild(this.radioContainer.parentNode);\n if(this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label);\n if(this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description);\n this._super();\n },\n getNumColumns: function() {\n return 2;\n },\n setValue: function (val) {\n for(var i = 0; i < this.radioGroup.length; i++) {\n\n if(this.radioGroup[i].value == val) {\n this.radioGroup[i].checked = true;\n this.value = val;\n if(this.options.displayValue) {\n this.displayRating.innerHTML = this.value;\n }\n this.onChange();\n break;\n }\n }\n }\n});\n","// hyper-link describeBy Editor\n\nJSONEditor.defaults.editors.describedBy = JSONEditor.AbstractEditor.extend({\n register: function() {\n if (this.editors) {\n for (var i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue;\n this.editors[i].unregister();\n }\n\n if (this.editors[this.currentEditor]) this.editors[this.currentEditor].register();\n }\n\n this._super();\n },\n unregister: function() {\n this._super();\n\n if (this.editors) {\n for (var i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue;\n this.editors[i].unregister();\n }\n }\n },\n getNumColumns: function() {\n if (!this.editors[this.currentEditor]) return 4;\n return Math.max(this.editors[this.currentEditor].getNumColumns(), 4);\n },\n enable: function() {\n if (this.editors) {\n for (var i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue;\n this.editors[i].enable();\n }\n }\n\n this._super();\n },\n disable: function() {\n if (this.editors) {\n for (var i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue;\n this.editors[i].disable();\n }\n }\n\n this._super();\n },\n switchEditor: function() {\n var self = this;\n var vars = this.getWatchedFieldValues();\n\n if (!vars) return;\n\n //var ref = this.template.fillFromObject(vars);\n //var ref = this.template(vars);\n var ref = document.location.toString() + this.template(vars);\n\n if (!this.editors[this.refs[ref]]) {\n this.buildChildEditor(ref);\n }\n\n this.currentEditor = this.refs[ref];\n\n this.register();\n\n $each(this.editors, function(ref, editor) {\n if (!editor) return;\n if (self.currentEditor === ref) {\n editor.container.style.display = '';\n } else {\n editor.container.style.display = 'none';\n }\n });\n\n this.refreshValue();\n },\n buildChildEditor: function(ref) {\n this.refs[ref] = this.editors.length;\n\n var holder = this.theme.getChildEditorHolder();\n this.editor_holder.appendChild(holder);\n\n var schema = $extend({}, this.schema, this.jsoneditor.refs[ref]);\n\n var editor = this.jsoneditor.createEditor(\n this.jsoneditor.getEditorClass(schema), {\n jsoneditor: this.jsoneditor,\n schema: schema,\n container: holder,\n path: this.path,\n parent: this,\n required: true\n }\n );\n\n this.editors.push(editor);\n\n editor.preBuild();\n editor.build();\n editor.postBuild();\n },\n preBuild: function() {\n var self = this;\n\n this.refs = {};\n this.editors = [];\n this.currentEditor = '';\n\n for (var i = 0; i < this.schema.links.length; i++) {\n if (this.schema.links[i].rel.toLowerCase() === 'describedby') {\n //this.template = new UriTemplate(this.schema.links[i].href);\n this.template = this.jsoneditor.compileTemplate(this.schema.links[i].href, this.template_engine);\n break;\n }\n }\n\n /*this.template.fill(function(varName) {\n self.schema.watch = self.schema.watch || {};\n self.schema.watch[varName] = varName;\n return '';\n });*/\n\n this.schema.links.splice(0, 1);\n if (this.schema.links.length === 0) delete this.schema.links;\n\n this.baseSchema = $extend({}, this.schema);\n },\n build: function() {\n this.editor_holder = document.createElement('div');\n this.container.appendChild(this.editor_holder);\n this.switchEditor();\n },\n onWatchedFieldChange: function() {\n this.switchEditor();\n },\n onChildEditorChange: function(editor) {\n if (this.editors[this.currentEditor]) {\n this.refreshValue();\n }\n\n this._super(editor);\n },\n refreshValue: function() {\n if (this.editors[this.currentEditor]) {\n this.value = this.editors[this.currentEditor].getValue();\n }\n },\n setValue: function(val, initial) {\n if (this.editors[this.currentEditor]) {\n this.editors[this.currentEditor].setValue(val, initial);\n this.refreshValue();\n this.onChange();\n }\n },\n destroy: function() {\n $each(this.editors, function(i, editor) {\n if (editor) editor.destroy();\n });\n\n if (this.editor_holder && this.editor_holder.parentNode) {\n this.editor_holder.parentNode.removeChild(this.editor_holder);\n }\n\n this._super();\n },\n showValidationErrors: function(errors) {\n $each(this.editors, function(i, editor) {\n if (!editor) return;\n editor.showValidationErrors(errors);\n });\n }\n});\n","var matchKey = (function () {\n var elem = document.documentElement;\n\n if (elem.matches) return 'matches';\n else if (elem.webkitMatchesSelector) return 'webkitMatchesSelector';\n else if (elem.mozMatchesSelector) return 'mozMatchesSelector';\n else if (elem.msMatchesSelector) return 'msMatchesSelector';\n else if (elem.oMatchesSelector) return 'oMatchesSelector';\n})();\n\nJSONEditor.AbstractTheme = Class.extend({\n getContainer: function() {\n return document.createElement('div');\n },\n getFloatRightLinkHolder: function() {\n var el = document.createElement('div');\n el.style = el.style || {};\n el.style.cssFloat = 'right';\n el.style.marginLeft = '10px';\n return el;\n },\n getModal: function() {\n var el = document.createElement('div');\n el.style.backgroundColor = 'white';\n el.style.border = '1px solid black';\n el.style.boxShadow = '3px 3px black';\n el.style.position = 'absolute';\n el.style.zIndex = '10';\n el.style.display = 'none';\n return el;\n },\n getGridContainer: function() {\n var el = document.createElement('div');\n return el;\n },\n getGridRow: function() {\n var el = document.createElement('div');\n el.classList.add('row');\n return el;\n },\n getGridColumn: function() {\n var el = document.createElement('div');\n return el;\n },\n setGridColumnSize: function(el,size) {\n\n },\n getLink: function(text) {\n var el = document.createElement('a');\n el.setAttribute('href','#');\n el.appendChild(document.createTextNode(text));\n return el;\n },\n disableHeader: function(header) {\n header.style.color = '#ccc';\n },\n disableLabel: function(label) {\n label.style.color = '#ccc';\n },\n enableHeader: function(header) {\n header.style.color = '';\n },\n enableLabel: function(label) {\n label.style.color = '';\n },\n getInfoButton: function(text) {\n var icon = document.createElement('span');\n icon.innerText = \"ⓘ\";\n icon.style.fontSize = \"16px\";\n icon.style.fontWeight = \"bold\";\n icon.style.padding = \".25rem\";\n icon.style.position = \"relative\";\n icon.style.display = \"inline-block\";\n\n var tooltip = document.createElement('span');\n tooltip.style.fontSize = \"12px\";\n icon.style.fontWeight = \"normal\";\n tooltip.style[\"font-family\"] = \"sans-serif\";\n tooltip.style.visibility = \"hidden\";\n tooltip.style[\"background-color\"] = \"rgba(50, 50, 50, .75)\";\n tooltip.style.margin = \"0 .25rem\";\n tooltip.style.color = \"#FAFAFA\";\n tooltip.style.padding = \".5rem 1rem\";\n tooltip.style[\"border-radius\"] = \".25rem\";\n tooltip.style.width = \"20rem\";\n tooltip.style.position = \"absolute\";\n tooltip.innerText = text;\n icon.onmouseover = function() {\n tooltip.style.visibility = \"visible\";\n };\n icon.onmouseleave = function() {\n tooltip.style.visibility = \"hidden\";\n };\n\n icon.appendChild(tooltip);\n\n return icon;\n },\n getFormInputLabel: function(text) {\n var el = document.createElement('label');\n el.appendChild(document.createTextNode(text));\n return el;\n },\n getCheckboxLabel: function(text) {\n var el = this.getFormInputLabel(text);\n el.style.fontWeight = 'normal';\n return el;\n },\n getHeader: function(text) {\n var el = document.createElement('h3');\n if(typeof text === \"string\") {\n el.textContent = text;\n }\n else {\n el.appendChild(text);\n }\n\n return el;\n },\n getCheckbox: function() {\n var el = this.getFormInputField('checkbox');\n el.style.display = 'inline-block';\n el.style.width = 'auto';\n return el;\n },\n getMultiCheckboxHolder: function(controls,label,description) {\n var el = document.createElement('div');\n\n if(label) {\n label.style.display = 'block';\n el.appendChild(label);\n }\n\n for(var i in controls) {\n if(!controls.hasOwnProperty(i)) continue;\n controls[i].style.display = 'inline-block';\n controls[i].style.marginRight = '20px';\n el.appendChild(controls[i]);\n }\n\n if(description) el.appendChild(description);\n\n return el;\n },\n getSelectInput: function(options) {\n var select = document.createElement('select');\n if(options) this.setSelectOptions(select, options);\n return select;\n },\n getSwitcher: function(options) {\n var switcher = this.getSelectInput(options);\n switcher.style.backgroundColor = 'transparent';\n switcher.style.display = 'inline-block';\n switcher.style.fontStyle = 'italic';\n switcher.style.fontWeight = 'normal';\n switcher.style.height = 'auto';\n switcher.style.marginBottom = 0;\n switcher.style.marginLeft = '5px';\n switcher.style.padding = '0 0 0 3px';\n switcher.style.width = 'auto';\n return switcher;\n },\n getSwitcherOptions: function(switcher) {\n return switcher.getElementsByTagName('option');\n },\n setSwitcherOptions: function(switcher, options, titles) {\n this.setSelectOptions(switcher, options, titles);\n },\n setSelectOptions: function(select, options, titles) {\n titles = titles || [];\n select.innerHTML = '';\n for(var i=0; i<options.length; i++) {\n var option = document.createElement('option');\n option.setAttribute('value',options[i]);\n option.textContent = titles[i] || options[i];\n select.appendChild(option);\n }\n },\n getTextareaInput: function() {\n var el = document.createElement('textarea');\n el.style = el.style || {};\n el.style.width = '100%';\n el.style.height = '300px';\n el.style.boxSizing = 'border-box';\n return el;\n },\n getRangeInput: function(min,max,step) {\n var el = this.getFormInputField('range');\n el.setAttribute('min',min);\n el.setAttribute('max',max);\n el.setAttribute('step',step);\n return el;\n },\n getFormInputField: function(type) {\n var el = document.createElement('input');\n el.setAttribute('type',type);\n return el;\n },\n afterInputReady: function(input) {\n\n },\n getFormControl: function(label, input, description, infoText) {\n var el = document.createElement('div');\n el.classList.add('form-control');\n if(label) el.appendChild(label);\n if(input.type === 'checkbox' && label) {\n label.insertBefore(input,label.firstChild);\n if(infoText) label.appendChild(infoText);\n }\n else {\n if(infoText) label.appendChild(infoText);\n el.appendChild(input);\n }\n\n if(description) el.appendChild(description);\n return el;\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.style = el.style || {};\n el.style.paddingLeft = '10px';\n el.style.marginLeft = '10px';\n el.style.borderLeft = '1px solid #ccc';\n return el;\n },\n getTopIndentedPanel: function() {\n var el = document.createElement('div');\n el.style = el.style || {};\n el.style.paddingLeft = '10px';\n el.style.marginLeft = '10px';\n return el;\n },\n getChildEditorHolder: function() {\n return document.createElement('div');\n },\n getDescription: function(text) {\n var el = document.createElement('p');\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text);\n else el.textContent = this.cleanText(text);\n return el;\n },\n getCheckboxDescription: function(text) {\n return this.getDescription(text);\n },\n getFormInputDescription: function(text) {\n return this.getDescription(text);\n },\n getHeaderButtonHolder: function() {\n return this.getButtonHolder();\n },\n getButtonHolder: function() {\n return document.createElement('div');\n },\n getButton: function(text, icon, title) {\n var el = document.createElement('button');\n el.type = 'button';\n this.setButtonText(el,text,icon,title);\n return el;\n },\n setButtonText: function(button, text, icon, title) {\n // Clear previous contents. https://jsperf.com/innerhtml-vs-removechild/37\n while (button.firstChild) {\n button.removeChild(button.firstChild);\n }\n if(icon) {\n button.appendChild(icon);\n text = ' ' + text;\n }\n var spanEl = document.createElement('span');\n spanEl.appendChild(document.createTextNode(text));\n button.appendChild(spanEl);\n if(title) button.setAttribute('title',title);\n },\n getTable: function() {\n return document.createElement('table');\n },\n getTableRow: function() {\n return document.createElement('tr');\n },\n getTableHead: function() {\n return document.createElement('thead');\n },\n getTableBody: function() {\n return document.createElement('tbody');\n },\n getTableHeaderCell: function(text) {\n var el = document.createElement('th');\n el.textContent = text;\n return el;\n },\n getTableCell: function() {\n var el = document.createElement('td');\n return el;\n },\n getErrorMessage: function(text) {\n var el = document.createElement('p');\n el.style = el.style || {};\n el.style.color = 'red';\n el.appendChild(document.createTextNode(text));\n return el;\n },\n addInputError: function(input, text) {\n },\n removeInputError: function(input) {\n },\n addTableRowError: function(row) {\n },\n removeTableRowError: function(row) {\n },\n getTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.innerHTML = \"<div style='float: left; width: 130px;' class='tabs' id='\" + pName + \"'></div><div class='content' style='margin-left: 120px;' id='\" + pName + \"'></div><div style='clear:both;'></div>\";\n return el;\n },\n getTopTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.innerHTML = \"<div class='tabs' style='margin-left: 10px;' id='\" + pName + \"'></div><div style='clear:both;'></div><div class='content' id='\" + pName + \"'></div>\";\n return el;\n },\n applyStyles: function(el,styles) {\n for(var i in styles) {\n if(!styles.hasOwnProperty(i)) continue;\n el.style[i] = styles[i];\n }\n },\n closest: function(elem, selector) {\n while (elem && elem !== document) {\n if (elem[matchKey]) {\n if (elem[matchKey](selector)) {\n return elem;\n } else {\n elem = elem.parentNode;\n }\n }\n else {\n return false;\n }\n }\n return false;\n },\n insertBasicTopTab: function(tab, newTabs_holder ) {\n newTabs_holder.firstChild.insertBefore(tab,newTabs_holder.firstChild.firstChild);\n },\n getTab: function(span, tabId) {\n var el = document.createElement('div');\n el.appendChild(span);\n el.id = tabId;\n el.style = el.style || {};\n this.applyStyles(el,{\n border: '1px solid #ccc',\n borderWidth: '1px 0 1px 1px',\n textAlign: 'center',\n lineHeight: '30px',\n borderRadius: '5px',\n borderBottomRightRadius: 0,\n borderTopRightRadius: 0,\n fontWeight: 'bold',\n cursor: 'pointer'\n });\n return el;\n },\n getTopTab: function(span, tabId) {\n var el = document.createElement('div');\n el.id = tabId;\n el.appendChild(span);\n el.style = el.style || {};\n this.applyStyles(el,{\n float: 'left',\n border: '1px solid #ccc',\n borderWidth: '1px 1px 0px 1px',\n textAlign: 'center',\n lineHeight: '30px',\n borderRadius: '5px',\n paddingLeft:'5px',\n paddingRight:'5px',\n borderBottomRightRadius: 0,\n borderBottomLeftRadius: 0,\n fontWeight: 'bold',\n cursor: 'pointer'\n });\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTopTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n return this.getIndentedPanel();\n },\n getTopTabContent: function() {\n return this.getTopIndentedPanel();\n },\n markTabActive: function(row) {\n this.applyStyles(row.tab,{\n opacity: 1,\n background: 'white'\n });\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = '';\n }\n else {\n row.container.style.display = '';\n }\n },\n markTabInactive: function(row) {\n this.applyStyles(row.tab,{\n opacity:0.5,\n background: ''\n });\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = 'none';\n }\n else {\n row.container.style.display = 'none';\n }\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n addTopTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n getBlockLink: function() {\n var link = document.createElement('a');\n link.style.display = 'block';\n return link;\n },\n getBlockLinkHolder: function() {\n var el = document.createElement('div');\n return el;\n },\n getLinksHolder: function() {\n var el = document.createElement('div');\n return el;\n },\n createMediaLink: function(holder,link,media) {\n holder.appendChild(link);\n media.style.width='100%';\n holder.appendChild(media);\n },\n createImageLink: function(holder,link,image) {\n holder.appendChild(link);\n link.appendChild(image);\n },\n getFirstTab: function(holder){\n return holder.firstChild.firstChild;\n },\n getInputGroup: function(input, buttons) {\n return undefined;\n },\n cleanText: function(txt) {\n // Clean out HTML tags from txt\n var tmp = document.createElement('div');\n tmp.innerHTML = txt;\n return (tmp.textContent || tmp.innerText);\n }\n});\n","JSONEditor.defaults.themes.bootstrap2 = JSONEditor.AbstractTheme.extend({\n getRangeInput: function(min, max, step) {\n // TODO: use bootstrap slider\n return this._super(min, max, step);\n },\n getGridContainer: function() {\n var el = document.createElement('div');\n el.classList.add('container-fluid');\n return el;\n },\n getGridRow: function() {\n var el = document.createElement('div');\n el.classList.add('row-fluid');\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'inline-block';\n el.style.fontWeight = 'bold';\n return el;\n },\n setGridColumnSize: function(el,size) {\n el.classList.add('span'+size);\n },\n getSelectInput: function(options) {\n var input = this._super(options);\n input.style.width = 'auto';\n input.style.maxWidth = '98%';\n return input;\n },\n getFormInputField: function(type) {\n var el = this._super(type);\n el.style.width = '98%';\n return el;\n },\n afterInputReady: function(input) {\n if(input.controlgroup) return;\n input.controlgroup = this.closest(input,'.control-group');\n input.controls = this.closest(input,'.controls');\n if(this.closest(input,'.compact')) {\n input.controlgroup.className = input.controlgroup.className.replace(/control-group/g,'').replace(/[ ]{2,}/g,' ');\n input.controls.className = input.controlgroup.className.replace(/controls/g,'').replace(/[ ]{2,}/g,' ');\n input.style.marginBottom = 0;\n }\n if (this.queuedInputErrorText) {\n var text = this.queuedInputErrorText;\n delete this.queuedInputErrorText;\n this.addInputError(input,text);\n }\n\n // TODO: use bootstrap slider\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.classList.add('well','well-small');\n el.style.paddingBottom = 0;\n return el;\n },\n getInfoButton: function(text) {\n var icon = document.createElement('span');\n icon.classList.add('icon-info-sign', 'pull-right');\n icon.style.padding = \".25rem\";\n icon.style.position = \"relative\";\n icon.style.display = \"inline-block\";\n\n var tooltip = document.createElement('span');\n tooltip.style[\"font-family\"] = \"sans-serif\";\n tooltip.style.visibility = \"hidden\";\n tooltip.style[\"background-color\"] = \"rgba(50, 50, 50, .75)\";\n tooltip.style.margin = \"0 .25rem\";\n tooltip.style.color = \"#FAFAFA\";\n tooltip.style.padding = \".5rem 1rem\";\n tooltip.style[\"border-radius\"] = \".25rem\";\n tooltip.style.width = \"25rem\";\n tooltip.style.transform = \"translateX(-27rem) translateY(-.5rem)\";\n tooltip.style.position = \"absolute\";\n tooltip.innerText = text;\n icon.onmouseover = function() {\n tooltip.style.visibility = \"visible\";\n };\n icon.onmouseleave = function() {\n tooltip.style.visibility = \"hidden\";\n };\n\n icon.appendChild(tooltip);\n\n return icon;\n },\n getFormInputDescription: function(text) {\n var el = document.createElement('p');\n el.classList.add('help-inline');\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text);\n else el.textContent = this.cleanText(text);\n return el;\n },\n getFormControl: function(label, input, description, infoText) {\n var ret = document.createElement('div');\n ret.classList.add('control-group');\n\n var controls = document.createElement('div');\n controls.classList.add('controls');\n\n if(label && input.getAttribute('type') === 'checkbox') {\n ret.appendChild(controls);\n label.classList.add('checkbox');\n label.appendChild(input);\n controls.appendChild(label);\n if(infoText) controls.appendChild(infoText);\n controls.style.height = '30px';\n }\n else {\n if(label) {\n label.classList.add('control-label');\n ret.appendChild(label);\n }\n if(infoText) controls.appendChild(infoText);\n controls.appendChild(input);\n ret.appendChild(controls);\n }\n\n if(description) controls.appendChild(description);\n\n return ret;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.marginLeft = '10px';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.classList.add('btn-group');\n return el;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text, icon, title);\n el.classList.add('btn', 'btn-default');\n return el;\n },\n getTable: function() {\n var el = document.createElement('table');\n el.classList.add('table', 'table-bordered');\n el.style.width = 'auto';\n el.style.maxWidth = 'none';\n return el;\n },\n addInputError: function(input,text) {\n if(!input.controlgroup) {\n this.queuedInputErrorText = text;\n return;\n }\n if(!input.controlgroup || !input.controls) return;\n input.controlgroup.classList.add('error');\n if(!input.errmsg) {\n input.errmsg = document.createElement('p');\n input.errmsg.classList.add('help-block', 'errormsg');\n input.controls.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.controlgroup) {\n delete this.queuedInputErrorText;\n }\n if(!input.errmsg) return;\n input.errmsg.style.display = 'none';\n input.controlgroup.classList.remove('error');\n },\n getTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.classList.add('tabbable', 'tabs-left');\n el.innerHTML = \"<ul class='nav nav-tabs' id='\" + pName + \"'></ul><div class='tab-content well well-small' id='\" + pName + \"'></div>\";\n return el;\n },\n getTopTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.classList.add('tabbable', 'tabs-over');\n el.innerHTML = \"<ul class='nav nav-tabs' id='\" + pName + \"'></ul><div class='tab-content well well-small' id='\" + pName + \"'></div>\";\n return el;\n },\n getTab: function(text,tabId) {\n var el = document.createElement('li');\n el.classList.add('nav-item');\n var a = document.createElement('a');\n a.setAttribute('href','#' + tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTopTab: function(text,tabId) {\n var el = document.createElement('li');\n el.classList.add('nav-item');\n var a = document.createElement('a');\n a.setAttribute('href','#' + tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTopTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-pane');\n return el;\n },\n getTopTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-pane');\n return el;\n },\n markTabActive: function(row) {\n row.tab.classList.add('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.add('active');\n }\n else {\n row.container.classList.add('active');\n }\n },\n markTabInactive: function(row) {\n row.tab.classList.remove('active');\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.remove('active');\n }\n else {\n row.container.classList.remove('active');\n }\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n addTopTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n getProgressBar: function() {\n var container = document.createElement('div');\n container.classList.add('progress');\n\n var bar = document.createElement('div');\n bar.classList.add('bar');\n bar.style.width = '0%';\n container.appendChild(bar);\n\n return container;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n\n progressBar.firstChild.style.width = progress + \"%\";\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n\n progressBar.classList.add('progress', 'progress-striped', 'active');\n progressBar.firstChild.style.width = '100%';\n },\n getInputGroup: function(input, buttons) {\n if (!input) return;\n\n var inputGroupContainer = document.createElement('div');\n inputGroupContainer.classList.add('input-append');\n inputGroupContainer.appendChild(input);\n\n for(var i=0;i<buttons.length;i++) {\n buttons[i].classList.add('btn');\n inputGroupContainer.appendChild(buttons[i]);\n }\n\n return inputGroupContainer;\n }\n});\n","JSONEditor.defaults.themes.bootstrap3 = JSONEditor.AbstractTheme.extend({\n getSelectInput: function(options) {\n var el = this._super(options);\n el.classList.add('form-control');\n //el.style.width = 'auto';\n return el;\n },\n setGridColumnSize: function(el,size, offset) {\n el.classList.add('col-md-'+size);\n if (offset) {\n el.classList.add('col-md-offset-'+offset);\n }\n },\n afterInputReady: function(input) {\n if(input.controlgroup) return;\n input.controlgroup = this.closest(input,'.form-group');\n if(this.closest(input,'.compact')) {\n input.controlgroup.style.marginBottom = 0;\n }\n if (this.queuedInputErrorText) {\n var text = this.queuedInputErrorText;\n delete this.queuedInputErrorText;\n this.addInputError(input,text);\n }\n\n // TODO: use bootstrap slider\n },\n getTextareaInput: function() {\n var el = document.createElement('textarea');\n el.classList.add('form-control');\n return el;\n },\n getRangeInput: function(min, max, step) {\n // TODO: use better slider\n return this._super(min, max, step);\n },\n getFormInputField: function(type) {\n var el = this._super(type);\n if(type !== 'checkbox') {\n el.classList.add('form-control');\n }\n return el;\n },\n getFormControl: function(label, input, description, infoText) {\n var group = document.createElement('div');\n\n if(label && input.type === 'checkbox') {\n group.classList.add('checkbox');\n label.appendChild(input);\n label.style.fontSize = '14px';\n group.style.marginTop = '0';\n if(infoText) group.appendChild(infoText);\n group.appendChild(label);\n input.style.position = 'relative';\n input.style.cssFloat = 'left';\n }\n else {\n group.classList.add('form-group');\n if(label) {\n label.classList.add('control-label');\n group.appendChild(label);\n }\n\n if(infoText) group.appendChild(infoText);\n group.appendChild(input);\n }\n\n if(description) group.appendChild(description);\n\n return group;\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.classList.add('well', 'well-sm');\n el.style.paddingBottom = 0;\n return el;\n },\n getInfoButton: function(text) {\n var icon = document.createElement('span');\n icon.classList.add('glyphicon', 'glyphicon-info-sign', 'pull-right');\n icon.style.padding = \".25rem\";\n icon.style.position = \"relative\";\n icon.style.display = \"inline-block\";\n\n var tooltip = document.createElement('span');\n tooltip.style[\"font-family\"] = \"sans-serif\";\n tooltip.style.visibility = \"hidden\";\n tooltip.style[\"background-color\"] = \"rgba(50, 50, 50, .75)\";\n tooltip.style.margin = \"0 .25rem\";\n tooltip.style.color = \"#FAFAFA\";\n tooltip.style.padding = \".5rem 1rem\";\n tooltip.style[\"border-radius\"] = \".25rem\";\n tooltip.style.width = \"25rem\";\n tooltip.style.transform = \"translateX(-27rem) translateY(-.5rem)\";\n tooltip.style.position = \"absolute\";\n tooltip.innerText = text;\n icon.onmouseover = function() {\n tooltip.style.visibility = \"visible\";\n };\n icon.onmouseleave = function() {\n tooltip.style.visibility = \"hidden\";\n };\n\n icon.appendChild(tooltip);\n\n return icon;\n },\n getFormInputDescription: function(text) {\n var el = document.createElement('p');\n el.classList.add('help-block');\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text);\n else el.textContent = this.cleanText(text);\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.marginLeft = '10px';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.classList.add('btn-group');\n return el;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text, icon, title);\n el.classList.add('btn', 'btn-default');\n return el;\n },\n getTable: function() {\n var el = document.createElement('table');\n el.classList.add('table', 'table-bordered');\n el.style.width = 'auto';\n el.style.maxWidth = 'none';\n return el;\n },\n\n addInputError: function(input,text) {\n if(!input.controlgroup) {\n this.queuedInputErrorText = text;\n return;\n }\n input.controlgroup.classList.add('has-error');\n if(!input.errmsg) {\n input.errmsg = document.createElement('p');\n input.errmsg.classList.add('help-block', 'errormsg');\n input.controlgroup.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.controlgroup) {\n delete this.queuedInputErrorText;\n }\n if(!input.errmsg) return;\n input.errmsg.style.display = 'none';\n input.controlgroup.classList.remove('has-error');\n },\n getTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.innerHTML = \"<ul class='col-md-2 nav nav-pills nav-stacked' id='\" + pName + \"' role='tablist'></ul>\" +\n \"<div class='col-md-10 tab-content well well-small' id='\" + pName + \"'></div>\";\n return el;\n },\n getTopTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.innerHTML = \"<ul class='nav nav-tabs' id='\" + pName + \"' role='tablist'></ul>\" +\n \"<div class='tab-content well well-small' id='\" + pName + \"'></div>\";\n return el;\n },\n getTab: function(text, tabId) {\n var li = document.createElement('li');\n li.setAttribute('role', 'presentation');\n var a = document.createElement('a');\n a.setAttribute('href','#'+tabId);\n a.appendChild(text);\n a.setAttribute('aria-controls', tabId);\n a.setAttribute('role', 'tab');\n a.setAttribute('data-toggle', 'tab');\n li.appendChild(a);\n return li;\n },\n getTopTab: function(text, tabId) {\n var li = document.createElement('li');\n li.setAttribute('role', 'presentation');\n var a = document.createElement('a');\n a.setAttribute('href','#'+tabId);\n a.appendChild(text);\n a.setAttribute('aria-controls', tabId);\n a.setAttribute('role', 'tab');\n a.setAttribute('data-toggle', 'tab');\n li.appendChild(a);\n return li;\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-pane');\n el.setAttribute('role', 'tabpanel');\n return el;\n },\n getTopTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-pane');\n el.setAttribute('role', 'tabpanel');\n return el;\n },\n markTabActive: function(row) {\n row.tab.classList.add('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.add('active');\n }\n else {\n row.container.classList.add('active');\n }\n },\n markTabInactive: function(row) {\n row.tab.classList.remove('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.remove('active');\n }\n else {\n row.container.classList.remove('active');\n }\n },\n getProgressBar: function() {\n var min = 0, max = 100, start = 0;\n\n var container = document.createElement('div');\n container.classList.add('progress');\n\n var bar = document.createElement('div');\n bar.classList.add('progress-bar');\n bar.setAttribute('role', 'progressbar');\n bar.setAttribute('aria-valuenow', start);\n bar.setAttribute('aria-valuemin', min);\n bar.setAttribute('aria-valuenax', max);\n bar.innerHTML = start + \"%\";\n container.appendChild(bar);\n\n return container;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n\n var bar = progressBar.firstChild;\n var percentage = progress + \"%\";\n bar.setAttribute('aria-valuenow', progress);\n bar.style.width = percentage;\n bar.innerHTML = percentage;\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n\n var bar = progressBar.firstChild;\n progressBar.classList.add('progress', 'progress-striped', 'active');\n bar.removeAttribute('aria-valuenow');\n bar.style.width = '100%';\n bar.innerHTML = '';\n },\n getInputGroup: function(input, buttons) {\n if (!input) return;\n\n var inputGroupContainer = document.createElement('div');\n inputGroupContainer.classList.add('input-group');\n inputGroupContainer.appendChild(input);\n\n var inputGroup = document.createElement('div');\n inputGroup.classList.add('input-group-btn');\n inputGroupContainer.appendChild(inputGroup);\n\n for(var i=0;i<buttons.length;i++) {\n inputGroup.appendChild(buttons[i]);\n }\n\n return inputGroupContainer;\n }\n});\n","JSONEditor.defaults.themes.bootstrap4 = JSONEditor.AbstractTheme.extend({\n getSelectInput: function(options) {\n var el = this._super(options);\n el.classList.add(\"form-control\");\n //el.style.width = 'auto';\n return el;\n },\n setGridColumnSize: function(el,size, offset) {\n el.classList.add('col-md-'+size);\n if (offset) {\n el.classList.add('offset-md-'+offset);\n }\n },\n afterInputReady: function(input) {\n if (input.controlgroup) return;\n input.controlgroup = this.closest(input, \".form-group\");\n if (this.closest(input, \".compact\")) {\n input.controlgroup.style.marginBottom = 0;\n }\n\n // TODO: use bootstrap slider\n },\n getTextareaInput: function() {\n var el = document.createElement(\"textarea\");\n el.classList.add(\"form-control\");\n return el;\n },\n getRangeInput: function(min, max, step) {\n // TODO: use better slider\n return this._super(min, max, step);\n },\n getFormInputField: function(type) {\n var el = this._super(type);\n if (type !== \"checkbox\") {\n el.classList.add(\"form-control\");\n }\n return el;\n },\n getFormControl: function(label, input, description) {\n var group = document.createElement(\"div\");\n\n if (label && input.type === \"checkbox\") {\n group.classList.add(\"checkbox\");\n label.appendChild(input);\n label.style.fontSize = \"14px\";\n group.style.marginTop = \"0\";\n group.appendChild(label);\n input.style.position = \"relative\";\n input.style.cssFloat = \"left\";\n } else {\n group.classList.add(\"form-group\");\n if (label) {\n label.classList.add(\"form-control-label\");\n group.appendChild(label);\n }\n group.appendChild(input);\n }\n\n if (description) group.appendChild(description);\n\n return group;\n },\n getIndentedPanel: function() {\n var el = document.createElement(\"div\");\n el.classList.add('card', 'card-body', 'bg-light');\n return el;\n },\n getFormInputDescription: function(text) {\n var el = document.createElement(\"p\");\n el.classList.add('form-text');\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text);\n else el.textContent = this.cleanText(text);\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.marginLeft = \"10px\";\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement(\"div\");\n el.classList.add(\"btn-group\");\n return el;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text, icon, title);\n el.classList.add(\"btn\", \"btn-secondary\");\n return el;\n },\n getTable: function() {\n var el = document.createElement(\"table\");\n el.classList.add(\"table-bordered\", \"table-sm\");\n el.style.width = \"auto\";\n el.style.maxWidth = \"none\";\n return el;\n },\n\n addInputError: function(input, text) {\n if (!input.controlgroup) return;\n input.controlgroup.classList.add('has-danger');\n input.classList.add('is-invalid');\n if (!input.errmsg) {\n input.errmsg = document.createElement(\"p\");\n input.errmsg.classList.add(\"form-text\", \"invalid-feedback\");\n input.controlgroup.appendChild(input.errmsg);\n } else {\n input.errmsg.style.display = \"\";\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if (!input.errmsg) return;\n input.errmsg.style.display = \"none\";\n input.classList.remove('is-invalid');\n input.controlgroup.classList.remove('has-danger');\n },\n getTabHolder: function(propertyName) {\n var el = document.createElement(\"div\");\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n el.innerHTML = \"<div class='col-md-2' id='\" + pName + \"'><ul class='nav flex-column nav-pills'></ul></div><div class='tab-content col-md-10' id='\" + pName + \"'></div>\";\n el.classList.add(\"row\");\n return el;\n },\n addTab: function(holder, tab) {\n holder.children[0].children[0].appendChild(tab);\n },\n getTopTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.innerHTML = \"<ul class='nav nav-tabs' id='\" + pName + \"'></ul><div class='card-body tab-content' id='\" + pName + \"'></div>\";\n return el;\n },\n getTab: function(text,tabId) {\n var liel = document.createElement('li');\n liel.classList.add('nav-item');\n var ael = document.createElement(\"a\");\n ael.classList.add(\"nav-link\");\n ael.setAttribute(\"style\",'padding:10px;');\n ael.setAttribute(\"href\", \"#\" + tabId);\n ael.setAttribute('data-toggle', 'tab');\n ael.appendChild(text);\n liel.appendChild(ael);\n return liel;\n },\n getTopTab: function(text, tabId) {\n var el = document.createElement('li');\n el.classList.add('nav-item');\n var a = document.createElement('a');\n a.classList.add('nav-link');\n a.setAttribute('href','#'+tabId);\n a.setAttribute('data-toggle', 'tab');\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-pane');\n el.setAttribute('role', 'tabpanel');\n return el;\n },\n getTopTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-pane');\n el.setAttribute('role', 'tabpanel');\n return el;\n },\n markTabActive: function(row) {\n row.tab.firstChild.classList.add('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.add('active');\n }\n else {\n row.container.classList.add('active');\n }\n },\n markTabInactive: function(row) {\n row.tab.firstChild.classList.remove('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.remove('active');\n }\n else {\n row.container.classList.remove('active');\n }\n },\n getProgressBar: function() {\n var min = 0,\n max = 100,\n start = 0;\n\n var container = document.createElement(\"div\");\n container.classList.add(\"progress\");\n\n var bar = document.createElement(\"div\");\n bar.classList.add(\"progress-bar\");\n bar.setAttribute(\"role\", \"progressbar\");\n bar.setAttribute(\"aria-valuenow\", start);\n bar.setAttribute(\"aria-valuemin\", min);\n bar.setAttribute(\"aria-valuenax\", max);\n bar.innerHTML = start + \"%\";\n container.appendChild(bar);\n\n return container;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n\n var bar = progressBar.firstChild;\n var percentage = progress + \"%\";\n bar.setAttribute(\"aria-valuenow\", progress);\n bar.style.width = percentage;\n bar.innerHTML = percentage;\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n\n var bar = progressBar.firstChild;\n progressBar.classList.add('progress', 'progress-striped', 'active');\n bar.removeAttribute(\"aria-valuenow\");\n bar.style.width = \"100%\";\n bar.innerHTML = \"\";\n },\n getInputGroup: function(input, buttons) {\n if (!input) return;\n\n var inputGroupContainer = document.createElement('div');\n inputGroupContainer.classList.add('input-group');\n inputGroupContainer.appendChild(input);\n\n var inputGroup = document.createElement('div');\n inputGroup.classList.add('input-group-prepend');\n inputGroupContainer.appendChild(inputGroup);\n\n for(var i=0;i<buttons.length;i++) {\n inputGroup.appendChild(buttons[i]);\n }\n\n return inputGroupContainer;\n }\n});\n","// Base Foundation theme\nJSONEditor.defaults.themes.foundation = JSONEditor.AbstractTheme.extend({\n getChildEditorHolder: function() {\n var el = document.createElement('div');\n el.style.marginBottom = '15px';\n return el;\n },\n getSelectInput: function(options) {\n var el = this._super(options);\n el.style.minWidth = 'none';\n el.style.padding = '5px';\n el.style.marginTop = '3px';\n return el;\n },\n getSwitcher: function(options) {\n var el = this._super(options);\n el.style.paddingRight = '8px';\n return el;\n },\n afterInputReady: function(input) {\n if(input.group) return;\n if(this.closest(input,'.compact')) {\n input.style.marginBottom = 0;\n }\n input.group = this.closest(input,'.form-control');\n if (this.queuedInputErrorText) {\n var text = this.queuedInputErrorText;\n delete this.queuedInputErrorText;\n this.addInputError(input,text);\n }\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'inline-block';\n return el;\n },\n getFormInputField: function(type) {\n var el = this._super(type);\n el.style.width = '100%';\n el.style.marginBottom = type==='checkbox'? '0' : '12px';\n return el;\n },\n getFormInputDescription: function(text) {\n var el = document.createElement('p');\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text);\n else el.textContent = this.cleanText(text);\n el.style.marginTop = '-10px';\n el.style.fontStyle = 'italic';\n return el;\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.classList.add('panel');\n el.style.paddingBottom = 0;\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.display = 'inline-block';\n el.style.marginLeft = '10px';\n el.style.verticalAlign = 'middle';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.classList.add('button-group');\n return el;\n },\n getButton: function(text, icon, title) {\n var el = this._super(text, icon, title);\n el.classList.add('small', 'button');\n return el;\n },\n addInputError: function(input,text) {\n if(!input.group) {\n this.queuedInputErrorText = text;\n return;\n }\n input.group.classList.add('error');\n\n if(!input.errmsg) {\n input.insertAdjacentHTML('afterend','<small class=\"error\"></small>');\n input.errmsg = input.parentNode.getElementsByClassName('error')[0];\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.group) {\n delete this.queuedInputErrorText;\n }\n if(!input.errmsg) return;\n input.group.classList.remove('error');\n input.errmsg.style.display = 'none';\n },\n getProgressBar: function() {\n var progressBar = document.createElement('div');\n progressBar.classList.add('progress');\n\n var meter = document.createElement('span');\n meter.classList.add('meter');\n meter.style.width = '0%';\n progressBar.appendChild(meter);\n return progressBar;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n progressBar.firstChild.style.width = progress + '%';\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n progressBar.firstChild.style.width = '100%';\n },\n getInputGroup: function(input, buttons) {\n if (!input) return undefined;\n\n var inputGroupContainer = document.createElement('div');\n inputGroupContainer.classList.add('input-group');\n input.classList.add('input-group-field');\n inputGroupContainer.appendChild(input);\n\n for(var i=0;i<buttons.length;i++) {\n var inputGroup = document.createElement('div');\n inputGroup.classList.add('input-group-button');\n inputGroup.style.verticalAlign = 'top';\n buttons[i].classList.remove('small');\n inputGroup.appendChild(buttons[i]);\n inputGroupContainer.appendChild(inputGroup);\n }\n\n return inputGroupContainer;\n }\n});\n\n// Foundation 3 Specific Theme\nJSONEditor.defaults.themes.foundation3 = JSONEditor.defaults.themes.foundation.extend({\n getHeaderButtonHolder: function() {\n var el = this._super();\n el.style.fontSize = '.6em';\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.fontWeight = 'bold';\n return el;\n },\n getTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.classList.add('row');\n el.innerHTML = '<dl class=\"tabs vertical two columns\" id=\"' + pName + '\"></dl><div class=\"tabs-content ten columns\" id=\"' + pName + '\"></div>';\n return el;\n },\n getTopTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.classList.add('row');\n el.innerHTML = '<dl class=\"tabs horizontal\" style=\"padding-left: 10px; margin-left: 10px;\" id=\"' + pName + '\"></dl><div class=\"tabs-content twelve columns\" style=\"padding: 10px; margin-left: 10px;\" id=\"' + pName + '\"></div>';\n return el;\n },\n setGridColumnSize: function(el,size, offset) {\n var sizes = ['zero','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve'];\n el.classList.add('columns', sizes[size]);\n if (offset && offset < 11) {\n el.classList.add('offset-by-' + sizes[offset]);\n }\n },\n getTab: function(text, tabId) {\n var el = document.createElement('dd');\n var a = document.createElement('a');\n a.setAttribute('href','#'+tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTopTab: function(text, tabId) {\n var el = document.createElement('dd');\n var a = document.createElement('a');\n a.setAttribute('href','#'+tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTopTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('content', 'active');\n el.style.paddingLeft = '5px';\n return el;\n },\n getTopTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('content', 'active');\n el.style.paddingLeft = '5px';\n return el;\n },\n markTabActive: function(row) {\n row.tab.classList.add('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = '';\n }\n else {\n row.container.style.display = '';\n }\n },\n markTabInactive: function(row) {\n row.tab.classList.remove('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = 'none';\n }\n else {\n row.container.style.display = 'none';\n }\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n addTopTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n }\n});\n\n// Foundation 4 Specific Theme\nJSONEditor.defaults.themes.foundation4 = JSONEditor.defaults.themes.foundation.extend({\n getHeaderButtonHolder: function() {\n var el = this._super();\n el.style.fontSize = '.6em';\n return el;\n },\n setGridColumnSize: function(el, size, offset) {\n el.classList.add('columns', 'large-' + size);\n if (offset) {\n el.classList.add('large-offset-' + offset);\n }\n\n },\n getFormInputDescription: function(text) {\n var el = this._super(text);\n el.style.fontSize = '.8rem';\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.fontWeight = 'bold';\n return el;\n }\n});\n\n// Foundation 5 Specific Theme\nJSONEditor.defaults.themes.foundation5 = JSONEditor.defaults.themes.foundation.extend({\n getFormInputDescription: function(text) {\n var el = this._super(text);\n el.style.fontSize = '.8rem';\n return el;\n },\n setGridColumnSize: function(el,size, offset) {\n el.classList.add('columns', 'medium-'+size);\n if (offset) {\n el.classList.add('medium-offset-'+offset);\n }\n },\n getButton: function(text, icon, title) {\n var el = this._super(text,icon,title);\n el.className = el.className.replace(/\\s*small/g,'') + ' tiny';\n return el;\n },\n getTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.innerHTML = '<dl class=\"tabs vertical\" id=\"' + pName + '\"></dl><div class=\"tabs-content vertical\" id=\"' + pName + '\"></div>';\n return el;\n },\n getTopTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.classList.add('row');\n el.innerHTML = '<dl class=\"tabs horizontal\" style=\"padding-left: 10px;\" id=\"' + pName + '\"></dl><div class=\"tabs-content horizontal\" style=\"padding: 10px;\" id=\"' + pName + '\"></div>';\n return el;\n },\n getTab: function(text, tabId) {\n var el = document.createElement('dd');\n var a = document.createElement('a');\n a.setAttribute('href','#'+tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTopTab: function(text, tabId) {\n var el = document.createElement('dd');\n var a = document.createElement('a');\n a.setAttribute('href','#'+tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTopTabContentHolder: function(tab_holder) {\n return tab_holder.children[1];\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-content', 'active');\n el.style.paddingLeft = '5px';\n return el;\n },\n getTopTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tab-content', 'active');\n el.style.paddingLeft = '5px';\n return el;\n },\n markTabActive: function(row) {\n row.tab.classList.add('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = '';\n }\n else {\n row.container.style.display = '';\n }\n },\n markTabInactive: function(row) {\n row.tab.classList.remove('active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = 'none';\n }\n else {\n row.container.style.display = 'none';\n }\n },\n addTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n },\n addTopTab: function(holder, tab) {\n holder.children[0].appendChild(tab);\n }\n\n});\n\nJSONEditor.defaults.themes.foundation6 = JSONEditor.defaults.themes.foundation5.extend({\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.classList.add('callout', 'secondary');\n el.style = 'padding-left: 10px; margin-left: 10px;';\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.classList.add('button-group', 'tiny');\n el.style.marginBottom = 0;\n return el;\n },\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'block';\n return el;\n },\n getFormControl: function(label, input, description, infoText) {\n var el = document.createElement('div');\n el.classList.add('form-control');\n if(label) el.appendChild(label);\n if(input.type === 'checkbox') {\n label.insertBefore(input,label.firstChild);\n }\n else if (label) {\n if(infoText) label.appendChild(infoText);\n label.appendChild(input);\n } else {\n if(infoText) el.appendChild(infoText);\n el.appendChild(input);\n }\n\n if(description) label.appendChild(description);\n return el;\n },\n addInputError: function(input,text) {\n if(!input.group) return;\n input.group.classList.add('error');\n\n if(!input.errmsg) {\n var errorEl = document.createElement('span');\n errorEl.classList.add('form-error', 'is-visible');\n input.group.getElementsByTagName('label')[0].appendChild(errorEl);\n\n input.classList.add('is-invalid-input');\n\n input.errmsg = errorEl;\n }\n else {\n input.errmsg.style.display = '';\n input.className = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.errmsg) return;\n input.classList.remove('is-invalid-input');\n if(input.errmsg.parentNode) {\n input.errmsg.parentNode.removeChild(input.errmsg);\n }\n },\n getTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.classList.add('grid-x');\n el.innerHTML = '<div class=\"medium-2 cell\" style=\"float: left;\"><ul class=\"vertical tabs\" data-tabs id=\"' + pName + '\"></ul></div><div class=\"medium-10 cell\" style=\"float: left;\"><div class=\"tabs-content\" data-tabs-content=\"'+pName+'\"></div></div>';\n return el;\n },\n getTopTabHolder: function(propertyName) {\n var pName = (typeof propertyName === 'undefined')? \"\" : propertyName;\n var el = document.createElement('div');\n el.classList.add('grid-y');\n el.innerHTML = '<div className=\"cell\"><ul class=\"tabs\" data-tabs id=\"' + pName + '\"></ul><div class=\"tabs-content\" data-tabs-content=\"' + pName + '\"></div></div>';\n return el;\n\n\n },\n insertBasicTopTab: function(tab, newTabs_holder ) {\n newTabs_holder.firstChild.firstChild.insertBefore(tab,newTabs_holder.firstChild.firstChild.firstChild);\n },\n getTab: function(text, tabId) {\n var el = document.createElement('li');\n el.classList.add('tabs-title');\n var a = document.createElement('a');\n a.setAttribute('href','#'+tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTopTab: function(text, tabId) {\n var el = document.createElement('li');\n el.classList.add('tabs-title');\n var a = document.createElement('a');\n a.setAttribute('href','#' + tabId);\n a.appendChild(text);\n el.appendChild(a);\n return el;\n },\n getTabContentHolder: function(tab_holder) {\n return tab_holder.children[1].firstChild;\n },\n getTopTabContentHolder: function(tab_holder) {\n return tab_holder.firstChild.children[1];\n },\n getTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tabs-panel');\n el.style.paddingLeft = '5px';\n return el;\n },\n getTopTabContent: function() {\n var el = document.createElement('div');\n el.classList.add('tabs-panel');\n el.style.paddingLeft = '5px';\n return el;\n },\n markTabActive: function(row) {\n row.tab.classList.add('is-active');\n row.tab.firstChild.setAttribute('aria-selected', 'true');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.add('is-active');\n row.rowPane.setAttribute('aria-selected', 'true');\n }\n else {\n row.container.classList.add('is-active');\n row.container.setAttribute('aria-selected', 'true');\n }\n },\n markTabInactive: function(row) {\n row.tab.classList.remove('is-active');\n row.tab.firstChild.removeAttribute('aria-selected');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.classList.remove('is-active');\n row.rowPane.removeAttribute('aria-selected');\n }\n else {\n row.container.classList.remove('is-active');\n row.container.removeAttribute('aria-selected');\n }\n },\n addTab: function(holder, tab) {\n holder.children[0].firstChild.appendChild(tab);\n },\n addTopTab: function(holder, tab) {\n holder.firstChild.children[0].appendChild(tab);\n },\n getFirstTab: function(holder){\n return holder.firstChild.firstChild.firstChild;\n }\n});\n","JSONEditor.defaults.themes.html = JSONEditor.AbstractTheme.extend({\n getFormInputLabel: function(text) {\n var el = this._super(text);\n el.style.display = 'block';\n el.style.marginBottom = '3px';\n el.style.fontWeight = 'bold';\n return el;\n },\n getFormInputDescription: function(text) {\n var el = this._super(text);\n el.style.fontSize = '.8em';\n el.style.margin = 0;\n el.style.display = 'inline-block';\n el.style.fontStyle = 'italic';\n return el;\n },\n getIndentedPanel: function() {\n var el = this._super();\n el.style.border = '1px solid #ddd';\n el.style.padding = '5px';\n el.style.margin = '10px';\n el.style.borderRadius = '3px';\n return el;\n },\n getTopIndentedPanel: function() {\n return this.getIndentedPanel();\n },\n getChildEditorHolder: function() {\n var el = this._super();\n el.style.marginBottom = '8px';\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.display = 'inline-block';\n el.style.marginLeft = '10px';\n el.style.fontSize = '.8em';\n el.style.verticalAlign = 'middle';\n return el;\n },\n getTable: function() {\n var el = this._super();\n el.style.borderBottom = '1px solid #ccc';\n el.style.marginBottom = '5px';\n return el;\n },\n addInputError: function(input, text) {\n input.style.borderColor = 'red';\n \n if(!input.errmsg) {\n var group = this.closest(input,'.form-control');\n input.errmsg = document.createElement('div');\n input.errmsg.setAttribute('class','errmsg');\n input.errmsg.style = input.errmsg.style || {};\n input.errmsg.style.color = 'red';\n group.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = 'block';\n }\n \n input.errmsg.innerHTML = '';\n input.errmsg.appendChild(document.createTextNode(text));\n },\n removeInputError: function(input) {\n input.style.borderColor = '';\n if(input.errmsg) input.errmsg.style.display = 'none';\n },\n getProgressBar: function() {\n var max = 100, start = 0;\n\n var progressBar = document.createElement('progress');\n progressBar.setAttribute('max', max);\n progressBar.setAttribute('value', start);\n return progressBar;\n },\n updateProgressBar: function(progressBar, progress) {\n if (!progressBar) return;\n progressBar.setAttribute('value', progress);\n },\n updateProgressBarUnknown: function(progressBar) {\n if (!progressBar) return;\n progressBar.removeAttribute('value');\n }\n});\n","JSONEditor.defaults.themes.jqueryui = JSONEditor.AbstractTheme.extend({\n getTable: function() {\n var el = this._super();\n el.setAttribute('cellpadding',5);\n el.setAttribute('cellspacing',0);\n return el;\n },\n getTableHeaderCell: function(text) {\n var el = this._super(text);\n el.classList.add('ui-state-active');\n el.style.fontWeight = 'bold';\n return el;\n },\n getTableCell: function() {\n var el = this._super();\n el.classList.add('ui-widget-content');\n return el;\n },\n getHeaderButtonHolder: function() {\n var el = this.getButtonHolder();\n el.style.marginLeft = '10px';\n el.style.fontSize = '.6em';\n el.style.display = 'inline-block';\n return el;\n },\n getFormInputDescription: function(text) {\n var el = this.getDescription(text);\n el.style.marginLeft = '10px';\n el.style.display = 'inline-block';\n return el;\n },\n getFormControl: function(label, input, description, infoText) {\n var el = this._super(label,input,description, infoText);\n if(input.type === 'checkbox') {\n el.style.lineHeight = '25px';\n\n el.style.padding = '3px 0';\n }\n else {\n el.style.padding = '4px 0 8px 0';\n }\n return el;\n },\n getDescription: function(text) {\n var el = document.createElement('span');\n el.style.fontSize = '.8em';\n el.style.fontStyle = 'italic';\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text);\n else el.textContent = this.cleanText(text);\n return el;\n },\n getButtonHolder: function() {\n var el = document.createElement('div');\n el.classList.add('ui-buttonset');\n el.style.fontSize = '.7em';\n return el;\n },\n getFormInputLabel: function(text) {\n var el = document.createElement('label');\n el.style.fontWeight = 'bold';\n el.style.display = 'block';\n el.textContent = text;\n return el;\n },\n getButton: function(text, icon, title) {\n var button = document.createElement(\"button\");\n button.classList.add('ui-button', 'ui-widget', 'ui-state-default', 'ui-corner-all');\n\n // Icon only\n if(icon && !text) {\n button.classList.add('ui-button-icon-only');\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary');\n button.appendChild(icon);\n }\n // Icon and Text\n else if(icon) {\n button.classList.add('ui-button-text-icon-primary');\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary');\n button.appendChild(icon);\n }\n // Text only\n else {\n button.classList.add('ui-button-text-only');\n }\n\n var el = document.createElement('span');\n el.classList.add('ui-button-text');\n el.textContent = text||title||\".\";\n button.appendChild(el);\n\n button.setAttribute('title',title);\n\n return button;\n },\n setButtonText: function(button,text, icon, title) {\n button.innerHTML = '';\n button.classList.add('ui-button', 'ui-widget', 'ui-state-default', 'ui-corner-all');\n\n // Icon only\n if(icon && !text) {\n button.classList.add('ui-button-icon-only');\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary');\n button.appendChild(icon);\n }\n // Icon and Text\n else if(icon) {\n button.classList.add('ui-button-text-icon-primary');\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary');\n button.appendChild(icon);\n }\n // Text only\n else {\n button.classList.add('ui-button-text-only');\n }\n\n var el = document.createElement('span');\n el.classList.add('ui-button-text');\n el.textContent = text||title||\".\";\n button.appendChild(el);\n\n button.setAttribute('title',title);\n },\n getIndentedPanel: function() {\n var el = document.createElement('div');\n el.classList.add('ui-widget-content', 'ui-corner-all');\n el.style.padding = '1em 1.4em';\n el.style.marginBottom = '20px';\n return el;\n },\n afterInputReady: function(input) {\n if(input.controls) return;\n input.controls = this.closest(input,'.form-control');\n if (this.queuedInputErrorText) {\n var text = this.queuedInputErrorText;\n delete this.queuedInputErrorText;\n this.addInputError(input,text);\n }\n },\n addInputError: function(input,text) {\n if(!input.controls) {\n this.queuedInputErrorText = text;\n return;\n }\n if(!input.errmsg) {\n input.errmsg = document.createElement('div');\n input.errmsg.classList.add('ui-state-error');\n input.controls.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = '';\n }\n\n input.errmsg.textContent = text;\n },\n removeInputError: function(input) {\n if(!input.controls) {\n delete this.queuedInputErrorText;\n }\n if(!input.errmsg) return;\n input.errmsg.style.display = 'none';\n },\n markTabActive: function(row) {\n row.tab.classList.remove('ui-widget-header');\n row.tab.classList.add('ui-state-active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = '';\n }\n else {\n row.container.style.display = '';\n }\n },\n markTabInactive: function(row) {\n row.tab.classList.add('ui-widget-header');\n row.tab.classList.remove('ui-state-active');\n\n if(typeof row.rowPane !== 'undefined'){\n row.rowPane.style.display = 'none';\n }\n else {\n row.container.style.display = 'none';\n }\n }\n});\n","JSONEditor.defaults.themes.barebones = JSONEditor.AbstractTheme.extend({\n getFormInputLabel: function (text) {\n var el = this._super(text);\n return el;\n },\n getFormInputDescription: function (text) {\n var el = this._super(text);\n return el;\n },\n getIndentedPanel: function () {\n var el = this._super();\n return el;\n },\n getChildEditorHolder: function () {\n var el = this._super();\n return el;\n },\n getHeaderButtonHolder: function () {\n var el = this.getButtonHolder();\n return el;\n },\n getTable: function () {\n var el = this._super();\n return el;\n },\n addInputError: function (input, text) {\n if (!input.errmsg) {\n var group = this.closest(input, '.form-control');\n input.errmsg = document.createElement('div');\n input.errmsg.setAttribute('class', 'errmsg');\n group.appendChild(input.errmsg);\n }\n else {\n input.errmsg.style.display = 'block';\n }\n\n input.errmsg.innerHTML = '';\n input.errmsg.appendChild(document.createTextNode(text));\n },\n removeInputError: function (input) {\n input.style.borderColor = '';\n if (input.errmsg) input.errmsg.style.display = 'none';\n },\n getProgressBar: function () {\n var max = 100, start = 0;\n\n var progressBar = document.createElement('progress');\n progressBar.setAttribute('max', max);\n progressBar.setAttribute('value', start);\n return progressBar;\n },\n updateProgressBar: function (progressBar, progress) {\n if (!progressBar) return;\n progressBar.setAttribute('value', progress);\n },\n updateProgressBarUnknown: function (progressBar) {\n if (!progressBar) return;\n progressBar.removeAttribute('value');\n }\n});\n","JSONEditor.defaults.themes.materialize = JSONEditor.AbstractTheme.extend(\n {\n\n /**\n * Applies grid size to specified element.\n *\n * @param {HTMLElement} el The DOM element to have specified size applied.\n * @param {int} size The grid column size.\n * @see http://materializecss.com/grid.html\n */\n setGridColumnSize: function(el, size) {\n el.classList.add('col');\n el.classList.add('s' + size);\n },\n\n /**\n * Gets a wrapped button element for a header.\n *\n * @returns {HTMLElement} The wrapped button element.\n */\n getHeaderButtonHolder: function() {\n return this.getButtonHolder();\n },\n\n /**\n * Gets a wrapped button element.\n *\n * @returns {HTMLElement} The wrapped button element.\n */\n getButtonHolder: function() {\n return document.createElement('span');\n },\n\n /**\n * Gets a single button element.\n *\n * @param {string} text The button text.\n * @param {HTMLElement} icon The icon object.\n * @param {string} title The button title.\n * @returns {HTMLElement} The button object.\n * @see http://materializecss.com/buttons.html\n */\n getButton: function(text, icon, title) {\n\n // Prepare icon.\n if (text) {\n icon.classList.add('left');\n icon.style.marginRight = '5px';\n }\n\n // Create and return button.\n var el = this._super(text, icon, title);\n el.classList.add('waves-effect', 'waves-light', 'btn');\n el.style.fontSize = '0.75rem';\n el.style.height = '24px';\n el.style.lineHeight = '24px';\n el.style.marginLeft = '5px';\n el.style.padding = '0 0.5rem';\n return el;\n\n },\n\n /**\n * Gets a form control object consisiting of several sub objects.\n *\n * @param {HTMLElement} label The label element.\n * @param {HTMLElement} input The input element.\n * @param {string} description The element description.\n * @param {string} infoText The element information text.\n * @returns {HTMLElement} The assembled DOM element.\n * @see http://materializecss.com/forms.html\n */\n getFormControl: function(label, input, description, infoText) {\n\n var ctrl,\n type = input.type;\n\n // Checkboxes get wrapped in p elements.\n if (type && type === 'checkbox') {\n\n ctrl = document.createElement('p');\n if (label) {\n var span = document.createElement('span');\n span.innerHTML = label.innerHTML;\n label.innerHTML = '';\n label.setAttribute('for', input.id);\n ctrl.appendChild(label);\n label.appendChild(input);\n label.appendChild(span);\n }\n else {\n ctrl.appendChild(input);\n }\n\n return ctrl;\n\n }\n\n // Anything else gets wrapped in divs.\n ctrl = this._super(label, input, description, infoText);\n\n // Not .input-field for select wrappers.\n if (!type || !type.startsWith('select'))\n ctrl.classList.add('input-field');\n\n // Color needs special attention.\n if (type && type === 'color') {\n input.style.height = '3rem';\n input.style.width = '100%';\n input.style.margin = '5px 0 20px 0';\n input.style.padding = '3px';\n\n if (label) {\n label.style.transform = 'translateY(-14px) scale(0.8)';\n label.style['-webkit-transform'] = 'translateY(-14px) scale(0.8)';\n label.style['-webkit-transform-origin'] = '0 0';\n label.style['transform-origin'] = '0 0';\n }\n }\n\n return ctrl;\n\n },\n\n getDescription: function(text) {\n var el = document.createElement('div');\n el.classList.add('grey-text');\n el.style.marginTop = '-15px';\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text);\n else el.textContent = this.cleanText(text);\n return el;\n },\n\n /**\n * Gets a header element.\n *\n * @param {string|HTMLElement} text The header text or element.\n * @returns {HTMLElement} The header element.\n */\n getHeader: function(text) {\n\n var el = document.createElement('h5');\n\n if (typeof text === 'string') {\n el.textContent = text;\n } else {\n el.appendChild(text);\n }\n\n return el;\n\n },\n\n getChildEditorHolder: function() {\n\n var el = document.createElement('div');\n el.marginBottom = '10px';\n return el;\n\n },\n\n getIndentedPanel: function() {\n var el = document.createElement(\"div\");\n el.classList.add(\"card-panel\");\n return el;\n },\n\n getTable: function() {\n\n var el = document.createElement('table');\n el.classList.add('striped', 'bordered');\n el.style.marginBottom = '10px';\n return el;\n\n },\n\n getTableRow: function() {\n return document.createElement('tr');\n },\n\n getTableHead: function() {\n return document.createElement('thead');\n },\n\n getTableBody: function() {\n return document.createElement('tbody');\n },\n\n getTableHeaderCell: function(text) {\n\n var el = document.createElement('th');\n el.textContent = text;\n return el;\n\n },\n\n getTableCell: function() {\n\n var el = document.createElement('td');\n return el;\n\n },\n\n /**\n * Gets the tab holder element.\n *\n * @returns {HTMLElement} The tab holder component.\n * @see https://github.com/Dogfalo/materialize/issues/2542#issuecomment-233458602\n */\n getTabHolder: function() {\n\n var html =[\n '<div class=\"col s2\">',\n ' <ul class=\"tabs\" style=\"height: auto; margin-top: 0.82rem; -ms-flex-direction: column; -webkit-flex-direction: column; flex-direction: column; display: -webkit-flex; display: flex;\">',\n ' </ul>',\n '</div>',\n '<div class=\"col s10\">',\n '<div>'\n ].join(\"\\n\");\n\n var el = document.createElement('div');\n el.classList.add('row', 'card-panel');\n el.innerHTML = html;\n return el;\n\n },\n\n /**\n * Add specified tab to specified holder element.\n *\n * @param {HTMLElement} holder The tab holder element.\n * @param {HTMLElement} tab The tab to add.\n */\n addTab: function(holder, tab) {\n holder.children[0].children[0].appendChild(tab);\n },\n\n /**\n * Gets a single tab element.\n *\n * @param {HTMLElement} span The tab's content.\n * @returns {HTMLElement} The tab element.\n * @see https://github.com/Dogfalo/materialize/issues/2542#issuecomment-233458602\n */\n getTab: function(span) {\n\n var el = document.createElement('li');\n el.classList.add('tab');\n el.style = el.style || {};\n this.applyStyles(el,\n {\n width: '100%',\n textAlign: 'left',\n lineHeight: '24px',\n height: '24px',\n fontSize: '14px',\n cursor: 'pointer'\n }\n );\n el.appendChild(span);\n return el;\n },\n\n /**\n * Marks specified tab as active.\n *\n * @returns {HTMLElement} The tab element.\n * @see https://github.com/Dogfalo/materialize/issues/2542#issuecomment-233458602\n */\n markTabActive: function(tab) {\n\n tab.style = tab.style || {};\n this.applyStyles(tab,\n {\n width: '100%',\n textAlign: 'left',\n lineHeight: '24px',\n height: '24px',\n fontSize: '14px',\n cursor: 'pointer',\n color: 'rgba(238,110,115,1)',\n transition: 'border-color .5s ease',\n borderRight: '3px solid #424242'\n }\n );\n\n },\n\n /**\n * Marks specified tab as inactive.\n *\n * @returns {HTMLElement} The tab element.\n * @see https://github.com/Dogfalo/materialize/issues/2542#issuecomment-233458602\n */\n markTabInactive: function(tab) {\n\n tab.style = tab.style || {};\n this.applyStyles(tab,\n {\n width: '100%',\n textAlign: 'left',\n lineHeight: '24px',\n height: '24px',\n fontSize: '14px',\n cursor: 'pointer',\n color: 'rgba(238,110,115,0.7)'\n }\n );\n\n },\n\n /**\n * Returns the element that holds the tab contents.\n *\n * @param {HTMLElement} tabHolder The full tab holder element.\n * @returns {HTMLElement} The content element inside specified tab holder.\n */\n getTabContentHolder: function(tabHolder) {\n return tabHolder.children[1];\n },\n\n /**\n * Creates and returns a tab content element.\n *\n * @returns {HTMLElement} The new tab content element.\n */\n getTabContent: function() {\n return document.createElement('div');\n },\n\n /**\n * Adds an error message to the specified input element.\n *\n * @param {HTMLElement} input The input element that caused the error.\n * @param {string} text The error message.\n */\n addInputError: function(input, text) {\n\n // Get the parent element. Should most likely be a <div class=\"input-field\" ... />.\n var parent = input.parentNode,\n el;\n\n if (!parent) return;\n\n // Remove any previous error.\n this.removeInputError(input);\n\n // Append an error message div.\n el = document.createElement('div');\n el.classList.add('error-text', 'red-text');\n el.textContent = text;\n parent.appendChild(el);\n\n },\n\n /**\n * Removes any error message from the specified input element.\n *\n * @param {HTMLElement} input The input element that previously caused the error.\n */\n removeInputError: function(input) {\n\n // Get the parent element. Should most likely be a <div class=\"input-field\" ... />.\n var parent = input.parentElement,\n els;\n\n if (!parent) return;\n\n // Remove all elements having class .error-text.\n els = parent.getElementsByClassName('error-text');\n for (var i = 0; i < els.length; i++)\n parent.removeChild(els[i]);\n\n },\n\n addTableRowError: function(row) {\n },\n\n removeTableRowError: function(row) {\n },\n\n /**\n * Gets a select DOM element.\n *\n * @param {object} options The option values.\n * @return {HTMLElement} The DOM element.\n * @see http://materializecss.com/forms.html#select\n */\n getSelectInput: function(options) {\n\n var select = this._super(options);\n select.classList.add('browser-default');\n return select;\n\n },\n\n /**\n * Gets a textarea DOM element.\n *\n * @returns {HTMLElement} The DOM element.\n * @see http://materializecss.com/forms.html#textarea\n */\n getTextareaInput: function() {\n var el = document.createElement('textarea');\n el.style.marginBottom = '5px';\n el.style.fontSize = '1rem';\n el.style.fontFamily = 'monospace';\n return el;\n },\n\n getCheckbox: function() {\n\n var el = this.getFormInputField('checkbox');\n el.id = this.createUuid();\n return el;\n\n },\n\n /**\n * Gets the modal element for displaying Edit JSON and Properties dialogs.\n *\n * @returns {HTMLElement} The modal DOM element.\n * @see http://materializecss.com/cards.html\n */\n getModal: function() {\n\n var el = document.createElement('div');\n el.classList.add('card-panel', 'z-depth-3');\n el.style.padding = '5px';\n el.style.position = 'absolute';\n el.style.zIndex = '10';\n el.style.display = 'none';\n return el;\n\n },\n\n /**\n * Creates and returns a RFC4122 version 4 compliant unique id.\n *\n * @returns {string} A GUID.\n * @see https://stackoverflow.com/a/2117523\n */\n createUuid: function() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c)\n {\n var r = Math.random() * 16 | 0, v = c == 'x'? r: (r & 0x3 | 0x8);\n return v.toString(16);\n }\n );\n\n }\n\n }\n);","JSONEditor.AbstractIconLib = Class.extend({\n mapping: {\n collapse: '',\n expand: '',\n \"delete\": '',\n edit: '',\n add: '',\n cancel: '',\n save: '',\n moveup: '',\n movedown: ''\n },\n icon_prefix: '',\n getIconClass: function(key) {\n if(this.mapping[key]) return this.icon_prefix+this.mapping[key];\n else return null;\n },\n getIcon: function(key) {\n var iconclass = this.getIconClass(key);\n \n if(!iconclass) return null;\n \n var i = document.createElement('i');\n i.classList.add.apply(i.classList, iconclass.split(' '));\n \n return i;\n }\n});\n","JSONEditor.defaults.iconlibs.bootstrap2 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'chevron-down',\n expand: 'chevron-up',\n \"delete\": 'trash',\n edit: 'pencil',\n add: 'plus',\n cancel: 'ban-circle',\n save: 'ok',\n moveup: 'arrow-up',\n movedown: 'arrow-down',\n clear: 'remove-circle',\n time: 'time',\n calendar: 'calendar'\n },\n icon_prefix: 'icon-'\n});\n","JSONEditor.defaults.iconlibs.bootstrap3 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'chevron-down',\n expand: 'chevron-right',\n \"delete\": 'remove',\n edit: 'pencil',\n add: 'plus',\n cancel: 'floppy-remove',\n save: 'floppy-saved',\n moveup: 'arrow-up',\n movedown: 'arrow-down',\n clear: 'remove-circle',\n time: 'time',\n calendar: 'calendar'\n },\n icon_prefix: 'glyphicon glyphicon-'\n});\n","JSONEditor.defaults.iconlibs.fontawesome3 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'chevron-down',\n expand: 'chevron-right',\n \"delete\": 'remove',\n edit: 'pencil',\n add: 'plus',\n cancel: 'ban-circle',\n save: 'save',\n moveup: 'arrow-up',\n movedown: 'arrow-down',\n clear: 'remove-circle',\n time: 'time',\n calendar: 'calendar'\n },\n icon_prefix: 'icon-'\n});\n","JSONEditor.defaults.iconlibs.fontawesome4 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'caret-square-o-down',\n expand: 'caret-square-o-right',\n \"delete\": 'times',\n edit: 'pencil',\n add: 'plus',\n cancel: 'ban',\n save: 'save',\n moveup: 'arrow-up',\n movedown: 'arrow-down',\n copy: 'files-o',\n clear: 'times-circle-o',\n time: 'clock-o',\n calendar: 'calendar'\n },\n icon_prefix: 'fa fa-'\n});\n","JSONEditor.defaults.iconlibs.fontawesome5 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'caret-down',\n expand: 'caret-right',\n delete: 'times',\n edit: 'pen',\n add: 'plus',\n cancel: 'ban',\n save: 'save',\n moveup: 'arrow-up',\n movedown: 'arrow-down',\n copy: 'copy',\n clear: 'times-circle',\n time: 'clock',\n calendar: 'calendar'\n },\n icon_prefix: 'fas fa-'\n});\n","JSONEditor.defaults.iconlibs.foundation2 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'minus',\n expand: 'plus',\n \"delete\": 'remove',\n edit: 'edit',\n add: 'add-doc',\n cancel: 'error',\n save: 'checkmark',\n moveup: 'up-arrow',\n movedown: 'down-arrow',\n clear: 'remove',\n time: 'clock',\n calendar: 'calendar'\n },\n icon_prefix: 'foundicon-'\n});\n","JSONEditor.defaults.iconlibs.foundation3 = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'minus',\n expand: 'plus',\n \"delete\": 'x',\n edit: 'pencil',\n add: 'page-add',\n cancel: 'x-circle',\n save: 'save',\n moveup: 'arrow-up',\n movedown: 'arrow-down',\n clear: 'x-circle',\n time: 'clock',\n calendar: 'calendar'\n },\n icon_prefix: 'fi-'\n});\n","JSONEditor.defaults.iconlibs.jqueryui = JSONEditor.AbstractIconLib.extend({\n mapping: {\n collapse: 'triangle-1-s',\n expand: 'triangle-1-e',\n \"delete\": 'trash',\n edit: 'pencil',\n add: 'plusthick',\n cancel: 'closethick',\n save: 'disk',\n moveup: 'arrowthick-1-n',\n movedown: 'arrowthick-1-s',\n clear: 'circle-close',\n time: 'time',\n calendar: 'calendar'\n },\n icon_prefix: 'ui-icon ui-icon-'\n});\n","JSONEditor.defaults.iconlibs.materialicons = JSONEditor.AbstractIconLib.extend({\n\n mapping: {\n collapse: 'arrow_drop_up',\n expand: 'arrow_drop_down',\n \"delete\": 'delete',\n edit: 'edit',\n add: 'add',\n cancel: 'cancel',\n save: 'save',\n moveup: 'arrow_upward',\n movedown: 'arrow_downward',\n copy: 'content_copy',\n clear: 'highlight_off',\n time: 'access_time',\n calendar: 'calendar_today',\n upload: 'cloud_upload',\n },\n\n icon_class: 'material-icons',\n icon_prefix: '',\n\n getIconClass: function(key) {\n\n // This method is unused.\n\n return this.icon_class;\n },\n\n getIcon: function(key) {\n\n // Get the mapping.\n var mapping = this.mapping[key];\n if (!mapping) return null;\n\n // @see http://materializecss.com/icons.html\n var i = document.createElement('i');\n i.classList.add(this.icon_class);\n var t = document.createTextNode(mapping);\n i.appendChild(t);\n return i;\n\n }\n});\n","JSONEditor.defaults.templates[\"default\"] = function() {\n return {\n compile: function(template) {\n var matches = template.match(/{{\\s*([a-zA-Z0-9\\-_ \\.]+)\\s*}}/g);\n var l = matches && matches.length;\n\n // Shortcut if the template contains no variables\n if(!l) return function() { return template; };\n\n // Pre-compute the search/replace functions\n // This drastically speeds up template execution\n var replacements = [];\n var get_replacement = function(i) {\n var p = matches[i].replace(/[{}]+/g,'').trim().split('.');\n var n = p.length;\n var func;\n \n if(n > 1) {\n var cur;\n func = function(vars) {\n cur = vars;\n for(i=0; i<n; i++) {\n cur = cur[p[i]];\n if(!cur) break;\n }\n return cur;\n };\n }\n else {\n p = p[0];\n func = function(vars) {\n return vars[p];\n };\n }\n \n replacements.push({\n s: matches[i],\n r: func\n });\n };\n for(var i=0; i<l; i++) {\n get_replacement(i);\n }\n\n // The compiled function\n return function(vars) {\n var ret = template+\"\";\n var r;\n for(i=0; i<l; i++) {\n r = replacements[i];\n ret = ret.replace(r.s, r.r(vars));\n }\n return ret;\n };\n }\n };\n};\n","JSONEditor.defaults.templates.ejs = function() {\n if(!window.EJS) return false;\n\n return {\n compile: function(template) {\n var compiled = new window.EJS({\n text: template\n });\n\n return function(context) {\n return compiled.render(context);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.handlebars = function() {\n return window.Handlebars;\n};\n","JSONEditor.defaults.templates.hogan = function() {\n if(!window.Hogan) return false;\n\n return {\n compile: function(template) {\n var compiled = window.Hogan.compile(template);\n return function(context) {\n return compiled.render(context);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.lodash = function() {\n if(!window._) return false;\n\n return {\n compile: function(template) {\n return function(context) {\n return window._.template(template)(context);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.markup = function() {\n if(!window.Mark || !window.Mark.up) return false;\n\n return {\n compile: function(template) {\n return function(context) {\n return window.Mark.up(template,context);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.mustache = function() {\n if(!window.Mustache) return false;\n\n return {\n compile: function(template) {\n return function(view) {\n return window.Mustache.render(template, view);\n };\n }\n };\n};\n","JSONEditor.defaults.templates.swig = function() {\n return window.swig;\n};\n","JSONEditor.defaults.templates.underscore = function() {\n if(!window._) return false;\n\n return {\n compile: function(template) {\n return function(context) {\n return window._.template(template)(context);\n };\n }\n };\n};\n","// Set the default theme\nJSONEditor.defaults.theme = 'html';\n\n// Set the default template engine\nJSONEditor.defaults.template = 'default';\n\n// Default options when initializing JSON Editor\nJSONEditor.defaults.options = {};\n\nJSONEditor.defaults.options.prompt_before_delete = true;\n\nJSONEditor.defaults.options.upload = function(type, file, cbs) {\n console.log('Upload handler required for upload editor');\n};\n\n// String translate function\nJSONEditor.defaults.translate = function(key, variables) {\n var lang = JSONEditor.defaults.languages[JSONEditor.defaults.language];\n if(!lang) throw \"Unknown language \"+JSONEditor.defaults.language;\n\n var string = lang[key] || JSONEditor.defaults.languages[JSONEditor.defaults.default_language][key];\n\n if(typeof string === \"undefined\") throw \"Unknown translate string \"+key;\n\n if(variables) {\n for(var i=0; i<variables.length; i++) {\n string = string.replace(new RegExp('\\\\{\\\\{'+i+'}}','g'),variables[i]);\n }\n }\n\n return string;\n};\n\n// Translation strings and default languages\nJSONEditor.defaults.default_language = 'en';\nJSONEditor.defaults.language = JSONEditor.defaults.default_language;\nJSONEditor.defaults.languages.en = {\n /**\n * When a property is not set\n */\n error_notset: \"Property must be set\",\n /**\n * When a string must not be empty\n */\n error_notempty: \"Value required\",\n /**\n * When a value is not one of the enumerated values\n */\n error_enum: \"Value must be one of the enumerated values\",\n /**\n * When a value doesn't validate any schema of a 'anyOf' combination\n */\n error_anyOf: \"Value must validate against at least one of the provided schemas\",\n /**\n * When a value doesn't validate\n * @variables This key takes one variable: The number of schemas the value does not validate\n */\n error_oneOf: 'Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.',\n /**\n * When a value does not validate a 'not' schema\n */\n error_not: \"Value must not validate against the provided schema\",\n /**\n * When a value does not match any of the provided types\n */\n error_type_union: \"Value must be one of the provided types\",\n /**\n * When a value does not match the given type\n * @variables This key takes one variable: The type the value should be of\n */\n error_type: \"Value must be of type {{0}}\",\n /**\n * When the value validates one of the disallowed types\n */\n error_disallow_union: \"Value must not be one of the provided disallowed types\",\n /**\n * When the value validates a disallowed type\n * @variables This key takes one variable: The type the value should not be of\n */\n error_disallow: \"Value must not be of type {{0}}\",\n /**\n * When a value is not a multiple of or divisible by a given number\n * @variables This key takes one variable: The number mentioned above\n */\n error_multipleOf: \"Value must be a multiple of {{0}}\",\n /**\n * When a value is greater than it's supposed to be (exclusive)\n * @variables This key takes one variable: The maximum\n */\n error_maximum_excl: \"Value must be less than {{0}}\",\n /**\n * When a value is greater than it's supposed to be (inclusive\n * @variables This key takes one variable: The maximum\n */\n error_maximum_incl: \"Value must be at most {{0}}\",\n /**\n * When a value is lesser than it's supposed to be (exclusive)\n * @variables This key takes one variable: The minimum\n */\n error_minimum_excl: \"Value must be greater than {{0}}\",\n /**\n * When a value is lesser than it's supposed to be (inclusive)\n * @variables This key takes one variable: The minimum\n */\n error_minimum_incl: \"Value must be at least {{0}}\",\n /**\n * When a value have too many characters\n * @variables This key takes one variable: The maximum character count\n */\n error_maxLength: \"Value must be at most {{0}} characters long\",\n /**\n * When a value does not have enough characters\n * @variables This key takes one variable: The minimum character count\n */\n error_minLength: \"Value must be at least {{0}} characters long\",\n /**\n * When a value does not match a given pattern\n */\n error_pattern: \"Value must match the pattern {{0}}\",\n /**\n * When an array has additional items whereas it is not supposed to\n */\n error_additionalItems: \"No additional items allowed in this array\",\n /**\n * When there are to many items in an array\n * @variables This key takes one variable: The maximum item count\n */\n error_maxItems: \"Value must have at most {{0}} items\",\n /**\n * When there are not enough items in an array\n * @variables This key takes one variable: The minimum item count\n */\n error_minItems: \"Value must have at least {{0}} items\",\n /**\n * When an array is supposed to have unique items but has duplicates\n */\n error_uniqueItems: \"Array must have unique items\",\n /**\n * When there are too many properties in an object\n * @variables This key takes one variable: The maximum property count\n */\n error_maxProperties: \"Object must have at most {{0}} properties\",\n /**\n * When there are not enough properties in an object\n * @variables This key takes one variable: The minimum property count\n */\n error_minProperties: \"Object must have at least {{0}} properties\",\n /**\n * When a required property is not defined\n * @variables This key takes one variable: The name of the missing property\n */\n error_required: \"Object is missing the required property '{{0}}'\",\n /**\n * When there is an additional property is set whereas there should be none\n * @variables This key takes one variable: The name of the additional property\n */\n error_additional_properties: \"No additional properties allowed, but property {{0}} is set\",\n /**\n * When a dependency is not resolved\n * @variables This key takes one variable: The name of the missing property for the dependency\n */\n error_dependency: \"Must have property {{0}}\",\n /**\n * When a date is in incorrect format\n * @variables This key takes one variable: The valid format\n */\n error_date: 'Date must be in the format {{0}}',\n /**\n * When a time is in incorrect format\n * @variables This key takes one variable: The valid format\n */\n error_time: 'Time must be in the format {{0}}',\n /**\n * When a datetime-local is in incorrect format\n * @variables This key takes one variable: The valid format\n */\n error_datetime_local: 'Datetime must be in the format {{0}}',\n /**\n * When a integer date is less than 1 January 1970\n */\n error_invalid_epoch: 'Date must be greater than 1 January 1970',\n\n /**\n * Text on Delete All buttons\n */\n button_delete_all: \"All\",\n /**\n * Title on Delete All buttons\n */\n button_delete_all_title: \"Delete All\",\n /**\n * Text on Delete Last buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_last: \"Last {{0}}\",\n /**\n * Title on Delete Last buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_last_title: \"Delete Last {{0}}\",\n /**\n * Title on Add Row buttons\n * @variable This key takes one variable: The title of object to add\n */\n button_add_row_title: \"Add {{0}}\",\n /**\n * Title on Move Down buttons\n */\n button_move_down_title: \"Move down\",\n /**\n * Title on Move Up buttons\n */\n button_move_up_title: \"Move up\",\n /**\n * Title on Object Properties buttons\n */\n button_object_properties: \"Object Properties\",\n /**\n * Title on Delete Row buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_row_title: \"Delete {{0}}\",\n /**\n * Title on Delete Row buttons, short version (no parameter with the object title)\n */\n button_delete_row_title_short: \"Delete\",\n /**\n * Title on Collapse buttons\n */\n button_collapse: \"Collapse\",\n /**\n * Title on Expand buttons\n */\n button_expand: \"Expand\",\n /**\n * Title on Flatpickr toggle buttons\n */\n flatpickr_toggle_button: \"Toggle\",\n /**\n * Title on Flatpickr clear buttons\n */\n flatpickr_clear_button: \"Clear\"\n};\n\n// Miscellaneous Plugin Settings\nJSONEditor.plugins = {\n ace: {\n theme: ''\n },\n SimpleMDE: {\n\n },\n sceditor: {\n\n },\n select2: {\n\n },\n selectize: {\n }\n};\n\n// Default per-editor options\n$each(JSONEditor.defaults.editors, function(i,editor) {\n JSONEditor.defaults.editors[i].options = editor.options || {};\n});\n\n// Set the default resolvers\n// Use \"multiple\" as a fall back for everything\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(typeof schema.type !== \"string\") return \"multiple\";\n});\n// If the type is not set but properties are defined, we can infer the type is actually object\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema is a simple type\n if(!schema.type && schema.properties ) return \"object\";\n});\n// If the type is set and it's a basic type, use the primitive editor\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema is a simple type\n if(typeof schema.type === \"string\") return schema.type;\n});\n// Use specialized editor for signatures\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === \"string\" && schema.format === \"signature\") return \"signature\";\n});\n// Use a specialized editor for ratings\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === \"integer\" && schema.format === \"rating\") return \"rating\";\n});\n// Use the select editor for all boolean values\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === 'boolean') {\n // If explicitly set to 'checkbox', use that\n if(schema.format === \"checkbox\" || (schema.options && schema.options.checkbox)) {\n return \"checkbox\";\n }\n // Otherwise, default to select menu\n return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';\n }\n});\n// Use the multiple editor for schemas where the `type` is set to \"any\"\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema can be of any type\n if(schema.type === \"any\") return \"multiple\";\n});\n// Editor for base64 encoded files\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If the schema can be of any type\n if(schema.type === \"string\" && schema.media && schema.media.binaryEncoding===\"base64\") {\n return \"base64\";\n }\n});\n// Editor for uploading files\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === \"string\" && schema.format === \"url\" && schema.options && schema.options.upload === true) {\n if(window.FileReader) return \"upload\";\n }\n});\n// Use the table editor for arrays with the format set to `table`\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // Type `array` with format set to `table`\n if(schema.type === \"array\" && schema.format === \"table\") {\n return \"table\";\n }\n});\n// Use the `select` editor for dynamic enumSource enums\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.enumSource) {\n if(schema.format === \"radio\") {\n return \"radio\";\n }\n return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';\n }\n});\n// Use the `enum` or `select` editors for schemas with enumerated properties\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema[\"enum\"]) {\n if(schema.type === \"array\" || schema.type === \"object\") {\n return \"enum\";\n }\n else if(schema.type === \"number\" || schema.type === \"integer\" || schema.type === \"string\") {\n\n if(schema.format === \"radio\") {\n return \"radio\";\n }\n\n return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';\n }\n }\n});\n// Specialized editors for arrays of strings\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if(schema.type === \"array\" && schema.items && !(Array.isArray(schema.items)) && schema.uniqueItems && ['string','number','integer'].indexOf(schema.items.type) >= 0) {\n // if 'selectize' enabled it is expected to be selectized control\n if (JSONEditor.plugins.selectize.enable) {\n return 'arraySelectize';\n }\n // otherwise it is select\n else {\n return 'multiselect';\n }\n }\n});\n// Use the multiple editor for schemas with `oneOf` set\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n // If this schema uses `oneOf` or `anyOf`\n if(schema.oneOf || schema.anyOf) return \"multiple\";\n});\n// Specialized editor for date, time and datetime-local formats\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if (['string', 'integer'].indexOf(schema.type) !== -1 && ['date', 'time', 'datetime-local'].indexOf(schema.format) !== -1) {\n return \"datetime\";\n }\n});\n// Use a specialized editor for starratings\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if (schema.type === \"string\" && schema.format === \"starrating\") return \"starrating\";\n});\n\n// hyper-link describeBy Resolver\nJSONEditor.defaults.resolvers.unshift(function(schema) {\n if (schema.links) {\n for (var i = 0; i < schema.links.length; i++) {\n if (schema.links[i].rel.toLowerCase() === \"describedby\") {\n return \"describedBy\";\n }\n }\n }\n});","/**\n * This is a small wrapper for using JSON Editor like a typical jQuery plugin.\n */\n(function() {\n if(window.jQuery || window.Zepto) {\n var $ = window.jQuery || window.Zepto;\n $.jsoneditor = JSONEditor.defaults;\n \n $.fn.jsoneditor = function(options) {\n var self = this;\n var editor = this.data('jsoneditor');\n if(options === 'value') {\n if(!editor) throw \"Must initialize jsoneditor before getting/setting the value\";\n \n // Set value\n if(arguments.length > 1) {\n editor.setValue(arguments[1]);\n }\n // Get value\n else {\n return editor.getValue();\n }\n }\n else if(options === 'validate') {\n if(!editor) throw \"Must initialize jsoneditor before validating\";\n \n // Validate a specific value\n if(arguments.length > 1) {\n return editor.validate(arguments[1]);\n }\n // Validate current value\n else {\n return editor.validate();\n }\n }\n else if(options === 'destroy') {\n if(editor) {\n editor.destroy();\n this.data('jsoneditor',null);\n }\n }\n else {\n // Destroy first\n if(editor) {\n editor.destroy();\n }\n \n // Create editor\n editor = new JSONEditor(this.get(0),options);\n this.data('jsoneditor',editor);\n \n // Setup event listeners\n editor.on('change',function() {\n self.trigger('change');\n });\n editor.on('ready',function() {\n self.trigger('ready');\n });\n }\n \n return this;\n };\n }\n})();\n","\treturn JSONEditor;\n});\n"]}