@wix/video 1.72.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 (142) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +126 -0
  3. package/dist/cjs/Video.js +121 -0
  4. package/dist/cjs/Video.js.map +1 -0
  5. package/dist/cjs/Video.module.scss +27 -0
  6. package/dist/cjs/Video.stories.js +68 -0
  7. package/dist/cjs/Video.stories.js.map +1 -0
  8. package/dist/cjs/custom-element/WowVideo.js +88 -0
  9. package/dist/cjs/custom-element/WowVideo.js.map +1 -0
  10. package/dist/cjs/custom-element/registry.js +34 -0
  11. package/dist/cjs/custom-element/registry.js.map +1 -0
  12. package/dist/cjs/custom-element/utils.js +138 -0
  13. package/dist/cjs/custom-element/utils.js.map +1 -0
  14. package/dist/cjs/custom-element/videoLayout.js +120 -0
  15. package/dist/cjs/custom-element/videoLayout.js.map +1 -0
  16. package/dist/cjs/customElementInit.js +10 -0
  17. package/dist/cjs/customElementInit.js.map +1 -0
  18. package/dist/cjs/dataManifest.js +53 -0
  19. package/dist/cjs/dataManifest.js.map +1 -0
  20. package/dist/cjs/external-types.d.js +2 -0
  21. package/dist/cjs/external-types.d.js.map +1 -0
  22. package/dist/cjs/index.js +23 -0
  23. package/dist/cjs/index.js.map +1 -0
  24. package/dist/cjs/storybook/Container.js +33 -0
  25. package/dist/cjs/storybook/Container.js.map +1 -0
  26. package/dist/cjs/storybook/args.js +178 -0
  27. package/dist/cjs/storybook/args.js.map +1 -0
  28. package/dist/cjs/test-types.d.js +2 -0
  29. package/dist/cjs/test-types.d.js.map +1 -0
  30. package/dist/cjs/types.js +4 -0
  31. package/dist/cjs/types.js.map +1 -0
  32. package/dist/esm/Video.js +95 -0
  33. package/dist/esm/Video.js.map +1 -0
  34. package/dist/esm/Video.module.scss +27 -0
  35. package/dist/esm/Video.stories.js +47 -0
  36. package/dist/esm/Video.stories.js.map +1 -0
  37. package/dist/esm/custom-element/WowVideo.js +83 -0
  38. package/dist/esm/custom-element/WowVideo.js.map +1 -0
  39. package/dist/esm/custom-element/registry.js +29 -0
  40. package/dist/esm/custom-element/registry.js.map +1 -0
  41. package/dist/esm/custom-element/utils.js +131 -0
  42. package/dist/esm/custom-element/utils.js.map +1 -0
  43. package/dist/esm/custom-element/videoLayout.js +117 -0
  44. package/dist/esm/custom-element/videoLayout.js.map +1 -0
  45. package/dist/esm/customElementInit.js +13 -0
  46. package/dist/esm/customElementInit.js.map +1 -0
  47. package/dist/esm/dataManifest.js +49 -0
  48. package/dist/esm/dataManifest.js.map +1 -0
  49. package/dist/esm/external-types.d.js +2 -0
  50. package/dist/esm/external-types.d.js.map +1 -0
  51. package/dist/esm/index.js +6 -0
  52. package/dist/esm/index.js.map +1 -0
  53. package/dist/esm/storybook/Container.js +21 -0
  54. package/dist/esm/storybook/Container.js.map +1 -0
  55. package/dist/esm/storybook/args.js +174 -0
  56. package/dist/esm/storybook/args.js.map +1 -0
  57. package/dist/esm/test-types.d.js +2 -0
  58. package/dist/esm/test-types.d.js.map +1 -0
  59. package/dist/esm/types.js +2 -0
  60. package/dist/esm/types.js.map +1 -0
  61. package/dist/statics/189.chunk.js +35383 -0
  62. package/dist/statics/189.chunk.js.map +1 -0
  63. package/dist/statics/189.chunk.min.js +2 -0
  64. package/dist/statics/189.chunk.min.js.map +1 -0
  65. package/dist/statics/janet/110.8a580c2d.iframe.bundle.js +10826 -0
  66. package/dist/statics/janet/110.8a580c2d.iframe.bundle.js.map +1 -0
  67. package/dist/statics/janet/134.6007b391.iframe.bundle.js +484 -0
  68. package/dist/statics/janet/134.6007b391.iframe.bundle.js.map +1 -0
  69. package/dist/statics/janet/134.d48c36bc94ecd2280c0a.manager.bundle.js +1 -0
  70. package/dist/statics/janet/317.2df397a1e1f34d5a30fd.manager.bundle.js +1 -0
  71. package/dist/statics/janet/326.e8fcdb36.iframe.bundle.js +1998 -0
  72. package/dist/statics/janet/326.e8fcdb36.iframe.bundle.js.map +1 -0
  73. package/dist/statics/janet/326.ff40cdf1778fd94969c8.manager.bundle.js +2 -0
  74. package/dist/statics/janet/326.ff40cdf1778fd94969c8.manager.bundle.js.LICENSE.txt +31 -0
  75. package/dist/statics/janet/470.aab6696c.iframe.bundle.js +35380 -0
  76. package/dist/statics/janet/470.aab6696c.iframe.bundle.js.map +1 -0
  77. package/dist/statics/janet/599.37d4aa34.iframe.bundle.js +3294 -0
  78. package/dist/statics/janet/599.37d4aa34.iframe.bundle.js.map +1 -0
  79. package/dist/statics/janet/599.47c7dacc8997e4d71eac.manager.bundle.js +1 -0
  80. package/dist/statics/janet/61.5cb88eb5.iframe.bundle.js +2652 -0
  81. package/dist/statics/janet/61.5cb88eb5.iframe.bundle.js.map +1 -0
  82. package/dist/statics/janet/61.a575d4776ab0d42da5c8.manager.bundle.js +1 -0
  83. package/dist/statics/janet/673.59f2a23a.iframe.bundle.js +173 -0
  84. package/dist/statics/janet/673.59f2a23a.iframe.bundle.js.map +1 -0
  85. package/dist/statics/janet/725.0db49c6347dfe44ace2d.manager.bundle.js +2 -0
  86. package/dist/statics/janet/725.0db49c6347dfe44ace2d.manager.bundle.js.LICENSE.txt +8 -0
  87. package/dist/statics/janet/725.cbba2e4b.iframe.bundle.js +10451 -0
  88. package/dist/statics/janet/725.cbba2e4b.iframe.bundle.js.map +1 -0
  89. package/dist/statics/janet/734.428ea23e9773cd26fb57.manager.bundle.js +2 -0
  90. package/dist/statics/janet/734.428ea23e9773cd26fb57.manager.bundle.js.LICENSE.txt +94 -0
  91. package/dist/statics/janet/833.75275036.iframe.bundle.js +6777 -0
  92. package/dist/statics/janet/833.75275036.iframe.bundle.js.map +1 -0
  93. package/dist/statics/janet/833.ef639b005d7b76723595.manager.bundle.js +2 -0
  94. package/dist/statics/janet/833.ef639b005d7b76723595.manager.bundle.js.LICENSE.txt +12 -0
  95. package/dist/statics/janet/W-06.svg +1 -0
  96. package/dist/statics/janet/favicon.ico +0 -0
  97. package/dist/statics/janet/iframe.html +364 -0
  98. package/dist/statics/janet/index.html +59 -0
  99. package/dist/statics/janet/janet.json +10 -0
  100. package/dist/statics/janet/main.666d4853f3d62ab20aa1.manager.bundle.js +1 -0
  101. package/dist/statics/janet/main.d8a321d6.iframe.bundle.js +73260 -0
  102. package/dist/statics/janet/main.d8a321d6.iframe.bundle.js.map +1 -0
  103. package/dist/statics/janet/project.json +1 -0
  104. package/dist/statics/janet/runtime~main.2195d24e465f19ad9c9a.manager.bundle.js +1 -0
  105. package/dist/statics/janet/w-06.ico +0 -0
  106. package/dist/statics/manifest.json +4 -0
  107. package/dist/statics/manifest.min.json +4 -0
  108. package/dist/statics/video.css +10 -0
  109. package/dist/statics/video.css.map +1 -0
  110. package/dist/statics/video.min.css +1 -0
  111. package/dist/statics/video.rtl.css +8 -0
  112. package/dist/statics/video.rtl.min.css +1 -0
  113. package/dist/statics/video.umd.js +5990 -0
  114. package/dist/statics/video.umd.js.map +1 -0
  115. package/dist/statics/video.umd.min.js +2 -0
  116. package/dist/statics/video.umd.min.js.map +1 -0
  117. package/dist/tsconfig.tsbuildinfo +1 -0
  118. package/dist/types/Video.d.ts +5 -0
  119. package/dist/types/Video.d.ts.map +1 -0
  120. package/dist/types/Video.stories.d.ts +20 -0
  121. package/dist/types/Video.stories.d.ts.map +1 -0
  122. package/dist/types/custom-element/WowVideo.d.ts +4 -0
  123. package/dist/types/custom-element/WowVideo.d.ts.map +1 -0
  124. package/dist/types/custom-element/registry.d.ts +3 -0
  125. package/dist/types/custom-element/registry.d.ts.map +1 -0
  126. package/dist/types/custom-element/utils.d.ts +11 -0
  127. package/dist/types/custom-element/utils.d.ts.map +1 -0
  128. package/dist/types/custom-element/videoLayout.d.ts +35 -0
  129. package/dist/types/custom-element/videoLayout.d.ts.map +1 -0
  130. package/dist/types/customElementInit.d.ts +4 -0
  131. package/dist/types/customElementInit.d.ts.map +1 -0
  132. package/dist/types/dataManifest.d.ts +2 -0
  133. package/dist/types/dataManifest.d.ts.map +1 -0
  134. package/dist/types/index.d.ts +6 -0
  135. package/dist/types/index.d.ts.map +1 -0
  136. package/dist/types/storybook/Container.d.ts +5 -0
  137. package/dist/types/storybook/Container.d.ts.map +1 -0
  138. package/dist/types/storybook/args.d.ts +174 -0
  139. package/dist/types/storybook/args.d.ts.map +1 -0
  140. package/dist/types/types.d.ts +62 -0
  141. package/dist/types/types.d.ts.map +1 -0
  142. package/package.json +121 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"725.cbba2e4b.iframe.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnjUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://@wix/video/../../node_modules/@storybook/components/dist/esm/syntaxhighlighter-b07b042a.js","webpack://@wix/video/../../node_modules/core-js/modules/es.regexp.flags.js"],"sourcesContent":["import \"regenerator-runtime/runtime.js\";\n\nfunction _defineProperty2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray2(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray2(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray2(o, minLen); }\n\nfunction _arrayLikeToArray2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport \"core-js/modules/es.regexp.exec.js\";\nimport \"core-js/modules/es.string.replace.js\";\nimport \"core-js/modules/es.regexp.constructor.js\";\nimport \"core-js/modules/es.regexp.to-string.js\";\nimport \"core-js/modules/es.array.join.js\";\nimport \"core-js/modules/es.array.map.js\";\nimport \"core-js/modules/es.array.splice.js\";\nimport \"core-js/modules/es.array.filter.js\";\nimport \"core-js/modules/es.object.to-string.js\";\nimport \"core-js/modules/es.string.from-code-point.js\";\nimport \"core-js/modules/es.array.slice.js\";\nimport \"core-js/modules/es.number.constructor.js\";\nimport \"core-js/modules/es.regexp.flags.js\";\nimport \"core-js/modules/es.symbol.js\";\nimport \"core-js/modules/es.symbol.description.js\";\nimport \"core-js/modules/es.symbol.iterator.js\";\nimport \"core-js/modules/es.array.iterator.js\";\nimport \"core-js/modules/es.string.iterator.js\";\nimport \"core-js/modules/web.dom-collections.iterator.js\";\nimport \"core-js/modules/es.array.from.js\";\nimport \"core-js/modules/es.function.name.js\";\nimport \"core-js/modules/es.object.keys.js\";\nimport \"core-js/modules/es.object.get-own-property-descriptor.js\";\nimport \"core-js/modules/web.dom-collections.for-each.js\";\nimport \"core-js/modules/es.array.concat.js\";\nimport \"core-js/modules/es.string.split.js\";\nimport \"core-js/modules/es.array.includes.js\";\nimport \"core-js/modules/es.string.includes.js\";\nimport \"core-js/modules/es.object.assign.js\";\nimport \"core-js/modules/es.string.match.js\";\nimport \"core-js/modules/es.set.js\";\nimport \"core-js/modules/es.string.trim.js\";\nimport \"core-js/modules/esnext.global-this.js\";\nimport \"core-js/modules/es.object.entries.js\";\nimport { _ as _objectWithoutPropertiesLoose, a as _extends, c as commonjsGlobal, b as __awaiter, S as ScrollArea, d as __rest, A as ActionBar, w as window_1 } from './index-681e4b07.js';\nimport React__default, { useState, useCallback } from 'react';\nimport { logger } from '@storybook/client-logger';\nimport { styled } from '@storybook/theming';\nimport memoize from 'memoizerific';\nimport '@storybook/csf';\nimport 'qs';\nvar jsx_1 = jsx;\njsx.displayName = 'jsx';\njsx.aliases = [];\n\nfunction jsx(Prism) {\n (function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript);\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source;\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source;\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source;\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n\n function re(source, flags) {\n source = source.replace(/<S>/g, function () {\n return space;\n }).replace(/<BRACES>/g, function () {\n return braces;\n }).replace(/<SPREAD>/g, function () {\n return spread;\n });\n return RegExp(source, flags);\n }\n\n spread = re(spread).source;\n Prism.languages.jsx = Prism.languages.extend('markup', javascript);\n Prism.languages.jsx.tag.pattern = re(/<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/.source);\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/;\n Prism.languages.jsx.tag.inside['attr-value'].pattern = /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/;\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/;\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment'];\n Prism.languages.insertBefore('inside', 'attr-name', {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n }, Prism.languages.jsx.tag);\n Prism.languages.insertBefore('inside', 'special-attr', {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n alias: 'language-javascript',\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n }\n }\n }, Prism.languages.jsx.tag); // The following will handle plain text inside tags\n\n var stringifyToken = function stringifyToken(token) {\n if (!token) {\n return '';\n }\n\n if (typeof token === 'string') {\n return token;\n }\n\n if (typeof token.content === 'string') {\n return token.content;\n }\n\n return token.content.map(stringifyToken).join('');\n };\n\n var walkTokens = function walkTokens(tokens) {\n var openedTags = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var notTagNorBrace = false;\n\n if (typeof token !== 'string') {\n if (token.type === 'tag' && token.content[0] && token.content[0].type === 'tag') {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (openedTags.length > 0 && openedTags[openedTags.length - 1].tagName === stringifyToken(token.content[0].content[1])) {\n // Pop matching opening tag\n openedTags.pop();\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') ;else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n });\n }\n }\n } else if (openedTags.length > 0 && token.type === 'punctuation' && token.content === '{') {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++;\n } else if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces > 0 && token.type === 'punctuation' && token.content === '}') {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--;\n } else {\n notTagNorBrace = true;\n }\n }\n\n if (notTagNorBrace || typeof token === 'string') {\n if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces === 0) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token); // And merge text with adjacent text\n\n if (i < tokens.length - 1 && (typeof tokens[i + 1] === 'string' || tokens[i + 1].type === 'plain-text')) {\n plainText += stringifyToken(tokens[i + 1]);\n tokens.splice(i + 1, 1);\n }\n\n if (i > 0 && (typeof tokens[i - 1] === 'string' || tokens[i - 1].type === 'plain-text')) {\n plainText = stringifyToken(tokens[i - 1]) + plainText;\n tokens.splice(i - 1, 1);\n i--;\n }\n\n tokens[i] = new Prism.Token('plain-text', plainText, null, plainText);\n }\n }\n\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content);\n }\n }\n };\n\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return;\n }\n\n walkTokens(env.tokens);\n });\n })(Prism);\n}\n\nvar jsx$1 = jsx_1;\nvar bash_1 = bash;\nbash.displayName = 'bash';\nbash.aliases = ['shell'];\n\nfunction bash(Prism) {\n (function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars = '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b';\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n\n };\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [// [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [{\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n }, /^\\$\\(\\(/],\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator: /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n }, // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n }, /\\$(?:\\w+|[#?*!@$])/],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity: /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n };\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [// a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {”\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n }, {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=” and “+=”).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n string: [// Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, // Here-document with quotes around the tag\n // → No expansion (so no “inside”).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n }, // “Normal” string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern: /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n }, {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern: /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n };\n commandAfterHeredoc.inside = Prism.languages.bash;\n /* Patterns in command substitution. */\n\n var toBeCopied = ['comment', 'function-name', 'for-or-select', 'assign-left', 'string', 'environment', 'function', 'keyword', 'builtin', 'boolean', 'file-descriptor', 'operator', 'punctuation', 'number'];\n var inside = insideString.variable[1].inside;\n\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]];\n }\n\n Prism.languages.shell = Prism.languages.bash;\n })(Prism);\n}\n\nvar bash$1 = bash_1;\nvar css_1 = css$1;\ncss$1.displayName = 'css';\ncss$1.aliases = [];\n\nfunction css$1(Prism) {\n (function (Prism) {\n var string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n } // See rest below\n\n }\n },\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: {\n pattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n lookbehind: true\n },\n string: {\n pattern: string,\n greedy: true\n },\n property: {\n pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n important: /!important\\b/i,\n function: {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n punctuation: /[(){};:,]/\n };\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css;\n var markup = Prism.languages.markup;\n\n if (markup) {\n markup.tag.addInlined('style', 'css');\n markup.tag.addAttribute('style', 'css');\n }\n })(Prism);\n}\n\nvar css$2 = css_1;\nvar jsExtras_1 = jsExtras;\njsExtras.displayName = 'jsExtras';\njsExtras.aliases = [];\n\nfunction jsExtras(Prism) {\n (function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp('(\\\\.\\\\s*)' + Prism.languages.javascript['function-variable'].pattern.source),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n });\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp('(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n });\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [{\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern: /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n alias: 'class-name'\n }, {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }]\n });\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n\n function withId(source, flags) {\n return RegExp(source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source;\n }), flags);\n }\n\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(/(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n });\n Prism.languages.javascript['keyword'].unshift({\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n }, {\n pattern: /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n }, {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n }, {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n });\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n });\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern: /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n }); // add 'maybe-class-name' to tokens which might be a class name\n\n var maybeClassNameTokens = ['function', 'function-variable', 'method', 'method-variable', 'property-access'];\n\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i];\n var value = Prism.languages.javascript[token]; // convert regex to object\n\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n };\n } // keep in mind that we don't support arrays\n\n\n var inside = value.inside || {};\n value.inside = inside;\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/;\n }\n })(Prism);\n}\n\nvar jsExtras$1 = jsExtras_1;\nvar json_1 = json;\njson.displayName = 'json';\njson.aliases = ['webmanifest'];\n\nfunction json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n };\n Prism.languages.webmanifest = Prism.languages.json;\n}\n\nvar json$1 = json_1;\nvar graphql_1 = graphql;\ngraphql.displayName = 'graphql';\ngraphql.aliases = [];\n\nfunction graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /\\b[A-Z]\\w*Input\\b/,\n alias: 'class-name'\n },\n scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n 'class-name': {\n pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-mutation': {\n pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-query': {\n pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n 'property-query': /\\w+(?=\\s*\\()/,\n object: /\\w+(?=\\s*\\{)/,\n punctuation: /[!(){}\\[\\]:=,]/,\n property: /\\w+/\n };\n Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n if (env.language !== 'graphql') {\n return;\n }\n /**\n * get the graphql token stream that we want to customize\n *\n * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n * @type {Token[]}\n */\n\n\n var validTokens = env.tokens.filter(function (token) {\n return typeof token !== 'string' && token.type !== 'comment' && token.type !== 'scalar';\n });\n var currentIndex = 0;\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {number} offset\n * @returns {Token | undefined}\n */\n\n function getToken(offset) {\n return validTokens[currentIndex + offset];\n }\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {readonly string[]} types\n * @param {number} [offset=0]\n * @returns {boolean}\n */\n\n\n function isTokenType(types, offset) {\n offset = offset || 0;\n\n for (var i = 0; i < types.length; i++) {\n var token = getToken(i + offset);\n\n if (!token || token.type !== types[i]) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * Returns the index of the closing bracket to an opening bracket.\n *\n * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n *\n * If no closing bracket could be found, `-1` will be returned.\n *\n * @param {RegExp} open\n * @param {RegExp} close\n * @returns {number}\n */\n\n\n function findClosingBracket(open, close) {\n var stackHeight = 1;\n\n for (var i = currentIndex; i < validTokens.length; i++) {\n var token = validTokens[i];\n var content = token.content;\n\n if (token.type === 'punctuation' && typeof content === 'string') {\n if (open.test(content)) {\n stackHeight++;\n } else if (close.test(content)) {\n stackHeight--;\n\n if (stackHeight === 0) {\n return i;\n }\n }\n }\n }\n\n return -1;\n }\n /**\n * Adds an alias to the given token.\n *\n * @param {Token} token\n * @param {string} alias\n * @returns {void}\n */\n\n\n function addAlias(token, alias) {\n var aliases = token.alias;\n\n if (!aliases) {\n token.alias = aliases = [];\n } else if (!Array.isArray(aliases)) {\n token.alias = aliases = [aliases];\n }\n\n aliases.push(alias);\n }\n\n for (; currentIndex < validTokens.length;) {\n var startToken = validTokens[currentIndex++]; // add special aliases for mutation tokens\n\n if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n // any array of the names of all input variables (if any)\n var inputVariables = [];\n\n if (isTokenType(['definition-mutation', 'punctuation']) && getToken(1).content === '(') {\n // definition\n currentIndex += 2; // skip 'definition-mutation' and 'punctuation'\n\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/);\n\n if (definitionEnd === -1) {\n continue;\n } // find all input variables\n\n\n for (; currentIndex < definitionEnd; currentIndex++) {\n var t = getToken(0);\n\n if (t.type === 'variable') {\n addAlias(t, 'variable-input');\n inputVariables.push(t.content);\n }\n }\n\n currentIndex = definitionEnd + 1;\n }\n\n if (isTokenType(['punctuation', 'property-query']) && getToken(0).content === '{') {\n currentIndex++; // skip opening bracket\n\n addAlias(getToken(0), 'property-mutation');\n\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/);\n\n if (mutationEnd === -1) {\n continue;\n } // give references to input variables a special alias\n\n\n for (var i = currentIndex; i < mutationEnd; i++) {\n var varToken = validTokens[i];\n\n if (varToken.type === 'variable' && inputVariables.indexOf(varToken.content) >= 0) {\n addAlias(varToken, 'variable-input');\n }\n }\n }\n }\n }\n }\n });\n}\n\nvar graphql$1 = graphql_1;\nvar markup_1 = markup$1;\nmarkup$1.displayName = 'markup';\nmarkup$1.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss'];\n\nfunction markup$1(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [{\n pattern: /^=/,\n alias: 'attr-equals'\n }, /\"|'/]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [{\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n }, /&#x?[\\da-f]{1,8};/i]\n };\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity'];\n Prism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup; // Plugin to make entity title show the real entity, idea by Roman Komarov\n\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&');\n }\n });\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {};\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n };\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n };\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n };\n var def = {};\n def[tagName] = {\n pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () {\n return tagName;\n }), 'i'),\n lookbehind: true,\n greedy: true,\n inside: inside\n };\n Prism.languages.insertBefore('markup', 'cdata', def);\n }\n });\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function value(attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, 'i'),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [{\n pattern: /^=/,\n alias: 'attr-equals'\n }, /\"|'/]\n }\n }\n }\n });\n }\n });\n Prism.languages.html = Prism.languages.markup;\n Prism.languages.mathml = Prism.languages.markup;\n Prism.languages.svg = Prism.languages.markup;\n Prism.languages.xml = Prism.languages.extend('markup', {});\n Prism.languages.ssml = Prism.languages.xml;\n Prism.languages.atom = Prism.languages.xml;\n Prism.languages.rss = Prism.languages.xml;\n}\n\nvar markup$2 = markup_1;\nvar markdown_1 = markdown;\nmarkdown.displayName = 'markdown';\nmarkdown.aliases = ['md'];\n\nfunction markdown(Prism) {\n (function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner;\n });\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')');\n }\n\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source;\n var tableRow = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function () {\n return tableCell;\n });\n var tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source;\n Prism.languages.markdown = Prism.languages.extend('markup', {});\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'front-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),\n inside: {\n 'table-data-rows': {\n pattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [{\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n }, {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }],\n title: [{\n // title 1\n // =======\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n }, {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n\n },\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n });\n ['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (inside) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside];\n }\n });\n });\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return;\n }\n\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return;\n }\n\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i];\n\n if (token.type !== 'code') {\n walkTokens(token.content);\n continue;\n }\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n\n\n var codeLang = token.content[1];\n var codeBlock = token.content[3];\n\n if (codeLang && codeBlock && codeLang.type === 'code-language' && codeBlock.type === 'code-block' && typeof codeLang.content === 'string') {\n // this might be a language that Prism does not support\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content.replace(/\\b#/g, 'sharp').replace(/\\b\\+\\+/g, 'pp'); // only use the first word\n\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase();\n var alias = 'language-' + lang; // add alias\n\n if (!codeBlock.alias) {\n codeBlock.alias = [alias];\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias];\n } else {\n codeBlock.alias.push(alias);\n }\n }\n }\n }\n\n walkTokens(env.tokens);\n });\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return;\n }\n\n var codeLang = '';\n\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i];\n var match = /language-(.+)/.exec(cls);\n\n if (match) {\n codeLang = match[1];\n break;\n }\n }\n\n var grammar = Prism.languages[codeLang];\n\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16);\n env.attributes['id'] = id;\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id);\n\n if (ele) {\n ele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang);\n }\n });\n }\n } else {\n env.content = Prism.highlight(textContent(env.content.value), grammar, codeLang);\n }\n });\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi');\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n }; // IE 11 doesn't support `String.fromCodePoint`\n\n var fromCodePoint = String.fromCodePoint || String.fromCharCode;\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, ''); // decode known entities\n\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase();\n\n if (code[0] === '#') {\n var value;\n\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16);\n } else {\n value = Number(code.slice(1));\n }\n\n return fromCodePoint(value);\n } else {\n var known = KNOWN_ENTITY_NAMES[code];\n\n if (known) {\n return known;\n } // unable to decode\n\n\n return m;\n }\n });\n return text;\n }\n\n Prism.languages.md = Prism.languages.markdown;\n })(Prism);\n}\n\nvar markdown$1 = markdown_1;\nvar yaml_1 = yaml;\nyaml.displayName = 'yaml';\nyaml.aliases = ['yml'];\n\nfunction yaml(Prism) {\n (function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/; // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n\n var tag = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/; // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n\n var properties = '(?:' + tag.source + '(?:[ \\t]+' + anchorOrAlias.source + ')?|' + anchorOrAlias.source + '(?:[ \\t]+' + tag.source + ')?)'; // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n\n var plainKey = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g, function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source;\n });\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm'; // add m flag\n\n var pattern = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source.replace(/<<prop>>/g, function () {\n return properties;\n }).replace(/<<value>>/g, function () {\n return value;\n });\n return RegExp(pattern, flags);\n }\n\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(/<<prop>>/g, function () {\n return properties;\n })),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source.replace(/<<prop>>/g, function () {\n return properties;\n }).replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')';\n })),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/false|true/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, 'i'),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n };\n Prism.languages.yml = Prism.languages.yaml;\n })(Prism);\n}\n\nvar yaml$1 = yaml_1;\nvar typescript_1 = typescript;\ntypescript.displayName = 'typescript';\ntypescript.aliases = ['ts'];\n\nfunction typescript(Prism) {\n (function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n\n },\n builtin: /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n }); // The keywords TypeScript adds to JavaScript\n\n Prism.languages.typescript.keyword.push(/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/); // doesn't work with TS because TS is too complex\n\n delete Prism.languages.typescript['parameter'];\n delete Prism.languages.typescript['literal-property']; // a version of typescript specifically for highlighting types\n\n var typeInside = Prism.languages.extend('typescript', {});\n delete typeInside['class-name'];\n Prism.languages.typescript['class-name'].inside = typeInside;\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n });\n Prism.languages.ts = Prism.languages.typescript;\n })(Prism);\n}\n\nvar typescript$1 = typescript_1;\nvar refractorJsx = jsx_1;\nvar refractorTypescript = typescript_1;\nvar tsx_1 = tsx;\ntsx.displayName = 'tsx';\ntsx.aliases = [];\n\nfunction tsx(Prism) {\n Prism.register(refractorJsx);\n Prism.register(refractorTypescript);\n\n (function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript);\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript); // doesn't work with TS because TS is too complex\n\n delete Prism.languages.tsx['parameter'];\n delete Prism.languages.tsx['literal-property']; // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n\n var tag = Prism.languages.tsx.tag;\n tag.pattern = RegExp(/(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')', tag.pattern.flags);\n tag.lookbehind = true;\n })(Prism);\n}\n\nvar tsx$1 = tsx_1;\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n} //\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\n\nfunction createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread({}, styleObject, stylesheet[className]);\n }, elementStyle);\n}\n\nfunction createClassNameString(classNames) {\n return classNames.join(' ');\n}\n\nfunction createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\n\nfunction createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _objectSpread({}, properties, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []); // For compatibility with older versions of react-syntax-highlighter\n\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread({}, properties, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return React__default.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}\n\nvar checkForListedLanguage = function checkForListedLanguage(astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n};\n\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return React__default.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n float: 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return React__default.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread({}, defaultLineNumberStyle, customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines;\n var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread({}, properties.style, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n newTree = newTree.concat(flattenCodeTree(node.children, classNames));\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n\n if (stringChild) {\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [newChild];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue; // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\nfunction highlight$1(defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread({}, style['code[class*=\"language-\"]'], style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? Array.isArray(children) ? children[0] : children : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"]);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? React__default.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (!astGenerator) {\n return React__default.createElement(PreTag, preProps, allLineNumbers, React__default.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n\n\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread({}, codeTagProps.style, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread({}, codeTagProps.style, {\n whiteSpace: 'pre'\n });\n }\n\n return React__default.createElement(PreTag, preProps, React__default.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}\n\nvar immutable = extend;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}\n\nvar schema$1 = Schema$2;\nvar proto$1 = Schema$2.prototype;\nproto$1.space = null;\nproto$1.normal = {};\nproto$1.property = {};\n\nfunction Schema$2(property, normal, space) {\n this.property = property;\n this.normal = normal;\n\n if (space) {\n this.space = space;\n }\n}\n\nvar xtend = immutable;\nvar Schema$1 = schema$1;\nvar merge_1 = merge$1;\n\nfunction merge$1(definitions) {\n var length = definitions.length;\n var property = [];\n var normal = [];\n var index = -1;\n var info;\n var space;\n\n while (++index < length) {\n info = definitions[index];\n property.push(info.property);\n normal.push(info.normal);\n space = info.space;\n }\n\n return new Schema$1(xtend.apply(null, property), xtend.apply(null, normal), space);\n}\n\nvar normalize_1 = normalize$3;\n\nfunction normalize$3(value) {\n return value.toLowerCase();\n}\n\nvar info = Info$2;\nvar proto = Info$2.prototype;\nproto.space = null;\nproto.attribute = null;\nproto.property = null;\nproto.boolean = false;\nproto.booleanish = false;\nproto.overloadedBoolean = false;\nproto.number = false;\nproto.commaSeparated = false;\nproto.spaceSeparated = false;\nproto.commaOrSpaceSeparated = false;\nproto.mustUseProperty = false;\nproto.defined = false;\n\nfunction Info$2(property, attribute) {\n this.property = property;\n this.attribute = attribute;\n}\n\nvar types$3 = {};\nvar powers = 0;\ntypes$3.boolean = increment();\ntypes$3.booleanish = increment();\ntypes$3.overloadedBoolean = increment();\ntypes$3.number = increment();\ntypes$3.spaceSeparated = increment();\ntypes$3.commaSeparated = increment();\ntypes$3.commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return Math.pow(2, ++powers);\n}\n\nvar Info$1 = info;\nvar types$2 = types$3;\nvar definedInfo = DefinedInfo$2;\nDefinedInfo$2.prototype = new Info$1();\nDefinedInfo$2.prototype.defined = true;\nvar checks = ['boolean', 'booleanish', 'overloadedBoolean', 'number', 'commaSeparated', 'spaceSeparated', 'commaOrSpaceSeparated'];\nvar checksLength = checks.length;\n\nfunction DefinedInfo$2(property, attribute, mask, space) {\n var index = -1;\n var check;\n mark(this, 'space', space);\n Info$1.call(this, property, attribute);\n\n while (++index < checksLength) {\n check = checks[index];\n mark(this, check, (mask & types$2[check]) === types$2[check]);\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value;\n }\n}\n\nvar normalize$2 = normalize_1;\nvar Schema = schema$1;\nvar DefinedInfo$1 = definedInfo;\nvar create_1 = create$5;\n\nfunction create$5(definition) {\n var space = definition.space;\n var mustUseProperty = definition.mustUseProperty || [];\n var attributes = definition.attributes || {};\n var props = definition.properties;\n var transform = definition.transform;\n var property = {};\n var normal = {};\n var prop;\n var info;\n\n for (prop in props) {\n info = new DefinedInfo$1(prop, transform(attributes, prop), props[prop], space);\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n normal[normalize$2(prop)] = prop;\n normal[normalize$2(info.attribute)] = prop;\n }\n\n return new Schema(property, normal, space);\n}\n\nvar create$4 = create_1;\nvar xlink$1 = create$4({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase();\n}\n\nvar create$3 = create_1;\nvar xml$1 = create$3({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n});\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase();\n}\n\nvar caseSensitiveTransform_1 = caseSensitiveTransform$1;\n\nfunction caseSensitiveTransform$1(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute;\n}\n\nvar caseSensitiveTransform = caseSensitiveTransform_1;\nvar caseInsensitiveTransform_1 = caseInsensitiveTransform$2;\n\nfunction caseInsensitiveTransform$2(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase());\n}\n\nvar create$2 = create_1;\nvar caseInsensitiveTransform$1 = caseInsensitiveTransform_1;\nvar xmlns$1 = create$2({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform$1,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n});\nvar types$1 = types$3;\nvar create$1 = create_1;\nvar booleanish$1 = types$1.booleanish;\nvar number$1 = types$1.number;\nvar spaceSeparated$1 = types$1.spaceSeparated;\nvar aria$1 = create$1({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish$1,\n ariaAutoComplete: null,\n ariaBusy: booleanish$1,\n ariaChecked: booleanish$1,\n ariaColCount: number$1,\n ariaColIndex: number$1,\n ariaColSpan: number$1,\n ariaControls: spaceSeparated$1,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated$1,\n ariaDetails: null,\n ariaDisabled: booleanish$1,\n ariaDropEffect: spaceSeparated$1,\n ariaErrorMessage: null,\n ariaExpanded: booleanish$1,\n ariaFlowTo: spaceSeparated$1,\n ariaGrabbed: booleanish$1,\n ariaHasPopup: null,\n ariaHidden: booleanish$1,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated$1,\n ariaLevel: number$1,\n ariaLive: null,\n ariaModal: booleanish$1,\n ariaMultiLine: booleanish$1,\n ariaMultiSelectable: booleanish$1,\n ariaOrientation: null,\n ariaOwns: spaceSeparated$1,\n ariaPlaceholder: null,\n ariaPosInSet: number$1,\n ariaPressed: booleanish$1,\n ariaReadOnly: booleanish$1,\n ariaRelevant: null,\n ariaRequired: booleanish$1,\n ariaRoleDescription: spaceSeparated$1,\n ariaRowCount: number$1,\n ariaRowIndex: number$1,\n ariaRowSpan: number$1,\n ariaSelected: booleanish$1,\n ariaSetSize: number$1,\n ariaSort: null,\n ariaValueMax: number$1,\n ariaValueMin: number$1,\n ariaValueNow: number$1,\n ariaValueText: null,\n role: null\n }\n});\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase();\n}\n\nvar types = types$3;\nvar create = create_1;\nvar caseInsensitiveTransform = caseInsensitiveTransform_1;\nvar boolean = types.boolean;\nvar overloadedBoolean = types.overloadedBoolean;\nvar booleanish = types.booleanish;\nvar number = types.number;\nvar spaceSeparated = types.spaceSeparated;\nvar commaSeparated = types.commaSeparated;\nvar html$2 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: number,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n char: null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: boolean,\n // Lists. Use CSS to reduce space between items instead\n declare: boolean,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: number,\n // `<img>` and `<object>`\n leftMargin: number,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: number,\n // `<body>`\n marginWidth: number,\n // `<body>`\n noResize: boolean,\n // `<frame>`\n noHref: boolean,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: number,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: booleanish,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: number,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number,\n // `<img>` and `<object>`\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});\nvar merge = merge_1;\nvar xlink = xlink$1;\nvar xml = xml$1;\nvar xmlns = xmlns$1;\nvar aria = aria$1;\nvar html$1 = html$2;\nvar html_1$1 = merge([xml, xlink, xmlns, aria, html$1]);\nvar normalize$1 = normalize_1;\nvar DefinedInfo = definedInfo;\nvar Info = info;\nvar data = 'data';\nvar find_1 = find$1;\nvar valid = /^data[-\\w.:]+$/i;\nvar dash$1 = /-[a-z]/g;\nvar cap$1 = /[A-Z]/g;\n\nfunction find$1(schema, value) {\n var normal = normalize$1(value);\n var prop = value;\n var Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]];\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value);\n } else {\n value = datasetToAttribute(value);\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value);\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash$1, camelcase);\n return data + value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4);\n\n if (dash$1.test(value)) {\n return property;\n }\n\n value = value.replace(cap$1, kebab);\n\n if (value.charAt(0) !== '-') {\n value = '-' + value;\n }\n\n return data + value;\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase();\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase();\n}\n\nvar hastUtilParseSelector = parse$3;\nvar search = /[#.]/g; // Create a hast element from a simple CSS selector.\n\nfunction parse$3(selector, defaultTagName) {\n var value = selector || '';\n var name = defaultTagName || 'div';\n var props = {};\n var start = 0;\n var subvalue;\n var previous;\n var match;\n\n while (start < value.length) {\n search.lastIndex = start;\n match = search.exec(value);\n subvalue = value.slice(start, match ? match.index : value.length);\n\n if (subvalue) {\n if (!previous) {\n name = subvalue;\n } else if (previous === '#') {\n props.id = subvalue;\n } else if (props.className) {\n props.className.push(subvalue);\n } else {\n props.className = [subvalue];\n }\n\n start += subvalue.length;\n }\n\n if (match) {\n previous = match[0];\n start++;\n }\n }\n\n return {\n type: 'element',\n tagName: name,\n properties: props,\n children: []\n };\n}\n\nvar spaceSeparatedTokens = {};\nspaceSeparatedTokens.parse = parse$2;\nspaceSeparatedTokens.stringify = stringify$2;\nvar empty$2 = '';\nvar space$2 = ' ';\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g;\n\nfunction parse$2(value) {\n var input = String(value || empty$2).trim();\n return input === empty$2 ? [] : input.split(whiteSpace);\n}\n\nfunction stringify$2(values) {\n return values.join(space$2).trim();\n}\n\nvar commaSeparatedTokens = {};\ncommaSeparatedTokens.parse = parse$1;\ncommaSeparatedTokens.stringify = stringify$1;\nvar comma$1 = ',';\nvar space$1 = ' ';\nvar empty$1 = ''; // Parse comma-separated tokens to an array.\n\nfunction parse$1(value) {\n var values = [];\n var input = String(value || empty$1);\n var index = input.indexOf(comma$1);\n var lastIndex = 0;\n var end = false;\n var val;\n\n while (!end) {\n if (index === -1) {\n index = input.length;\n end = true;\n }\n\n val = input.slice(lastIndex, index).trim();\n\n if (val || !end) {\n values.push(val);\n }\n\n lastIndex = index + 1;\n index = input.indexOf(comma$1, lastIndex);\n }\n\n return values;\n} // Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\n\n\nfunction stringify$1(values, options) {\n var settings = options || {};\n var left = settings.padLeft === false ? empty$1 : space$1;\n var right = settings.padRight ? space$1 : empty$1; // Ensure the last empty entry is seen.\n\n if (values[values.length - 1] === empty$1) {\n values = values.concat(empty$1);\n }\n\n return values.join(right + comma$1 + left).trim();\n}\n\nvar find = find_1;\nvar normalize = normalize_1;\nvar parseSelector = hastUtilParseSelector;\nvar spaces = spaceSeparatedTokens.parse;\nvar commas = commaSeparatedTokens.parse;\nvar factory_1 = factory$1;\nvar own$3 = {}.hasOwnProperty;\n\nfunction factory$1(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null;\n return h; // Hyperscript compatible DSL for creating virtual hast trees.\n\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName);\n var children = Array.prototype.slice.call(arguments, 2);\n var name = node.tagName.toLowerCase();\n var property;\n node.tagName = adjust && own$3.call(adjust, name) ? adjust[name] : name;\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties);\n properties = null;\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property]);\n }\n }\n\n addChild(node.children, children);\n\n if (node.tagName === 'template') {\n node.content = {\n type: 'root',\n children: node.children\n };\n node.children = [];\n }\n\n return node;\n }\n\n function addProperty(properties, key, value) {\n var info;\n var property;\n var result; // Ignore nullish and NaN values.\n\n if (value === null || value === undefined || value !== value) {\n return;\n }\n\n info = find(schema, key);\n property = info.property;\n result = value; // Handle list values.\n\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result);\n } else if (info.commaSeparated) {\n result = commas(result);\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '));\n }\n } // Accept `object` on style.\n\n\n if (property === 'style' && typeof value !== 'string') {\n result = style(result);\n } // Class-names (which can be added both on the `selector` and here).\n\n\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result);\n }\n\n properties[property] = parsePrimitives(info, property, result);\n }\n}\n\nfunction isChildren(value, node) {\n return typeof value === 'string' || 'length' in value || isNode(node.tagName, value);\n}\n\nfunction isNode(tagName, value) {\n var type = value.type;\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false;\n }\n\n if (_typeof(value.children) === 'object' && 'length' in value.children) {\n return true;\n }\n\n type = type.toLowerCase();\n\n if (tagName === 'button') {\n return type !== 'menu' && type !== 'submit' && type !== 'reset' && type !== 'button';\n }\n\n return 'value' in value;\n}\n\nfunction addChild(nodes, value) {\n var index;\n var length;\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({\n type: 'text',\n value: String(value)\n });\n return;\n }\n\n if (_typeof(value) === 'object' && 'length' in value) {\n index = -1;\n length = value.length;\n\n while (++index < length) {\n addChild(nodes, value[index]);\n }\n\n return;\n }\n\n if (_typeof(value) !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`');\n }\n\n nodes.push(value);\n} // Parse a (list of) primitives.\n\n\nfunction parsePrimitives(info, name, value) {\n var index;\n var length;\n var result;\n\n if (_typeof(value) !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value);\n }\n\n length = value.length;\n index = -1;\n result = [];\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index]);\n }\n\n return result;\n} // Parse a single primitives.\n\n\nfunction parsePrimitive(info, name, value) {\n var result = value;\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result);\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (typeof result === 'string' && (result === '' || normalize(value) === normalize(name))) {\n result = true;\n }\n }\n\n return result;\n}\n\nfunction style(value) {\n var result = [];\n var key;\n\n for (key in value) {\n result.push([key, value[key]].join(': '));\n }\n\n return result.join('; ');\n}\n\nfunction createAdjustMap(values) {\n var length = values.length;\n var index = -1;\n var result = {};\n var value;\n\n while (++index < length) {\n value = values[index];\n result[value.toLowerCase()] = value;\n }\n\n return result;\n}\n\nvar schema = html_1$1;\nvar factory = factory_1;\nvar html = factory(schema, 'div');\nhtml.displayName = 'html';\nvar html_1 = html;\nvar hastscript = html_1;\nvar AElig$1 = \"Æ\";\nvar AMP$1 = \"&\";\nvar Aacute$1 = \"Á\";\nvar Acirc$1 = \"Â\";\nvar Agrave$1 = \"À\";\nvar Aring$1 = \"Å\";\nvar Atilde$1 = \"Ã\";\nvar Auml$1 = \"Ä\";\nvar COPY$1 = \"©\";\nvar Ccedil$1 = \"Ç\";\nvar ETH$1 = \"Ð\";\nvar Eacute$1 = \"É\";\nvar Ecirc$1 = \"Ê\";\nvar Egrave$1 = \"È\";\nvar Euml$1 = \"Ë\";\nvar GT$1 = \">\";\nvar Iacute$1 = \"Í\";\nvar Icirc$1 = \"Î\";\nvar Igrave$1 = \"Ì\";\nvar Iuml$1 = \"Ï\";\nvar LT$1 = \"<\";\nvar Ntilde$1 = \"Ñ\";\nvar Oacute$1 = \"Ó\";\nvar Ocirc$1 = \"Ô\";\nvar Ograve$1 = \"Ò\";\nvar Oslash$1 = \"Ø\";\nvar Otilde$1 = \"Õ\";\nvar Ouml$1 = \"Ö\";\nvar QUOT$1 = \"\\\"\";\nvar REG$1 = \"®\";\nvar THORN$1 = \"Þ\";\nvar Uacute$1 = \"Ú\";\nvar Ucirc$1 = \"Û\";\nvar Ugrave$1 = \"Ù\";\nvar Uuml$1 = \"Ü\";\nvar Yacute$1 = \"Ý\";\nvar aacute$1 = \"á\";\nvar acirc$1 = \"â\";\nvar acute$1 = \"´\";\nvar aelig$1 = \"æ\";\nvar agrave$1 = \"à\";\nvar amp$1 = \"&\";\nvar aring$1 = \"å\";\nvar atilde$1 = \"ã\";\nvar auml$1 = \"ä\";\nvar brvbar$1 = \"¦\";\nvar ccedil$1 = \"ç\";\nvar cedil$1 = \"¸\";\nvar cent$1 = \"¢\";\nvar copy$1 = \"©\";\nvar curren$1 = \"¤\";\nvar deg$1 = \"°\";\nvar divide$1 = \"÷\";\nvar eacute$1 = \"é\";\nvar ecirc$1 = \"ê\";\nvar egrave$1 = \"è\";\nvar eth$1 = \"ð\";\nvar euml$1 = \"ë\";\nvar frac12$1 = \"½\";\nvar frac14$1 = \"¼\";\nvar frac34$1 = \"¾\";\nvar gt$1 = \">\";\nvar iacute$1 = \"í\";\nvar icirc$1 = \"î\";\nvar iexcl$1 = \"¡\";\nvar igrave$1 = \"ì\";\nvar iquest$1 = \"¿\";\nvar iuml$1 = \"ï\";\nvar laquo$1 = \"«\";\nvar lt$1 = \"<\";\nvar macr$1 = \"¯\";\nvar micro$1 = \"µ\";\nvar middot$1 = \"·\";\nvar nbsp$1 = \" \";\nvar not$1 = \"¬\";\nvar ntilde$1 = \"ñ\";\nvar oacute$1 = \"ó\";\nvar ocirc$1 = \"ô\";\nvar ograve$1 = \"ò\";\nvar ordf$1 = \"ª\";\nvar ordm$1 = \"º\";\nvar oslash$1 = \"ø\";\nvar otilde$1 = \"õ\";\nvar ouml$1 = \"ö\";\nvar para$1 = \"¶\";\nvar plusmn$1 = \"±\";\nvar pound$1 = \"£\";\nvar quot$1 = \"\\\"\";\nvar raquo$1 = \"»\";\nvar reg$1 = \"®\";\nvar sect$1 = \"§\";\nvar shy$1 = \"­\";\nvar sup1$1 = \"¹\";\nvar sup2$1 = \"²\";\nvar sup3$1 = \"³\";\nvar szlig$1 = \"ß\";\nvar thorn$1 = \"þ\";\nvar times$1 = \"×\";\nvar uacute$1 = \"ú\";\nvar ucirc$1 = \"û\";\nvar ugrave$1 = \"ù\";\nvar uml$1 = \"¨\";\nvar uuml$1 = \"ü\";\nvar yacute$1 = \"ý\";\nvar yen$1 = \"¥\";\nvar yuml$1 = \"ÿ\";\nvar require$$0$1 = {\n AElig: AElig$1,\n AMP: AMP$1,\n Aacute: Aacute$1,\n Acirc: Acirc$1,\n Agrave: Agrave$1,\n Aring: Aring$1,\n Atilde: Atilde$1,\n Auml: Auml$1,\n COPY: COPY$1,\n Ccedil: Ccedil$1,\n ETH: ETH$1,\n Eacute: Eacute$1,\n Ecirc: Ecirc$1,\n Egrave: Egrave$1,\n Euml: Euml$1,\n GT: GT$1,\n Iacute: Iacute$1,\n Icirc: Icirc$1,\n Igrave: Igrave$1,\n Iuml: Iuml$1,\n LT: LT$1,\n Ntilde: Ntilde$1,\n Oacute: Oacute$1,\n Ocirc: Ocirc$1,\n Ograve: Ograve$1,\n Oslash: Oslash$1,\n Otilde: Otilde$1,\n Ouml: Ouml$1,\n QUOT: QUOT$1,\n REG: REG$1,\n THORN: THORN$1,\n Uacute: Uacute$1,\n Ucirc: Ucirc$1,\n Ugrave: Ugrave$1,\n Uuml: Uuml$1,\n Yacute: Yacute$1,\n aacute: aacute$1,\n acirc: acirc$1,\n acute: acute$1,\n aelig: aelig$1,\n agrave: agrave$1,\n amp: amp$1,\n aring: aring$1,\n atilde: atilde$1,\n auml: auml$1,\n brvbar: brvbar$1,\n ccedil: ccedil$1,\n cedil: cedil$1,\n cent: cent$1,\n copy: copy$1,\n curren: curren$1,\n deg: deg$1,\n divide: divide$1,\n eacute: eacute$1,\n ecirc: ecirc$1,\n egrave: egrave$1,\n eth: eth$1,\n euml: euml$1,\n frac12: frac12$1,\n frac14: frac14$1,\n frac34: frac34$1,\n gt: gt$1,\n iacute: iacute$1,\n icirc: icirc$1,\n iexcl: iexcl$1,\n igrave: igrave$1,\n iquest: iquest$1,\n iuml: iuml$1,\n laquo: laquo$1,\n lt: lt$1,\n macr: macr$1,\n micro: micro$1,\n middot: middot$1,\n nbsp: nbsp$1,\n not: not$1,\n ntilde: ntilde$1,\n oacute: oacute$1,\n ocirc: ocirc$1,\n ograve: ograve$1,\n ordf: ordf$1,\n ordm: ordm$1,\n oslash: oslash$1,\n otilde: otilde$1,\n ouml: ouml$1,\n para: para$1,\n plusmn: plusmn$1,\n pound: pound$1,\n quot: quot$1,\n raquo: raquo$1,\n reg: reg$1,\n sect: sect$1,\n shy: shy$1,\n sup1: sup1$1,\n sup2: sup2$1,\n sup3: sup3$1,\n szlig: szlig$1,\n thorn: thorn$1,\n times: times$1,\n uacute: uacute$1,\n ucirc: ucirc$1,\n ugrave: ugrave$1,\n uml: uml$1,\n uuml: uuml$1,\n yacute: yacute$1,\n yen: yen$1,\n yuml: yuml$1\n};\nvar require$$1 = {\n \"0\": \"�\",\n \"128\": \"€\",\n \"130\": \"‚\",\n \"131\": \"ƒ\",\n \"132\": \"„\",\n \"133\": \"…\",\n \"134\": \"†\",\n \"135\": \"‡\",\n \"136\": \"ˆ\",\n \"137\": \"‰\",\n \"138\": \"Š\",\n \"139\": \"‹\",\n \"140\": \"Œ\",\n \"142\": \"Ž\",\n \"145\": \"‘\",\n \"146\": \"’\",\n \"147\": \"“\",\n \"148\": \"”\",\n \"149\": \"•\",\n \"150\": \"–\",\n \"151\": \"—\",\n \"152\": \"˜\",\n \"153\": \"™\",\n \"154\": \"š\",\n \"155\": \"›\",\n \"156\": \"œ\",\n \"158\": \"ž\",\n \"159\": \"Ÿ\"\n};\nvar isDecimal = decimal$2; // Check if the given character code, or the character code at the first\n// character, is decimal.\n\nfunction decimal$2(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 48 && code <= 57;\n /* 0-9 */\n}\n\nvar isHexadecimal = hexadecimal$1; // Check if the given character code, or the character code at the first\n// character, is hexadecimal.\n\nfunction hexadecimal$1(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97\n /* a */\n && code <= 102\n /* z */\n || code >= 65\n /* A */\n && code <= 70\n /* Z */\n || code >= 48\n /* A */\n && code <= 57\n /* Z */\n ;\n}\n\nvar isAlphabetical = alphabetical$1; // Check if the given character code, or the character code at the first\n// character, is alphabetical.\n\nfunction alphabetical$1(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97 && code <= 122\n /* a-z */\n || code >= 65 && code <= 90\n /* A-Z */\n ;\n}\n\nvar alphabetical = isAlphabetical;\nvar decimal$1 = isDecimal;\nvar isAlphanumerical = alphanumerical$1; // Check if the given character code, or the character code at the first\n// character, is alphanumerical.\n\nfunction alphanumerical$1(character) {\n return alphabetical(character) || decimal$1(character);\n}\n\nvar AEli = \"Æ\";\nvar AElig = \"Æ\";\nvar AM = \"&\";\nvar AMP = \"&\";\nvar Aacut = \"Á\";\nvar Aacute = \"Á\";\nvar Abreve = \"Ă\";\nvar Acir = \"Â\";\nvar Acirc = \"Â\";\nvar Acy = \"А\";\nvar Afr = \"𝔄\";\nvar Agrav = \"À\";\nvar Agrave = \"À\";\nvar Alpha = \"Α\";\nvar Amacr = \"Ā\";\nvar And = \"⩓\";\nvar Aogon = \"Ą\";\nvar Aopf = \"𝔸\";\nvar ApplyFunction = \"⁡\";\nvar Arin = \"Å\";\nvar Aring = \"Å\";\nvar Ascr = \"𝒜\";\nvar Assign = \"≔\";\nvar Atild = \"Ã\";\nvar Atilde = \"Ã\";\nvar Aum = \"Ä\";\nvar Auml = \"Ä\";\nvar Backslash = \"∖\";\nvar Barv = \"⫧\";\nvar Barwed = \"⌆\";\nvar Bcy = \"Б\";\nvar Because = \"∵\";\nvar Bernoullis = \"ℬ\";\nvar Beta = \"Β\";\nvar Bfr = \"𝔅\";\nvar Bopf = \"𝔹\";\nvar Breve = \"˘\";\nvar Bscr = \"ℬ\";\nvar Bumpeq = \"≎\";\nvar CHcy = \"Ч\";\nvar COP = \"©\";\nvar COPY = \"©\";\nvar Cacute = \"Ć\";\nvar Cap = \"⋒\";\nvar CapitalDifferentialD = \"ⅅ\";\nvar Cayleys = \"ℭ\";\nvar Ccaron = \"Č\";\nvar Ccedi = \"Ç\";\nvar Ccedil = \"Ç\";\nvar Ccirc = \"Ĉ\";\nvar Cconint = \"∰\";\nvar Cdot = \"Ċ\";\nvar Cedilla = \"¸\";\nvar CenterDot = \"·\";\nvar Cfr = \"ℭ\";\nvar Chi = \"Χ\";\nvar CircleDot = \"⊙\";\nvar CircleMinus = \"⊖\";\nvar CirclePlus = \"⊕\";\nvar CircleTimes = \"⊗\";\nvar ClockwiseContourIntegral = \"∲\";\nvar CloseCurlyDoubleQuote = \"”\";\nvar CloseCurlyQuote = \"’\";\nvar Colon = \"∷\";\nvar Colone = \"⩴\";\nvar Congruent = \"≡\";\nvar Conint = \"∯\";\nvar ContourIntegral = \"∮\";\nvar Copf = \"ℂ\";\nvar Coproduct = \"∐\";\nvar CounterClockwiseContourIntegral = \"∳\";\nvar Cross = \"⨯\";\nvar Cscr = \"𝒞\";\nvar Cup = \"⋓\";\nvar CupCap = \"≍\";\nvar DD = \"ⅅ\";\nvar DDotrahd = \"⤑\";\nvar DJcy = \"Ђ\";\nvar DScy = \"Ѕ\";\nvar DZcy = \"Џ\";\nvar Dagger = \"‡\";\nvar Darr = \"↡\";\nvar Dashv = \"⫤\";\nvar Dcaron = \"Ď\";\nvar Dcy = \"Д\";\nvar Del = \"∇\";\nvar Delta = \"Δ\";\nvar Dfr = \"𝔇\";\nvar DiacriticalAcute = \"´\";\nvar DiacriticalDot = \"˙\";\nvar DiacriticalDoubleAcute = \"˝\";\nvar DiacriticalGrave = \"`\";\nvar DiacriticalTilde = \"˜\";\nvar Diamond = \"⋄\";\nvar DifferentialD = \"ⅆ\";\nvar Dopf = \"𝔻\";\nvar Dot = \"¨\";\nvar DotDot = \"⃜\";\nvar DotEqual = \"≐\";\nvar DoubleContourIntegral = \"∯\";\nvar DoubleDot = \"¨\";\nvar DoubleDownArrow = \"⇓\";\nvar DoubleLeftArrow = \"⇐\";\nvar DoubleLeftRightArrow = \"⇔\";\nvar DoubleLeftTee = \"⫤\";\nvar DoubleLongLeftArrow = \"⟸\";\nvar DoubleLongLeftRightArrow = \"⟺\";\nvar DoubleLongRightArrow = \"⟹\";\nvar DoubleRightArrow = \"⇒\";\nvar DoubleRightTee = \"⊨\";\nvar DoubleUpArrow = \"⇑\";\nvar DoubleUpDownArrow = \"⇕\";\nvar DoubleVerticalBar = \"∥\";\nvar DownArrow = \"↓\";\nvar DownArrowBar = \"⤓\";\nvar DownArrowUpArrow = \"⇵\";\nvar DownBreve = \"̑\";\nvar DownLeftRightVector = \"⥐\";\nvar DownLeftTeeVector = \"⥞\";\nvar DownLeftVector = \"↽\";\nvar DownLeftVectorBar = \"⥖\";\nvar DownRightTeeVector = \"⥟\";\nvar DownRightVector = \"⇁\";\nvar DownRightVectorBar = \"⥗\";\nvar DownTee = \"⊤\";\nvar DownTeeArrow = \"↧\";\nvar Downarrow = \"⇓\";\nvar Dscr = \"𝒟\";\nvar Dstrok = \"Đ\";\nvar ENG = \"Ŋ\";\nvar ET = \"Ð\";\nvar ETH = \"Ð\";\nvar Eacut = \"É\";\nvar Eacute = \"É\";\nvar Ecaron = \"Ě\";\nvar Ecir = \"Ê\";\nvar Ecirc = \"Ê\";\nvar Ecy = \"Э\";\nvar Edot = \"Ė\";\nvar Efr = \"𝔈\";\nvar Egrav = \"È\";\nvar Egrave = \"È\";\nvar Element = \"∈\";\nvar Emacr = \"Ē\";\nvar EmptySmallSquare = \"◻\";\nvar EmptyVerySmallSquare = \"▫\";\nvar Eogon = \"Ę\";\nvar Eopf = \"𝔼\";\nvar Epsilon = \"Ε\";\nvar Equal = \"⩵\";\nvar EqualTilde = \"≂\";\nvar Equilibrium = \"⇌\";\nvar Escr = \"ℰ\";\nvar Esim = \"⩳\";\nvar Eta = \"Η\";\nvar Eum = \"Ë\";\nvar Euml = \"Ë\";\nvar Exists = \"∃\";\nvar ExponentialE = \"ⅇ\";\nvar Fcy = \"Ф\";\nvar Ffr = \"𝔉\";\nvar FilledSmallSquare = \"◼\";\nvar FilledVerySmallSquare = \"▪\";\nvar Fopf = \"𝔽\";\nvar ForAll = \"∀\";\nvar Fouriertrf = \"ℱ\";\nvar Fscr = \"ℱ\";\nvar GJcy = \"Ѓ\";\nvar G = \">\";\nvar GT = \">\";\nvar Gamma = \"Γ\";\nvar Gammad = \"Ϝ\";\nvar Gbreve = \"Ğ\";\nvar Gcedil = \"Ģ\";\nvar Gcirc = \"Ĝ\";\nvar Gcy = \"Г\";\nvar Gdot = \"Ġ\";\nvar Gfr = \"𝔊\";\nvar Gg = \"⋙\";\nvar Gopf = \"𝔾\";\nvar GreaterEqual = \"≥\";\nvar GreaterEqualLess = \"⋛\";\nvar GreaterFullEqual = \"≧\";\nvar GreaterGreater = \"⪢\";\nvar GreaterLess = \"≷\";\nvar GreaterSlantEqual = \"⩾\";\nvar GreaterTilde = \"≳\";\nvar Gscr = \"𝒢\";\nvar Gt = \"≫\";\nvar HARDcy = \"Ъ\";\nvar Hacek = \"ˇ\";\nvar Hat = \"^\";\nvar Hcirc = \"Ĥ\";\nvar Hfr = \"ℌ\";\nvar HilbertSpace = \"ℋ\";\nvar Hopf = \"ℍ\";\nvar HorizontalLine = \"─\";\nvar Hscr = \"ℋ\";\nvar Hstrok = \"Ħ\";\nvar HumpDownHump = \"≎\";\nvar HumpEqual = \"≏\";\nvar IEcy = \"Е\";\nvar IJlig = \"IJ\";\nvar IOcy = \"Ё\";\nvar Iacut = \"Í\";\nvar Iacute = \"Í\";\nvar Icir = \"Î\";\nvar Icirc = \"Î\";\nvar Icy = \"И\";\nvar Idot = \"İ\";\nvar Ifr = \"ℑ\";\nvar Igrav = \"Ì\";\nvar Igrave = \"Ì\";\nvar Im = \"ℑ\";\nvar Imacr = \"Ī\";\nvar ImaginaryI = \"ⅈ\";\nvar Implies = \"⇒\";\nvar Int = \"∬\";\nvar Integral = \"∫\";\nvar Intersection = \"⋂\";\nvar InvisibleComma = \"⁣\";\nvar InvisibleTimes = \"⁢\";\nvar Iogon = \"Į\";\nvar Iopf = \"𝕀\";\nvar Iota = \"Ι\";\nvar Iscr = \"ℐ\";\nvar Itilde = \"Ĩ\";\nvar Iukcy = \"І\";\nvar Ium = \"Ï\";\nvar Iuml = \"Ï\";\nvar Jcirc = \"Ĵ\";\nvar Jcy = \"Й\";\nvar Jfr = \"𝔍\";\nvar Jopf = \"𝕁\";\nvar Jscr = \"𝒥\";\nvar Jsercy = \"Ј\";\nvar Jukcy = \"Є\";\nvar KHcy = \"Х\";\nvar KJcy = \"Ќ\";\nvar Kappa = \"Κ\";\nvar Kcedil = \"Ķ\";\nvar Kcy = \"К\";\nvar Kfr = \"𝔎\";\nvar Kopf = \"𝕂\";\nvar Kscr = \"𝒦\";\nvar LJcy = \"Љ\";\nvar L = \"<\";\nvar LT = \"<\";\nvar Lacute = \"Ĺ\";\nvar Lambda = \"Λ\";\nvar Lang = \"⟪\";\nvar Laplacetrf = \"ℒ\";\nvar Larr = \"↞\";\nvar Lcaron = \"Ľ\";\nvar Lcedil = \"Ļ\";\nvar Lcy = \"Л\";\nvar LeftAngleBracket = \"⟨\";\nvar LeftArrow = \"←\";\nvar LeftArrowBar = \"⇤\";\nvar LeftArrowRightArrow = \"⇆\";\nvar LeftCeiling = \"⌈\";\nvar LeftDoubleBracket = \"⟦\";\nvar LeftDownTeeVector = \"⥡\";\nvar LeftDownVector = \"⇃\";\nvar LeftDownVectorBar = \"⥙\";\nvar LeftFloor = \"⌊\";\nvar LeftRightArrow = \"↔\";\nvar LeftRightVector = \"⥎\";\nvar LeftTee = \"⊣\";\nvar LeftTeeArrow = \"↤\";\nvar LeftTeeVector = \"⥚\";\nvar LeftTriangle = \"⊲\";\nvar LeftTriangleBar = \"⧏\";\nvar LeftTriangleEqual = \"⊴\";\nvar LeftUpDownVector = \"⥑\";\nvar LeftUpTeeVector = \"⥠\";\nvar LeftUpVector = \"↿\";\nvar LeftUpVectorBar = \"⥘\";\nvar LeftVector = \"↼\";\nvar LeftVectorBar = \"⥒\";\nvar Leftarrow = \"⇐\";\nvar Leftrightarrow = \"⇔\";\nvar LessEqualGreater = \"⋚\";\nvar LessFullEqual = \"≦\";\nvar LessGreater = \"≶\";\nvar LessLess = \"⪡\";\nvar LessSlantEqual = \"⩽\";\nvar LessTilde = \"≲\";\nvar Lfr = \"𝔏\";\nvar Ll = \"⋘\";\nvar Lleftarrow = \"⇚\";\nvar Lmidot = \"Ŀ\";\nvar LongLeftArrow = \"⟵\";\nvar LongLeftRightArrow = \"⟷\";\nvar LongRightArrow = \"⟶\";\nvar Longleftarrow = \"⟸\";\nvar Longleftrightarrow = \"⟺\";\nvar Longrightarrow = \"⟹\";\nvar Lopf = \"𝕃\";\nvar LowerLeftArrow = \"↙\";\nvar LowerRightArrow = \"↘\";\nvar Lscr = \"ℒ\";\nvar Lsh = \"↰\";\nvar Lstrok = \"Ł\";\nvar Lt = \"≪\";\nvar Mcy = \"М\";\nvar MediumSpace = \" \";\nvar Mellintrf = \"ℳ\";\nvar Mfr = \"𝔐\";\nvar MinusPlus = \"∓\";\nvar Mopf = \"𝕄\";\nvar Mscr = \"ℳ\";\nvar Mu = \"Μ\";\nvar NJcy = \"Њ\";\nvar Nacute = \"Ń\";\nvar Ncaron = \"Ň\";\nvar Ncedil = \"Ņ\";\nvar Ncy = \"Н\";\nvar NegativeMediumSpace = \"​\";\nvar NegativeThickSpace = \"​\";\nvar NegativeThinSpace = \"​\";\nvar NegativeVeryThinSpace = \"​\";\nvar NestedGreaterGreater = \"≫\";\nvar NestedLessLess = \"≪\";\nvar NewLine = \"\\n\";\nvar Nfr = \"𝔑\";\nvar NoBreak = \"⁠\";\nvar NonBreakingSpace = \" \";\nvar Nopf = \"ℕ\";\nvar Not = \"⫬\";\nvar NotCongruent = \"≢\";\nvar NotCupCap = \"≭\";\nvar NotDoubleVerticalBar = \"∦\";\nvar NotElement = \"∉\";\nvar NotEqual = \"≠\";\nvar NotEqualTilde = \"≂̸\";\nvar NotExists = \"∄\";\nvar NotGreater = \"≯\";\nvar NotGreaterEqual = \"≱\";\nvar NotGreaterFullEqual = \"≧̸\";\nvar NotGreaterGreater = \"≫̸\";\nvar NotGreaterLess = \"≹\";\nvar NotGreaterSlantEqual = \"⩾̸\";\nvar NotGreaterTilde = \"≵\";\nvar NotHumpDownHump = \"≎̸\";\nvar NotHumpEqual = \"≏̸\";\nvar NotLeftTriangle = \"⋪\";\nvar NotLeftTriangleBar = \"⧏̸\";\nvar NotLeftTriangleEqual = \"⋬\";\nvar NotLess = \"≮\";\nvar NotLessEqual = \"≰\";\nvar NotLessGreater = \"≸\";\nvar NotLessLess = \"≪̸\";\nvar NotLessSlantEqual = \"⩽̸\";\nvar NotLessTilde = \"≴\";\nvar NotNestedGreaterGreater = \"⪢̸\";\nvar NotNestedLessLess = \"⪡̸\";\nvar NotPrecedes = \"⊀\";\nvar NotPrecedesEqual = \"⪯̸\";\nvar NotPrecedesSlantEqual = \"⋠\";\nvar NotReverseElement = \"∌\";\nvar NotRightTriangle = \"⋫\";\nvar NotRightTriangleBar = \"⧐̸\";\nvar NotRightTriangleEqual = \"⋭\";\nvar NotSquareSubset = \"⊏̸\";\nvar NotSquareSubsetEqual = \"⋢\";\nvar NotSquareSuperset = \"⊐̸\";\nvar NotSquareSupersetEqual = \"⋣\";\nvar NotSubset = \"⊂⃒\";\nvar NotSubsetEqual = \"⊈\";\nvar NotSucceeds = \"⊁\";\nvar NotSucceedsEqual = \"⪰̸\";\nvar NotSucceedsSlantEqual = \"⋡\";\nvar NotSucceedsTilde = \"≿̸\";\nvar NotSuperset = \"⊃⃒\";\nvar NotSupersetEqual = \"⊉\";\nvar NotTilde = \"≁\";\nvar NotTildeEqual = \"≄\";\nvar NotTildeFullEqual = \"≇\";\nvar NotTildeTilde = \"≉\";\nvar NotVerticalBar = \"∤\";\nvar Nscr = \"𝒩\";\nvar Ntild = \"Ñ\";\nvar Ntilde = \"Ñ\";\nvar Nu = \"Ν\";\nvar OElig = \"Œ\";\nvar Oacut = \"Ó\";\nvar Oacute = \"Ó\";\nvar Ocir = \"Ô\";\nvar Ocirc = \"Ô\";\nvar Ocy = \"О\";\nvar Odblac = \"Ő\";\nvar Ofr = \"𝔒\";\nvar Ograv = \"Ò\";\nvar Ograve = \"Ò\";\nvar Omacr = \"Ō\";\nvar Omega = \"Ω\";\nvar Omicron = \"Ο\";\nvar Oopf = \"𝕆\";\nvar OpenCurlyDoubleQuote = \"“\";\nvar OpenCurlyQuote = \"‘\";\nvar Or = \"⩔\";\nvar Oscr = \"𝒪\";\nvar Oslas = \"Ø\";\nvar Oslash = \"Ø\";\nvar Otild = \"Õ\";\nvar Otilde = \"Õ\";\nvar Otimes = \"⨷\";\nvar Oum = \"Ö\";\nvar Ouml = \"Ö\";\nvar OverBar = \"‾\";\nvar OverBrace = \"⏞\";\nvar OverBracket = \"⎴\";\nvar OverParenthesis = \"⏜\";\nvar PartialD = \"∂\";\nvar Pcy = \"П\";\nvar Pfr = \"𝔓\";\nvar Phi = \"Φ\";\nvar Pi = \"Π\";\nvar PlusMinus = \"±\";\nvar Poincareplane = \"ℌ\";\nvar Popf = \"ℙ\";\nvar Pr = \"⪻\";\nvar Precedes = \"≺\";\nvar PrecedesEqual = \"⪯\";\nvar PrecedesSlantEqual = \"≼\";\nvar PrecedesTilde = \"≾\";\nvar Prime = \"″\";\nvar Product = \"∏\";\nvar Proportion = \"∷\";\nvar Proportional = \"∝\";\nvar Pscr = \"𝒫\";\nvar Psi = \"Ψ\";\nvar QUO = \"\\\"\";\nvar QUOT = \"\\\"\";\nvar Qfr = \"𝔔\";\nvar Qopf = \"ℚ\";\nvar Qscr = \"𝒬\";\nvar RBarr = \"⤐\";\nvar RE = \"®\";\nvar REG = \"®\";\nvar Racute = \"Ŕ\";\nvar Rang = \"⟫\";\nvar Rarr = \"↠\";\nvar Rarrtl = \"⤖\";\nvar Rcaron = \"Ř\";\nvar Rcedil = \"Ŗ\";\nvar Rcy = \"Р\";\nvar Re = \"ℜ\";\nvar ReverseElement = \"∋\";\nvar ReverseEquilibrium = \"⇋\";\nvar ReverseUpEquilibrium = \"⥯\";\nvar Rfr = \"ℜ\";\nvar Rho = \"Ρ\";\nvar RightAngleBracket = \"⟩\";\nvar RightArrow = \"→\";\nvar RightArrowBar = \"⇥\";\nvar RightArrowLeftArrow = \"⇄\";\nvar RightCeiling = \"⌉\";\nvar RightDoubleBracket = \"⟧\";\nvar RightDownTeeVector = \"⥝\";\nvar RightDownVector = \"⇂\";\nvar RightDownVectorBar = \"⥕\";\nvar RightFloor = \"⌋\";\nvar RightTee = \"⊢\";\nvar RightTeeArrow = \"↦\";\nvar RightTeeVector = \"⥛\";\nvar RightTriangle = \"⊳\";\nvar RightTriangleBar = \"⧐\";\nvar RightTriangleEqual = \"⊵\";\nvar RightUpDownVector = \"⥏\";\nvar RightUpTeeVector = \"⥜\";\nvar RightUpVector = \"↾\";\nvar RightUpVectorBar = \"⥔\";\nvar RightVector = \"⇀\";\nvar RightVectorBar = \"⥓\";\nvar Rightarrow = \"⇒\";\nvar Ropf = \"ℝ\";\nvar RoundImplies = \"⥰\";\nvar Rrightarrow = \"⇛\";\nvar Rscr = \"ℛ\";\nvar Rsh = \"↱\";\nvar RuleDelayed = \"⧴\";\nvar SHCHcy = \"Щ\";\nvar SHcy = \"Ш\";\nvar SOFTcy = \"Ь\";\nvar Sacute = \"Ś\";\nvar Sc = \"⪼\";\nvar Scaron = \"Š\";\nvar Scedil = \"Ş\";\nvar Scirc = \"Ŝ\";\nvar Scy = \"С\";\nvar Sfr = \"𝔖\";\nvar ShortDownArrow = \"↓\";\nvar ShortLeftArrow = \"←\";\nvar ShortRightArrow = \"→\";\nvar ShortUpArrow = \"↑\";\nvar Sigma = \"Σ\";\nvar SmallCircle = \"∘\";\nvar Sopf = \"𝕊\";\nvar Sqrt = \"√\";\nvar Square = \"□\";\nvar SquareIntersection = \"⊓\";\nvar SquareSubset = \"⊏\";\nvar SquareSubsetEqual = \"⊑\";\nvar SquareSuperset = \"⊐\";\nvar SquareSupersetEqual = \"⊒\";\nvar SquareUnion = \"⊔\";\nvar Sscr = \"𝒮\";\nvar Star = \"⋆\";\nvar Sub = \"⋐\";\nvar Subset = \"⋐\";\nvar SubsetEqual = \"⊆\";\nvar Succeeds = \"≻\";\nvar SucceedsEqual = \"⪰\";\nvar SucceedsSlantEqual = \"≽\";\nvar SucceedsTilde = \"≿\";\nvar SuchThat = \"∋\";\nvar Sum = \"∑\";\nvar Sup = \"⋑\";\nvar Superset = \"⊃\";\nvar SupersetEqual = \"⊇\";\nvar Supset = \"⋑\";\nvar THOR = \"Þ\";\nvar THORN = \"Þ\";\nvar TRADE = \"™\";\nvar TSHcy = \"Ћ\";\nvar TScy = \"Ц\";\nvar Tab = \"\\t\";\nvar Tau = \"Τ\";\nvar Tcaron = \"Ť\";\nvar Tcedil = \"Ţ\";\nvar Tcy = \"Т\";\nvar Tfr = \"𝔗\";\nvar Therefore = \"∴\";\nvar Theta = \"Θ\";\nvar ThickSpace = \"  \";\nvar ThinSpace = \" \";\nvar Tilde = \"∼\";\nvar TildeEqual = \"≃\";\nvar TildeFullEqual = \"≅\";\nvar TildeTilde = \"≈\";\nvar Topf = \"𝕋\";\nvar TripleDot = \"⃛\";\nvar Tscr = \"𝒯\";\nvar Tstrok = \"Ŧ\";\nvar Uacut = \"Ú\";\nvar Uacute = \"Ú\";\nvar Uarr = \"↟\";\nvar Uarrocir = \"⥉\";\nvar Ubrcy = \"Ў\";\nvar Ubreve = \"Ŭ\";\nvar Ucir = \"Û\";\nvar Ucirc = \"Û\";\nvar Ucy = \"У\";\nvar Udblac = \"Ű\";\nvar Ufr = \"𝔘\";\nvar Ugrav = \"Ù\";\nvar Ugrave = \"Ù\";\nvar Umacr = \"Ū\";\nvar UnderBar = \"_\";\nvar UnderBrace = \"⏟\";\nvar UnderBracket = \"⎵\";\nvar UnderParenthesis = \"⏝\";\nvar Union = \"⋃\";\nvar UnionPlus = \"⊎\";\nvar Uogon = \"Ų\";\nvar Uopf = \"𝕌\";\nvar UpArrow = \"↑\";\nvar UpArrowBar = \"⤒\";\nvar UpArrowDownArrow = \"⇅\";\nvar UpDownArrow = \"↕\";\nvar UpEquilibrium = \"⥮\";\nvar UpTee = \"⊥\";\nvar UpTeeArrow = \"↥\";\nvar Uparrow = \"⇑\";\nvar Updownarrow = \"⇕\";\nvar UpperLeftArrow = \"↖\";\nvar UpperRightArrow = \"↗\";\nvar Upsi = \"ϒ\";\nvar Upsilon = \"Υ\";\nvar Uring = \"Ů\";\nvar Uscr = \"𝒰\";\nvar Utilde = \"Ũ\";\nvar Uum = \"Ü\";\nvar Uuml = \"Ü\";\nvar VDash = \"⊫\";\nvar Vbar = \"⫫\";\nvar Vcy = \"В\";\nvar Vdash = \"⊩\";\nvar Vdashl = \"⫦\";\nvar Vee = \"⋁\";\nvar Verbar = \"‖\";\nvar Vert = \"‖\";\nvar VerticalBar = \"∣\";\nvar VerticalLine = \"|\";\nvar VerticalSeparator = \"❘\";\nvar VerticalTilde = \"≀\";\nvar VeryThinSpace = \" \";\nvar Vfr = \"𝔙\";\nvar Vopf = \"𝕍\";\nvar Vscr = \"𝒱\";\nvar Vvdash = \"⊪\";\nvar Wcirc = \"Ŵ\";\nvar Wedge = \"⋀\";\nvar Wfr = \"𝔚\";\nvar Wopf = \"𝕎\";\nvar Wscr = \"𝒲\";\nvar Xfr = \"𝔛\";\nvar Xi = \"Ξ\";\nvar Xopf = \"𝕏\";\nvar Xscr = \"𝒳\";\nvar YAcy = \"Я\";\nvar YIcy = \"Ї\";\nvar YUcy = \"Ю\";\nvar Yacut = \"Ý\";\nvar Yacute = \"Ý\";\nvar Ycirc = \"Ŷ\";\nvar Ycy = \"Ы\";\nvar Yfr = \"𝔜\";\nvar Yopf = \"𝕐\";\nvar Yscr = \"𝒴\";\nvar Yuml = \"Ÿ\";\nvar ZHcy = \"Ж\";\nvar Zacute = \"Ź\";\nvar Zcaron = \"Ž\";\nvar Zcy = \"З\";\nvar Zdot = \"Ż\";\nvar ZeroWidthSpace = \"​\";\nvar Zeta = \"Ζ\";\nvar Zfr = \"ℨ\";\nvar Zopf = \"ℤ\";\nvar Zscr = \"𝒵\";\nvar aacut = \"á\";\nvar aacute = \"á\";\nvar abreve = \"ă\";\nvar ac = \"∾\";\nvar acE = \"∾̳\";\nvar acd = \"∿\";\nvar acir = \"â\";\nvar acirc = \"â\";\nvar acut = \"´\";\nvar acute = \"´\";\nvar acy = \"а\";\nvar aeli = \"æ\";\nvar aelig = \"æ\";\nvar af = \"⁡\";\nvar afr = \"𝔞\";\nvar agrav = \"à\";\nvar agrave = \"à\";\nvar alefsym = \"ℵ\";\nvar aleph = \"ℵ\";\nvar alpha = \"α\";\nvar amacr = \"ā\";\nvar amalg = \"⨿\";\nvar am = \"&\";\nvar amp = \"&\";\nvar and = \"∧\";\nvar andand = \"⩕\";\nvar andd = \"⩜\";\nvar andslope = \"⩘\";\nvar andv = \"⩚\";\nvar ang = \"∠\";\nvar ange = \"⦤\";\nvar angle = \"∠\";\nvar angmsd = \"∡\";\nvar angmsdaa = \"⦨\";\nvar angmsdab = \"⦩\";\nvar angmsdac = \"⦪\";\nvar angmsdad = \"⦫\";\nvar angmsdae = \"⦬\";\nvar angmsdaf = \"⦭\";\nvar angmsdag = \"⦮\";\nvar angmsdah = \"⦯\";\nvar angrt = \"∟\";\nvar angrtvb = \"⊾\";\nvar angrtvbd = \"⦝\";\nvar angsph = \"∢\";\nvar angst = \"Å\";\nvar angzarr = \"⍼\";\nvar aogon = \"ą\";\nvar aopf = \"𝕒\";\nvar ap = \"≈\";\nvar apE = \"⩰\";\nvar apacir = \"⩯\";\nvar ape = \"≊\";\nvar apid = \"≋\";\nvar apos = \"'\";\nvar approx = \"≈\";\nvar approxeq = \"≊\";\nvar arin = \"å\";\nvar aring = \"å\";\nvar ascr = \"𝒶\";\nvar ast = \"*\";\nvar asymp = \"≈\";\nvar asympeq = \"≍\";\nvar atild = \"ã\";\nvar atilde = \"ã\";\nvar aum = \"ä\";\nvar auml = \"ä\";\nvar awconint = \"∳\";\nvar awint = \"⨑\";\nvar bNot = \"⫭\";\nvar backcong = \"≌\";\nvar backepsilon = \"϶\";\nvar backprime = \"‵\";\nvar backsim = \"∽\";\nvar backsimeq = \"⋍\";\nvar barvee = \"⊽\";\nvar barwed = \"⌅\";\nvar barwedge = \"⌅\";\nvar bbrk = \"⎵\";\nvar bbrktbrk = \"⎶\";\nvar bcong = \"≌\";\nvar bcy = \"б\";\nvar bdquo = \"„\";\nvar becaus = \"∵\";\nvar because = \"∵\";\nvar bemptyv = \"⦰\";\nvar bepsi = \"϶\";\nvar bernou = \"ℬ\";\nvar beta = \"β\";\nvar beth = \"ℶ\";\nvar between = \"≬\";\nvar bfr = \"𝔟\";\nvar bigcap = \"⋂\";\nvar bigcirc = \"◯\";\nvar bigcup = \"⋃\";\nvar bigodot = \"⨀\";\nvar bigoplus = \"⨁\";\nvar bigotimes = \"⨂\";\nvar bigsqcup = \"⨆\";\nvar bigstar = \"★\";\nvar bigtriangledown = \"▽\";\nvar bigtriangleup = \"△\";\nvar biguplus = \"⨄\";\nvar bigvee = \"⋁\";\nvar bigwedge = \"⋀\";\nvar bkarow = \"⤍\";\nvar blacklozenge = \"⧫\";\nvar blacksquare = \"▪\";\nvar blacktriangle = \"▴\";\nvar blacktriangledown = \"▾\";\nvar blacktriangleleft = \"◂\";\nvar blacktriangleright = \"▸\";\nvar blank = \"␣\";\nvar blk12 = \"▒\";\nvar blk14 = \"░\";\nvar blk34 = \"▓\";\nvar block = \"█\";\nvar bne = \"=⃥\";\nvar bnequiv = \"≡⃥\";\nvar bnot = \"⌐\";\nvar bopf = \"𝕓\";\nvar bot = \"⊥\";\nvar bottom = \"⊥\";\nvar bowtie = \"⋈\";\nvar boxDL = \"╗\";\nvar boxDR = \"╔\";\nvar boxDl = \"╖\";\nvar boxDr = \"╓\";\nvar boxH = \"═\";\nvar boxHD = \"╦\";\nvar boxHU = \"╩\";\nvar boxHd = \"╤\";\nvar boxHu = \"╧\";\nvar boxUL = \"╝\";\nvar boxUR = \"╚\";\nvar boxUl = \"╜\";\nvar boxUr = \"╙\";\nvar boxV = \"║\";\nvar boxVH = \"╬\";\nvar boxVL = \"╣\";\nvar boxVR = \"╠\";\nvar boxVh = \"╫\";\nvar boxVl = \"╢\";\nvar boxVr = \"╟\";\nvar boxbox = \"⧉\";\nvar boxdL = \"╕\";\nvar boxdR = \"╒\";\nvar boxdl = \"┐\";\nvar boxdr = \"┌\";\nvar boxh = \"─\";\nvar boxhD = \"╥\";\nvar boxhU = \"╨\";\nvar boxhd = \"┬\";\nvar boxhu = \"┴\";\nvar boxminus = \"⊟\";\nvar boxplus = \"⊞\";\nvar boxtimes = \"⊠\";\nvar boxuL = \"╛\";\nvar boxuR = \"╘\";\nvar boxul = \"┘\";\nvar boxur = \"└\";\nvar boxv = \"│\";\nvar boxvH = \"╪\";\nvar boxvL = \"╡\";\nvar boxvR = \"╞\";\nvar boxvh = \"┼\";\nvar boxvl = \"┤\";\nvar boxvr = \"├\";\nvar bprime = \"‵\";\nvar breve = \"˘\";\nvar brvba = \"¦\";\nvar brvbar = \"¦\";\nvar bscr = \"𝒷\";\nvar bsemi = \"⁏\";\nvar bsim = \"∽\";\nvar bsime = \"⋍\";\nvar bsol = \"\\\\\";\nvar bsolb = \"⧅\";\nvar bsolhsub = \"⟈\";\nvar bull = \"•\";\nvar bullet = \"•\";\nvar bump = \"≎\";\nvar bumpE = \"⪮\";\nvar bumpe = \"≏\";\nvar bumpeq = \"≏\";\nvar cacute = \"ć\";\nvar cap = \"∩\";\nvar capand = \"⩄\";\nvar capbrcup = \"⩉\";\nvar capcap = \"⩋\";\nvar capcup = \"⩇\";\nvar capdot = \"⩀\";\nvar caps = \"∩︀\";\nvar caret = \"⁁\";\nvar caron = \"ˇ\";\nvar ccaps = \"⩍\";\nvar ccaron = \"č\";\nvar ccedi = \"ç\";\nvar ccedil = \"ç\";\nvar ccirc = \"ĉ\";\nvar ccups = \"⩌\";\nvar ccupssm = \"⩐\";\nvar cdot = \"ċ\";\nvar cedi = \"¸\";\nvar cedil = \"¸\";\nvar cemptyv = \"⦲\";\nvar cen = \"¢\";\nvar cent = \"¢\";\nvar centerdot = \"·\";\nvar cfr = \"𝔠\";\nvar chcy = \"ч\";\nvar check = \"✓\";\nvar checkmark = \"✓\";\nvar chi = \"χ\";\nvar cir = \"○\";\nvar cirE = \"⧃\";\nvar circ = \"ˆ\";\nvar circeq = \"≗\";\nvar circlearrowleft = \"↺\";\nvar circlearrowright = \"↻\";\nvar circledR = \"®\";\nvar circledS = \"Ⓢ\";\nvar circledast = \"⊛\";\nvar circledcirc = \"⊚\";\nvar circleddash = \"⊝\";\nvar cire = \"≗\";\nvar cirfnint = \"⨐\";\nvar cirmid = \"⫯\";\nvar cirscir = \"⧂\";\nvar clubs = \"♣\";\nvar clubsuit = \"♣\";\nvar colon = \":\";\nvar colone = \"≔\";\nvar coloneq = \"≔\";\nvar comma = \",\";\nvar commat = \"@\";\nvar comp = \"∁\";\nvar compfn = \"∘\";\nvar complement = \"∁\";\nvar complexes = \"ℂ\";\nvar cong = \"≅\";\nvar congdot = \"⩭\";\nvar conint = \"∮\";\nvar copf = \"𝕔\";\nvar coprod = \"∐\";\nvar cop = \"©\";\nvar copy = \"©\";\nvar copysr = \"℗\";\nvar crarr = \"↵\";\nvar cross = \"✗\";\nvar cscr = \"𝒸\";\nvar csub = \"⫏\";\nvar csube = \"⫑\";\nvar csup = \"⫐\";\nvar csupe = \"⫒\";\nvar ctdot = \"⋯\";\nvar cudarrl = \"⤸\";\nvar cudarrr = \"⤵\";\nvar cuepr = \"⋞\";\nvar cuesc = \"⋟\";\nvar cularr = \"↶\";\nvar cularrp = \"⤽\";\nvar cup = \"∪\";\nvar cupbrcap = \"⩈\";\nvar cupcap = \"⩆\";\nvar cupcup = \"⩊\";\nvar cupdot = \"⊍\";\nvar cupor = \"⩅\";\nvar cups = \"∪︀\";\nvar curarr = \"↷\";\nvar curarrm = \"⤼\";\nvar curlyeqprec = \"⋞\";\nvar curlyeqsucc = \"⋟\";\nvar curlyvee = \"⋎\";\nvar curlywedge = \"⋏\";\nvar curre = \"¤\";\nvar curren = \"¤\";\nvar curvearrowleft = \"↶\";\nvar curvearrowright = \"↷\";\nvar cuvee = \"⋎\";\nvar cuwed = \"⋏\";\nvar cwconint = \"∲\";\nvar cwint = \"∱\";\nvar cylcty = \"⌭\";\nvar dArr = \"⇓\";\nvar dHar = \"⥥\";\nvar dagger = \"†\";\nvar daleth = \"ℸ\";\nvar darr = \"↓\";\nvar dash = \"‐\";\nvar dashv = \"⊣\";\nvar dbkarow = \"⤏\";\nvar dblac = \"˝\";\nvar dcaron = \"ď\";\nvar dcy = \"д\";\nvar dd = \"ⅆ\";\nvar ddagger = \"‡\";\nvar ddarr = \"⇊\";\nvar ddotseq = \"⩷\";\nvar de = \"°\";\nvar deg = \"°\";\nvar delta = \"δ\";\nvar demptyv = \"⦱\";\nvar dfisht = \"⥿\";\nvar dfr = \"𝔡\";\nvar dharl = \"⇃\";\nvar dharr = \"⇂\";\nvar diam = \"⋄\";\nvar diamond = \"⋄\";\nvar diamondsuit = \"♦\";\nvar diams = \"♦\";\nvar die = \"¨\";\nvar digamma = \"ϝ\";\nvar disin = \"⋲\";\nvar div = \"÷\";\nvar divid = \"÷\";\nvar divide = \"÷\";\nvar divideontimes = \"⋇\";\nvar divonx = \"⋇\";\nvar djcy = \"ђ\";\nvar dlcorn = \"⌞\";\nvar dlcrop = \"⌍\";\nvar dollar = \"$\";\nvar dopf = \"𝕕\";\nvar dot = \"˙\";\nvar doteq = \"≐\";\nvar doteqdot = \"≑\";\nvar dotminus = \"∸\";\nvar dotplus = \"∔\";\nvar dotsquare = \"⊡\";\nvar doublebarwedge = \"⌆\";\nvar downarrow = \"↓\";\nvar downdownarrows = \"⇊\";\nvar downharpoonleft = \"⇃\";\nvar downharpoonright = \"⇂\";\nvar drbkarow = \"⤐\";\nvar drcorn = \"⌟\";\nvar drcrop = \"⌌\";\nvar dscr = \"𝒹\";\nvar dscy = \"ѕ\";\nvar dsol = \"⧶\";\nvar dstrok = \"đ\";\nvar dtdot = \"⋱\";\nvar dtri = \"▿\";\nvar dtrif = \"▾\";\nvar duarr = \"⇵\";\nvar duhar = \"⥯\";\nvar dwangle = \"⦦\";\nvar dzcy = \"џ\";\nvar dzigrarr = \"⟿\";\nvar eDDot = \"⩷\";\nvar eDot = \"≑\";\nvar eacut = \"é\";\nvar eacute = \"é\";\nvar easter = \"⩮\";\nvar ecaron = \"ě\";\nvar ecir = \"ê\";\nvar ecirc = \"ê\";\nvar ecolon = \"≕\";\nvar ecy = \"э\";\nvar edot = \"ė\";\nvar ee = \"ⅇ\";\nvar efDot = \"≒\";\nvar efr = \"𝔢\";\nvar eg = \"⪚\";\nvar egrav = \"è\";\nvar egrave = \"è\";\nvar egs = \"⪖\";\nvar egsdot = \"⪘\";\nvar el = \"⪙\";\nvar elinters = \"⏧\";\nvar ell = \"ℓ\";\nvar els = \"⪕\";\nvar elsdot = \"⪗\";\nvar emacr = \"ē\";\nvar empty = \"∅\";\nvar emptyset = \"∅\";\nvar emptyv = \"∅\";\nvar emsp13 = \" \";\nvar emsp14 = \" \";\nvar emsp = \" \";\nvar eng = \"ŋ\";\nvar ensp = \" \";\nvar eogon = \"ę\";\nvar eopf = \"𝕖\";\nvar epar = \"⋕\";\nvar eparsl = \"⧣\";\nvar eplus = \"⩱\";\nvar epsi = \"ε\";\nvar epsilon = \"ε\";\nvar epsiv = \"ϵ\";\nvar eqcirc = \"≖\";\nvar eqcolon = \"≕\";\nvar eqsim = \"≂\";\nvar eqslantgtr = \"⪖\";\nvar eqslantless = \"⪕\";\nvar equals = \"=\";\nvar equest = \"≟\";\nvar equiv = \"≡\";\nvar equivDD = \"⩸\";\nvar eqvparsl = \"⧥\";\nvar erDot = \"≓\";\nvar erarr = \"⥱\";\nvar escr = \"ℯ\";\nvar esdot = \"≐\";\nvar esim = \"≂\";\nvar eta = \"η\";\nvar et = \"ð\";\nvar eth = \"ð\";\nvar eum = \"ë\";\nvar euml = \"ë\";\nvar euro = \"€\";\nvar excl = \"!\";\nvar exist = \"∃\";\nvar expectation = \"ℰ\";\nvar exponentiale = \"ⅇ\";\nvar fallingdotseq = \"≒\";\nvar fcy = \"ф\";\nvar female = \"♀\";\nvar ffilig = \"ffi\";\nvar fflig = \"ff\";\nvar ffllig = \"ffl\";\nvar ffr = \"𝔣\";\nvar filig = \"fi\";\nvar fjlig = \"fj\";\nvar flat = \"♭\";\nvar fllig = \"fl\";\nvar fltns = \"▱\";\nvar fnof = \"ƒ\";\nvar fopf = \"𝕗\";\nvar forall = \"∀\";\nvar fork = \"⋔\";\nvar forkv = \"⫙\";\nvar fpartint = \"⨍\";\nvar frac1 = \"¼\";\nvar frac12 = \"½\";\nvar frac13 = \"⅓\";\nvar frac14 = \"¼\";\nvar frac15 = \"⅕\";\nvar frac16 = \"⅙\";\nvar frac18 = \"⅛\";\nvar frac23 = \"⅔\";\nvar frac25 = \"⅖\";\nvar frac3 = \"¾\";\nvar frac34 = \"¾\";\nvar frac35 = \"⅗\";\nvar frac38 = \"⅜\";\nvar frac45 = \"⅘\";\nvar frac56 = \"⅚\";\nvar frac58 = \"⅝\";\nvar frac78 = \"⅞\";\nvar frasl = \"⁄\";\nvar frown = \"⌢\";\nvar fscr = \"𝒻\";\nvar gE = \"≧\";\nvar gEl = \"⪌\";\nvar gacute = \"ǵ\";\nvar gamma = \"γ\";\nvar gammad = \"ϝ\";\nvar gap = \"⪆\";\nvar gbreve = \"ğ\";\nvar gcirc = \"ĝ\";\nvar gcy = \"г\";\nvar gdot = \"ġ\";\nvar ge = \"≥\";\nvar gel = \"⋛\";\nvar geq = \"≥\";\nvar geqq = \"≧\";\nvar geqslant = \"⩾\";\nvar ges = \"⩾\";\nvar gescc = \"⪩\";\nvar gesdot = \"⪀\";\nvar gesdoto = \"⪂\";\nvar gesdotol = \"⪄\";\nvar gesl = \"⋛︀\";\nvar gesles = \"⪔\";\nvar gfr = \"𝔤\";\nvar gg = \"≫\";\nvar ggg = \"⋙\";\nvar gimel = \"ℷ\";\nvar gjcy = \"ѓ\";\nvar gl = \"≷\";\nvar glE = \"⪒\";\nvar gla = \"⪥\";\nvar glj = \"⪤\";\nvar gnE = \"≩\";\nvar gnap = \"⪊\";\nvar gnapprox = \"⪊\";\nvar gne = \"⪈\";\nvar gneq = \"⪈\";\nvar gneqq = \"≩\";\nvar gnsim = \"⋧\";\nvar gopf = \"𝕘\";\nvar grave = \"`\";\nvar gscr = \"ℊ\";\nvar gsim = \"≳\";\nvar gsime = \"⪎\";\nvar gsiml = \"⪐\";\nvar g = \">\";\nvar gt = \">\";\nvar gtcc = \"⪧\";\nvar gtcir = \"⩺\";\nvar gtdot = \"⋗\";\nvar gtlPar = \"⦕\";\nvar gtquest = \"⩼\";\nvar gtrapprox = \"⪆\";\nvar gtrarr = \"⥸\";\nvar gtrdot = \"⋗\";\nvar gtreqless = \"⋛\";\nvar gtreqqless = \"⪌\";\nvar gtrless = \"≷\";\nvar gtrsim = \"≳\";\nvar gvertneqq = \"≩︀\";\nvar gvnE = \"≩︀\";\nvar hArr = \"⇔\";\nvar hairsp = \" \";\nvar half = \"½\";\nvar hamilt = \"ℋ\";\nvar hardcy = \"ъ\";\nvar harr = \"↔\";\nvar harrcir = \"⥈\";\nvar harrw = \"↭\";\nvar hbar = \"ℏ\";\nvar hcirc = \"ĥ\";\nvar hearts = \"♥\";\nvar heartsuit = \"♥\";\nvar hellip = \"…\";\nvar hercon = \"⊹\";\nvar hfr = \"𝔥\";\nvar hksearow = \"⤥\";\nvar hkswarow = \"⤦\";\nvar hoarr = \"⇿\";\nvar homtht = \"∻\";\nvar hookleftarrow = \"↩\";\nvar hookrightarrow = \"↪\";\nvar hopf = \"𝕙\";\nvar horbar = \"―\";\nvar hscr = \"𝒽\";\nvar hslash = \"ℏ\";\nvar hstrok = \"ħ\";\nvar hybull = \"⁃\";\nvar hyphen = \"‐\";\nvar iacut = \"í\";\nvar iacute = \"í\";\nvar ic = \"⁣\";\nvar icir = \"î\";\nvar icirc = \"î\";\nvar icy = \"и\";\nvar iecy = \"е\";\nvar iexc = \"¡\";\nvar iexcl = \"¡\";\nvar iff = \"⇔\";\nvar ifr = \"𝔦\";\nvar igrav = \"ì\";\nvar igrave = \"ì\";\nvar ii = \"ⅈ\";\nvar iiiint = \"⨌\";\nvar iiint = \"∭\";\nvar iinfin = \"⧜\";\nvar iiota = \"℩\";\nvar ijlig = \"ij\";\nvar imacr = \"ī\";\nvar image = \"ℑ\";\nvar imagline = \"ℐ\";\nvar imagpart = \"ℑ\";\nvar imath = \"ı\";\nvar imof = \"⊷\";\nvar imped = \"Ƶ\";\nvar incare = \"℅\";\nvar infin = \"∞\";\nvar infintie = \"⧝\";\nvar inodot = \"ı\";\nvar int = \"∫\";\nvar intcal = \"⊺\";\nvar integers = \"ℤ\";\nvar intercal = \"⊺\";\nvar intlarhk = \"⨗\";\nvar intprod = \"⨼\";\nvar iocy = \"ё\";\nvar iogon = \"į\";\nvar iopf = \"𝕚\";\nvar iota = \"ι\";\nvar iprod = \"⨼\";\nvar iques = \"¿\";\nvar iquest = \"¿\";\nvar iscr = \"𝒾\";\nvar isin = \"∈\";\nvar isinE = \"⋹\";\nvar isindot = \"⋵\";\nvar isins = \"⋴\";\nvar isinsv = \"⋳\";\nvar isinv = \"∈\";\nvar it = \"⁢\";\nvar itilde = \"ĩ\";\nvar iukcy = \"і\";\nvar ium = \"ï\";\nvar iuml = \"ï\";\nvar jcirc = \"ĵ\";\nvar jcy = \"й\";\nvar jfr = \"𝔧\";\nvar jmath = \"ȷ\";\nvar jopf = \"𝕛\";\nvar jscr = \"𝒿\";\nvar jsercy = \"ј\";\nvar jukcy = \"є\";\nvar kappa = \"κ\";\nvar kappav = \"ϰ\";\nvar kcedil = \"ķ\";\nvar kcy = \"к\";\nvar kfr = \"𝔨\";\nvar kgreen = \"ĸ\";\nvar khcy = \"х\";\nvar kjcy = \"ќ\";\nvar kopf = \"𝕜\";\nvar kscr = \"𝓀\";\nvar lAarr = \"⇚\";\nvar lArr = \"⇐\";\nvar lAtail = \"⤛\";\nvar lBarr = \"⤎\";\nvar lE = \"≦\";\nvar lEg = \"⪋\";\nvar lHar = \"⥢\";\nvar lacute = \"ĺ\";\nvar laemptyv = \"⦴\";\nvar lagran = \"ℒ\";\nvar lambda = \"λ\";\nvar lang = \"⟨\";\nvar langd = \"⦑\";\nvar langle = \"⟨\";\nvar lap = \"⪅\";\nvar laqu = \"«\";\nvar laquo = \"«\";\nvar larr = \"←\";\nvar larrb = \"⇤\";\nvar larrbfs = \"⤟\";\nvar larrfs = \"⤝\";\nvar larrhk = \"↩\";\nvar larrlp = \"↫\";\nvar larrpl = \"⤹\";\nvar larrsim = \"⥳\";\nvar larrtl = \"↢\";\nvar lat = \"⪫\";\nvar latail = \"⤙\";\nvar late = \"⪭\";\nvar lates = \"⪭︀\";\nvar lbarr = \"⤌\";\nvar lbbrk = \"❲\";\nvar lbrace = \"{\";\nvar lbrack = \"[\";\nvar lbrke = \"⦋\";\nvar lbrksld = \"⦏\";\nvar lbrkslu = \"⦍\";\nvar lcaron = \"ľ\";\nvar lcedil = \"ļ\";\nvar lceil = \"⌈\";\nvar lcub = \"{\";\nvar lcy = \"л\";\nvar ldca = \"⤶\";\nvar ldquo = \"“\";\nvar ldquor = \"„\";\nvar ldrdhar = \"⥧\";\nvar ldrushar = \"⥋\";\nvar ldsh = \"↲\";\nvar le = \"≤\";\nvar leftarrow = \"←\";\nvar leftarrowtail = \"↢\";\nvar leftharpoondown = \"↽\";\nvar leftharpoonup = \"↼\";\nvar leftleftarrows = \"⇇\";\nvar leftrightarrow = \"↔\";\nvar leftrightarrows = \"⇆\";\nvar leftrightharpoons = \"⇋\";\nvar leftrightsquigarrow = \"↭\";\nvar leftthreetimes = \"⋋\";\nvar leg = \"⋚\";\nvar leq = \"≤\";\nvar leqq = \"≦\";\nvar leqslant = \"⩽\";\nvar les = \"⩽\";\nvar lescc = \"⪨\";\nvar lesdot = \"⩿\";\nvar lesdoto = \"⪁\";\nvar lesdotor = \"⪃\";\nvar lesg = \"⋚︀\";\nvar lesges = \"⪓\";\nvar lessapprox = \"⪅\";\nvar lessdot = \"⋖\";\nvar lesseqgtr = \"⋚\";\nvar lesseqqgtr = \"⪋\";\nvar lessgtr = \"≶\";\nvar lesssim = \"≲\";\nvar lfisht = \"⥼\";\nvar lfloor = \"⌊\";\nvar lfr = \"𝔩\";\nvar lg = \"≶\";\nvar lgE = \"⪑\";\nvar lhard = \"↽\";\nvar lharu = \"↼\";\nvar lharul = \"⥪\";\nvar lhblk = \"▄\";\nvar ljcy = \"љ\";\nvar ll = \"≪\";\nvar llarr = \"⇇\";\nvar llcorner = \"⌞\";\nvar llhard = \"⥫\";\nvar lltri = \"◺\";\nvar lmidot = \"ŀ\";\nvar lmoust = \"⎰\";\nvar lmoustache = \"⎰\";\nvar lnE = \"≨\";\nvar lnap = \"⪉\";\nvar lnapprox = \"⪉\";\nvar lne = \"⪇\";\nvar lneq = \"⪇\";\nvar lneqq = \"≨\";\nvar lnsim = \"⋦\";\nvar loang = \"⟬\";\nvar loarr = \"⇽\";\nvar lobrk = \"⟦\";\nvar longleftarrow = \"⟵\";\nvar longleftrightarrow = \"⟷\";\nvar longmapsto = \"⟼\";\nvar longrightarrow = \"⟶\";\nvar looparrowleft = \"↫\";\nvar looparrowright = \"↬\";\nvar lopar = \"⦅\";\nvar lopf = \"𝕝\";\nvar loplus = \"⨭\";\nvar lotimes = \"⨴\";\nvar lowast = \"∗\";\nvar lowbar = \"_\";\nvar loz = \"◊\";\nvar lozenge = \"◊\";\nvar lozf = \"⧫\";\nvar lpar = \"(\";\nvar lparlt = \"⦓\";\nvar lrarr = \"⇆\";\nvar lrcorner = \"⌟\";\nvar lrhar = \"⇋\";\nvar lrhard = \"⥭\";\nvar lrm = \"‎\";\nvar lrtri = \"⊿\";\nvar lsaquo = \"‹\";\nvar lscr = \"𝓁\";\nvar lsh = \"↰\";\nvar lsim = \"≲\";\nvar lsime = \"⪍\";\nvar lsimg = \"⪏\";\nvar lsqb = \"[\";\nvar lsquo = \"‘\";\nvar lsquor = \"‚\";\nvar lstrok = \"ł\";\nvar l = \"<\";\nvar lt = \"<\";\nvar ltcc = \"⪦\";\nvar ltcir = \"⩹\";\nvar ltdot = \"⋖\";\nvar lthree = \"⋋\";\nvar ltimes = \"⋉\";\nvar ltlarr = \"⥶\";\nvar ltquest = \"⩻\";\nvar ltrPar = \"⦖\";\nvar ltri = \"◃\";\nvar ltrie = \"⊴\";\nvar ltrif = \"◂\";\nvar lurdshar = \"⥊\";\nvar luruhar = \"⥦\";\nvar lvertneqq = \"≨︀\";\nvar lvnE = \"≨︀\";\nvar mDDot = \"∺\";\nvar mac = \"¯\";\nvar macr = \"¯\";\nvar male = \"♂\";\nvar malt = \"✠\";\nvar maltese = \"✠\";\nvar map = \"↦\";\nvar mapsto = \"↦\";\nvar mapstodown = \"↧\";\nvar mapstoleft = \"↤\";\nvar mapstoup = \"↥\";\nvar marker = \"▮\";\nvar mcomma = \"⨩\";\nvar mcy = \"м\";\nvar mdash = \"—\";\nvar measuredangle = \"∡\";\nvar mfr = \"𝔪\";\nvar mho = \"℧\";\nvar micr = \"µ\";\nvar micro = \"µ\";\nvar mid = \"∣\";\nvar midast = \"*\";\nvar midcir = \"⫰\";\nvar middo = \"·\";\nvar middot = \"·\";\nvar minus = \"−\";\nvar minusb = \"⊟\";\nvar minusd = \"∸\";\nvar minusdu = \"⨪\";\nvar mlcp = \"⫛\";\nvar mldr = \"…\";\nvar mnplus = \"∓\";\nvar models = \"⊧\";\nvar mopf = \"𝕞\";\nvar mp = \"∓\";\nvar mscr = \"𝓂\";\nvar mstpos = \"∾\";\nvar mu = \"μ\";\nvar multimap = \"⊸\";\nvar mumap = \"⊸\";\nvar nGg = \"⋙̸\";\nvar nGt = \"≫⃒\";\nvar nGtv = \"≫̸\";\nvar nLeftarrow = \"⇍\";\nvar nLeftrightarrow = \"⇎\";\nvar nLl = \"⋘̸\";\nvar nLt = \"≪⃒\";\nvar nLtv = \"≪̸\";\nvar nRightarrow = \"⇏\";\nvar nVDash = \"⊯\";\nvar nVdash = \"⊮\";\nvar nabla = \"∇\";\nvar nacute = \"ń\";\nvar nang = \"∠⃒\";\nvar nap = \"≉\";\nvar napE = \"⩰̸\";\nvar napid = \"≋̸\";\nvar napos = \"ʼn\";\nvar napprox = \"≉\";\nvar natur = \"♮\";\nvar natural = \"♮\";\nvar naturals = \"ℕ\";\nvar nbs = \" \";\nvar nbsp = \" \";\nvar nbump = \"≎̸\";\nvar nbumpe = \"≏̸\";\nvar ncap = \"⩃\";\nvar ncaron = \"ň\";\nvar ncedil = \"ņ\";\nvar ncong = \"≇\";\nvar ncongdot = \"⩭̸\";\nvar ncup = \"⩂\";\nvar ncy = \"н\";\nvar ndash = \"–\";\nvar ne = \"≠\";\nvar neArr = \"⇗\";\nvar nearhk = \"⤤\";\nvar nearr = \"↗\";\nvar nearrow = \"↗\";\nvar nedot = \"≐̸\";\nvar nequiv = \"≢\";\nvar nesear = \"⤨\";\nvar nesim = \"≂̸\";\nvar nexist = \"∄\";\nvar nexists = \"∄\";\nvar nfr = \"𝔫\";\nvar ngE = \"≧̸\";\nvar nge = \"≱\";\nvar ngeq = \"≱\";\nvar ngeqq = \"≧̸\";\nvar ngeqslant = \"⩾̸\";\nvar nges = \"⩾̸\";\nvar ngsim = \"≵\";\nvar ngt = \"≯\";\nvar ngtr = \"≯\";\nvar nhArr = \"⇎\";\nvar nharr = \"↮\";\nvar nhpar = \"⫲\";\nvar ni = \"∋\";\nvar nis = \"⋼\";\nvar nisd = \"⋺\";\nvar niv = \"∋\";\nvar njcy = \"њ\";\nvar nlArr = \"⇍\";\nvar nlE = \"≦̸\";\nvar nlarr = \"↚\";\nvar nldr = \"‥\";\nvar nle = \"≰\";\nvar nleftarrow = \"↚\";\nvar nleftrightarrow = \"↮\";\nvar nleq = \"≰\";\nvar nleqq = \"≦̸\";\nvar nleqslant = \"⩽̸\";\nvar nles = \"⩽̸\";\nvar nless = \"≮\";\nvar nlsim = \"≴\";\nvar nlt = \"≮\";\nvar nltri = \"⋪\";\nvar nltrie = \"⋬\";\nvar nmid = \"∤\";\nvar nopf = \"𝕟\";\nvar no = \"¬\";\nvar not = \"¬\";\nvar notin = \"∉\";\nvar notinE = \"⋹̸\";\nvar notindot = \"⋵̸\";\nvar notinva = \"∉\";\nvar notinvb = \"⋷\";\nvar notinvc = \"⋶\";\nvar notni = \"∌\";\nvar notniva = \"∌\";\nvar notnivb = \"⋾\";\nvar notnivc = \"⋽\";\nvar npar = \"∦\";\nvar nparallel = \"∦\";\nvar nparsl = \"⫽⃥\";\nvar npart = \"∂̸\";\nvar npolint = \"⨔\";\nvar npr = \"⊀\";\nvar nprcue = \"⋠\";\nvar npre = \"⪯̸\";\nvar nprec = \"⊀\";\nvar npreceq = \"⪯̸\";\nvar nrArr = \"⇏\";\nvar nrarr = \"↛\";\nvar nrarrc = \"⤳̸\";\nvar nrarrw = \"↝̸\";\nvar nrightarrow = \"↛\";\nvar nrtri = \"⋫\";\nvar nrtrie = \"⋭\";\nvar nsc = \"⊁\";\nvar nsccue = \"⋡\";\nvar nsce = \"⪰̸\";\nvar nscr = \"𝓃\";\nvar nshortmid = \"∤\";\nvar nshortparallel = \"∦\";\nvar nsim = \"≁\";\nvar nsime = \"≄\";\nvar nsimeq = \"≄\";\nvar nsmid = \"∤\";\nvar nspar = \"∦\";\nvar nsqsube = \"⋢\";\nvar nsqsupe = \"⋣\";\nvar nsub = \"⊄\";\nvar nsubE = \"⫅̸\";\nvar nsube = \"⊈\";\nvar nsubset = \"⊂⃒\";\nvar nsubseteq = \"⊈\";\nvar nsubseteqq = \"⫅̸\";\nvar nsucc = \"⊁\";\nvar nsucceq = \"⪰̸\";\nvar nsup = \"⊅\";\nvar nsupE = \"⫆̸\";\nvar nsupe = \"⊉\";\nvar nsupset = \"⊃⃒\";\nvar nsupseteq = \"⊉\";\nvar nsupseteqq = \"⫆̸\";\nvar ntgl = \"≹\";\nvar ntild = \"ñ\";\nvar ntilde = \"ñ\";\nvar ntlg = \"≸\";\nvar ntriangleleft = \"⋪\";\nvar ntrianglelefteq = \"⋬\";\nvar ntriangleright = \"⋫\";\nvar ntrianglerighteq = \"⋭\";\nvar nu = \"ν\";\nvar num = \"#\";\nvar numero = \"№\";\nvar numsp = \" \";\nvar nvDash = \"⊭\";\nvar nvHarr = \"⤄\";\nvar nvap = \"≍⃒\";\nvar nvdash = \"⊬\";\nvar nvge = \"≥⃒\";\nvar nvgt = \">⃒\";\nvar nvinfin = \"⧞\";\nvar nvlArr = \"⤂\";\nvar nvle = \"≤⃒\";\nvar nvlt = \"<⃒\";\nvar nvltrie = \"⊴⃒\";\nvar nvrArr = \"⤃\";\nvar nvrtrie = \"⊵⃒\";\nvar nvsim = \"∼⃒\";\nvar nwArr = \"⇖\";\nvar nwarhk = \"⤣\";\nvar nwarr = \"↖\";\nvar nwarrow = \"↖\";\nvar nwnear = \"⤧\";\nvar oS = \"Ⓢ\";\nvar oacut = \"ó\";\nvar oacute = \"ó\";\nvar oast = \"⊛\";\nvar ocir = \"ô\";\nvar ocirc = \"ô\";\nvar ocy = \"о\";\nvar odash = \"⊝\";\nvar odblac = \"ő\";\nvar odiv = \"⨸\";\nvar odot = \"⊙\";\nvar odsold = \"⦼\";\nvar oelig = \"œ\";\nvar ofcir = \"⦿\";\nvar ofr = \"𝔬\";\nvar ogon = \"˛\";\nvar ograv = \"ò\";\nvar ograve = \"ò\";\nvar ogt = \"⧁\";\nvar ohbar = \"⦵\";\nvar ohm = \"Ω\";\nvar oint = \"∮\";\nvar olarr = \"↺\";\nvar olcir = \"⦾\";\nvar olcross = \"⦻\";\nvar oline = \"‾\";\nvar olt = \"⧀\";\nvar omacr = \"ō\";\nvar omega = \"ω\";\nvar omicron = \"ο\";\nvar omid = \"⦶\";\nvar ominus = \"⊖\";\nvar oopf = \"𝕠\";\nvar opar = \"⦷\";\nvar operp = \"⦹\";\nvar oplus = \"⊕\";\nvar or = \"∨\";\nvar orarr = \"↻\";\nvar ord = \"º\";\nvar order = \"ℴ\";\nvar orderof = \"ℴ\";\nvar ordf = \"ª\";\nvar ordm = \"º\";\nvar origof = \"⊶\";\nvar oror = \"⩖\";\nvar orslope = \"⩗\";\nvar orv = \"⩛\";\nvar oscr = \"ℴ\";\nvar oslas = \"ø\";\nvar oslash = \"ø\";\nvar osol = \"⊘\";\nvar otild = \"õ\";\nvar otilde = \"õ\";\nvar otimes = \"⊗\";\nvar otimesas = \"⨶\";\nvar oum = \"ö\";\nvar ouml = \"ö\";\nvar ovbar = \"⌽\";\nvar par = \"¶\";\nvar para = \"¶\";\nvar parallel = \"∥\";\nvar parsim = \"⫳\";\nvar parsl = \"⫽\";\nvar part = \"∂\";\nvar pcy = \"п\";\nvar percnt = \"%\";\nvar period = \".\";\nvar permil = \"‰\";\nvar perp = \"⊥\";\nvar pertenk = \"‱\";\nvar pfr = \"𝔭\";\nvar phi = \"φ\";\nvar phiv = \"ϕ\";\nvar phmmat = \"ℳ\";\nvar phone = \"☎\";\nvar pi = \"π\";\nvar pitchfork = \"⋔\";\nvar piv = \"ϖ\";\nvar planck = \"ℏ\";\nvar planckh = \"ℎ\";\nvar plankv = \"ℏ\";\nvar plus = \"+\";\nvar plusacir = \"⨣\";\nvar plusb = \"⊞\";\nvar pluscir = \"⨢\";\nvar plusdo = \"∔\";\nvar plusdu = \"⨥\";\nvar pluse = \"⩲\";\nvar plusm = \"±\";\nvar plusmn = \"±\";\nvar plussim = \"⨦\";\nvar plustwo = \"⨧\";\nvar pm = \"±\";\nvar pointint = \"⨕\";\nvar popf = \"𝕡\";\nvar poun = \"£\";\nvar pound = \"£\";\nvar pr = \"≺\";\nvar prE = \"⪳\";\nvar prap = \"⪷\";\nvar prcue = \"≼\";\nvar pre = \"⪯\";\nvar prec = \"≺\";\nvar precapprox = \"⪷\";\nvar preccurlyeq = \"≼\";\nvar preceq = \"⪯\";\nvar precnapprox = \"⪹\";\nvar precneqq = \"⪵\";\nvar precnsim = \"⋨\";\nvar precsim = \"≾\";\nvar prime = \"′\";\nvar primes = \"ℙ\";\nvar prnE = \"⪵\";\nvar prnap = \"⪹\";\nvar prnsim = \"⋨\";\nvar prod = \"∏\";\nvar profalar = \"⌮\";\nvar profline = \"⌒\";\nvar profsurf = \"⌓\";\nvar prop = \"∝\";\nvar propto = \"∝\";\nvar prsim = \"≾\";\nvar prurel = \"⊰\";\nvar pscr = \"𝓅\";\nvar psi = \"ψ\";\nvar puncsp = \" \";\nvar qfr = \"𝔮\";\nvar qint = \"⨌\";\nvar qopf = \"𝕢\";\nvar qprime = \"⁗\";\nvar qscr = \"𝓆\";\nvar quaternions = \"ℍ\";\nvar quatint = \"⨖\";\nvar quest = \"?\";\nvar questeq = \"≟\";\nvar quo = \"\\\"\";\nvar quot = \"\\\"\";\nvar rAarr = \"⇛\";\nvar rArr = \"⇒\";\nvar rAtail = \"⤜\";\nvar rBarr = \"⤏\";\nvar rHar = \"⥤\";\nvar race = \"∽̱\";\nvar racute = \"ŕ\";\nvar radic = \"√\";\nvar raemptyv = \"⦳\";\nvar rang = \"⟩\";\nvar rangd = \"⦒\";\nvar range = \"⦥\";\nvar rangle = \"⟩\";\nvar raqu = \"»\";\nvar raquo = \"»\";\nvar rarr = \"→\";\nvar rarrap = \"⥵\";\nvar rarrb = \"⇥\";\nvar rarrbfs = \"⤠\";\nvar rarrc = \"⤳\";\nvar rarrfs = \"⤞\";\nvar rarrhk = \"↪\";\nvar rarrlp = \"↬\";\nvar rarrpl = \"⥅\";\nvar rarrsim = \"⥴\";\nvar rarrtl = \"↣\";\nvar rarrw = \"↝\";\nvar ratail = \"⤚\";\nvar ratio = \"∶\";\nvar rationals = \"ℚ\";\nvar rbarr = \"⤍\";\nvar rbbrk = \"❳\";\nvar rbrace = \"}\";\nvar rbrack = \"]\";\nvar rbrke = \"⦌\";\nvar rbrksld = \"⦎\";\nvar rbrkslu = \"⦐\";\nvar rcaron = \"ř\";\nvar rcedil = \"ŗ\";\nvar rceil = \"⌉\";\nvar rcub = \"}\";\nvar rcy = \"р\";\nvar rdca = \"⤷\";\nvar rdldhar = \"⥩\";\nvar rdquo = \"”\";\nvar rdquor = \"”\";\nvar rdsh = \"↳\";\nvar real = \"ℜ\";\nvar realine = \"ℛ\";\nvar realpart = \"ℜ\";\nvar reals = \"ℝ\";\nvar rect = \"▭\";\nvar re = \"®\";\nvar reg = \"®\";\nvar rfisht = \"⥽\";\nvar rfloor = \"⌋\";\nvar rfr = \"𝔯\";\nvar rhard = \"⇁\";\nvar rharu = \"⇀\";\nvar rharul = \"⥬\";\nvar rho = \"ρ\";\nvar rhov = \"ϱ\";\nvar rightarrow = \"→\";\nvar rightarrowtail = \"↣\";\nvar rightharpoondown = \"⇁\";\nvar rightharpoonup = \"⇀\";\nvar rightleftarrows = \"⇄\";\nvar rightleftharpoons = \"⇌\";\nvar rightrightarrows = \"⇉\";\nvar rightsquigarrow = \"↝\";\nvar rightthreetimes = \"⋌\";\nvar ring = \"˚\";\nvar risingdotseq = \"≓\";\nvar rlarr = \"⇄\";\nvar rlhar = \"⇌\";\nvar rlm = \"‏\";\nvar rmoust = \"⎱\";\nvar rmoustache = \"⎱\";\nvar rnmid = \"⫮\";\nvar roang = \"⟭\";\nvar roarr = \"⇾\";\nvar robrk = \"⟧\";\nvar ropar = \"⦆\";\nvar ropf = \"𝕣\";\nvar roplus = \"⨮\";\nvar rotimes = \"⨵\";\nvar rpar = \")\";\nvar rpargt = \"⦔\";\nvar rppolint = \"⨒\";\nvar rrarr = \"⇉\";\nvar rsaquo = \"›\";\nvar rscr = \"𝓇\";\nvar rsh = \"↱\";\nvar rsqb = \"]\";\nvar rsquo = \"’\";\nvar rsquor = \"’\";\nvar rthree = \"⋌\";\nvar rtimes = \"⋊\";\nvar rtri = \"▹\";\nvar rtrie = \"⊵\";\nvar rtrif = \"▸\";\nvar rtriltri = \"⧎\";\nvar ruluhar = \"⥨\";\nvar rx = \"℞\";\nvar sacute = \"ś\";\nvar sbquo = \"‚\";\nvar sc = \"≻\";\nvar scE = \"⪴\";\nvar scap = \"⪸\";\nvar scaron = \"š\";\nvar sccue = \"≽\";\nvar sce = \"⪰\";\nvar scedil = \"ş\";\nvar scirc = \"ŝ\";\nvar scnE = \"⪶\";\nvar scnap = \"⪺\";\nvar scnsim = \"⋩\";\nvar scpolint = \"⨓\";\nvar scsim = \"≿\";\nvar scy = \"с\";\nvar sdot = \"⋅\";\nvar sdotb = \"⊡\";\nvar sdote = \"⩦\";\nvar seArr = \"⇘\";\nvar searhk = \"⤥\";\nvar searr = \"↘\";\nvar searrow = \"↘\";\nvar sec = \"§\";\nvar sect = \"§\";\nvar semi = \";\";\nvar seswar = \"⤩\";\nvar setminus = \"∖\";\nvar setmn = \"∖\";\nvar sext = \"✶\";\nvar sfr = \"𝔰\";\nvar sfrown = \"⌢\";\nvar sharp = \"♯\";\nvar shchcy = \"щ\";\nvar shcy = \"ш\";\nvar shortmid = \"∣\";\nvar shortparallel = \"∥\";\nvar sh = \"­\";\nvar shy = \"­\";\nvar sigma = \"σ\";\nvar sigmaf = \"ς\";\nvar sigmav = \"ς\";\nvar sim = \"∼\";\nvar simdot = \"⩪\";\nvar sime = \"≃\";\nvar simeq = \"≃\";\nvar simg = \"⪞\";\nvar simgE = \"⪠\";\nvar siml = \"⪝\";\nvar simlE = \"⪟\";\nvar simne = \"≆\";\nvar simplus = \"⨤\";\nvar simrarr = \"⥲\";\nvar slarr = \"←\";\nvar smallsetminus = \"∖\";\nvar smashp = \"⨳\";\nvar smeparsl = \"⧤\";\nvar smid = \"∣\";\nvar smile = \"⌣\";\nvar smt = \"⪪\";\nvar smte = \"⪬\";\nvar smtes = \"⪬︀\";\nvar softcy = \"ь\";\nvar sol = \"/\";\nvar solb = \"⧄\";\nvar solbar = \"⌿\";\nvar sopf = \"𝕤\";\nvar spades = \"♠\";\nvar spadesuit = \"♠\";\nvar spar = \"∥\";\nvar sqcap = \"⊓\";\nvar sqcaps = \"⊓︀\";\nvar sqcup = \"⊔\";\nvar sqcups = \"⊔︀\";\nvar sqsub = \"⊏\";\nvar sqsube = \"⊑\";\nvar sqsubset = \"⊏\";\nvar sqsubseteq = \"⊑\";\nvar sqsup = \"⊐\";\nvar sqsupe = \"⊒\";\nvar sqsupset = \"⊐\";\nvar sqsupseteq = \"⊒\";\nvar squ = \"□\";\nvar square = \"□\";\nvar squarf = \"▪\";\nvar squf = \"▪\";\nvar srarr = \"→\";\nvar sscr = \"𝓈\";\nvar ssetmn = \"∖\";\nvar ssmile = \"⌣\";\nvar sstarf = \"⋆\";\nvar star = \"☆\";\nvar starf = \"★\";\nvar straightepsilon = \"ϵ\";\nvar straightphi = \"ϕ\";\nvar strns = \"¯\";\nvar sub = \"⊂\";\nvar subE = \"⫅\";\nvar subdot = \"⪽\";\nvar sube = \"⊆\";\nvar subedot = \"⫃\";\nvar submult = \"⫁\";\nvar subnE = \"⫋\";\nvar subne = \"⊊\";\nvar subplus = \"⪿\";\nvar subrarr = \"⥹\";\nvar subset = \"⊂\";\nvar subseteq = \"⊆\";\nvar subseteqq = \"⫅\";\nvar subsetneq = \"⊊\";\nvar subsetneqq = \"⫋\";\nvar subsim = \"⫇\";\nvar subsub = \"⫕\";\nvar subsup = \"⫓\";\nvar succ = \"≻\";\nvar succapprox = \"⪸\";\nvar succcurlyeq = \"≽\";\nvar succeq = \"⪰\";\nvar succnapprox = \"⪺\";\nvar succneqq = \"⪶\";\nvar succnsim = \"⋩\";\nvar succsim = \"≿\";\nvar sum = \"∑\";\nvar sung = \"♪\";\nvar sup = \"⊃\";\nvar sup1 = \"¹\";\nvar sup2 = \"²\";\nvar sup3 = \"³\";\nvar supE = \"⫆\";\nvar supdot = \"⪾\";\nvar supdsub = \"⫘\";\nvar supe = \"⊇\";\nvar supedot = \"⫄\";\nvar suphsol = \"⟉\";\nvar suphsub = \"⫗\";\nvar suplarr = \"⥻\";\nvar supmult = \"⫂\";\nvar supnE = \"⫌\";\nvar supne = \"⊋\";\nvar supplus = \"⫀\";\nvar supset = \"⊃\";\nvar supseteq = \"⊇\";\nvar supseteqq = \"⫆\";\nvar supsetneq = \"⊋\";\nvar supsetneqq = \"⫌\";\nvar supsim = \"⫈\";\nvar supsub = \"⫔\";\nvar supsup = \"⫖\";\nvar swArr = \"⇙\";\nvar swarhk = \"⤦\";\nvar swarr = \"↙\";\nvar swarrow = \"↙\";\nvar swnwar = \"⤪\";\nvar szli = \"ß\";\nvar szlig = \"ß\";\nvar target = \"⌖\";\nvar tau = \"τ\";\nvar tbrk = \"⎴\";\nvar tcaron = \"ť\";\nvar tcedil = \"ţ\";\nvar tcy = \"т\";\nvar tdot = \"⃛\";\nvar telrec = \"⌕\";\nvar tfr = \"𝔱\";\nvar there4 = \"∴\";\nvar therefore = \"∴\";\nvar theta = \"θ\";\nvar thetasym = \"ϑ\";\nvar thetav = \"ϑ\";\nvar thickapprox = \"≈\";\nvar thicksim = \"∼\";\nvar thinsp = \" \";\nvar thkap = \"≈\";\nvar thksim = \"∼\";\nvar thor = \"þ\";\nvar thorn = \"þ\";\nvar tilde = \"˜\";\nvar time = \"×\";\nvar times = \"×\";\nvar timesb = \"⊠\";\nvar timesbar = \"⨱\";\nvar timesd = \"⨰\";\nvar tint = \"∭\";\nvar toea = \"⤨\";\nvar top = \"⊤\";\nvar topbot = \"⌶\";\nvar topcir = \"⫱\";\nvar topf = \"𝕥\";\nvar topfork = \"⫚\";\nvar tosa = \"⤩\";\nvar tprime = \"‴\";\nvar trade = \"™\";\nvar triangle = \"▵\";\nvar triangledown = \"▿\";\nvar triangleleft = \"◃\";\nvar trianglelefteq = \"⊴\";\nvar triangleq = \"≜\";\nvar triangleright = \"▹\";\nvar trianglerighteq = \"⊵\";\nvar tridot = \"◬\";\nvar trie = \"≜\";\nvar triminus = \"⨺\";\nvar triplus = \"⨹\";\nvar trisb = \"⧍\";\nvar tritime = \"⨻\";\nvar trpezium = \"⏢\";\nvar tscr = \"𝓉\";\nvar tscy = \"ц\";\nvar tshcy = \"ћ\";\nvar tstrok = \"ŧ\";\nvar twixt = \"≬\";\nvar twoheadleftarrow = \"↞\";\nvar twoheadrightarrow = \"↠\";\nvar uArr = \"⇑\";\nvar uHar = \"⥣\";\nvar uacut = \"ú\";\nvar uacute = \"ú\";\nvar uarr = \"↑\";\nvar ubrcy = \"ў\";\nvar ubreve = \"ŭ\";\nvar ucir = \"û\";\nvar ucirc = \"û\";\nvar ucy = \"у\";\nvar udarr = \"⇅\";\nvar udblac = \"ű\";\nvar udhar = \"⥮\";\nvar ufisht = \"⥾\";\nvar ufr = \"𝔲\";\nvar ugrav = \"ù\";\nvar ugrave = \"ù\";\nvar uharl = \"↿\";\nvar uharr = \"↾\";\nvar uhblk = \"▀\";\nvar ulcorn = \"⌜\";\nvar ulcorner = \"⌜\";\nvar ulcrop = \"⌏\";\nvar ultri = \"◸\";\nvar umacr = \"ū\";\nvar um = \"¨\";\nvar uml = \"¨\";\nvar uogon = \"ų\";\nvar uopf = \"𝕦\";\nvar uparrow = \"↑\";\nvar updownarrow = \"↕\";\nvar upharpoonleft = \"↿\";\nvar upharpoonright = \"↾\";\nvar uplus = \"⊎\";\nvar upsi = \"υ\";\nvar upsih = \"ϒ\";\nvar upsilon = \"υ\";\nvar upuparrows = \"⇈\";\nvar urcorn = \"⌝\";\nvar urcorner = \"⌝\";\nvar urcrop = \"⌎\";\nvar uring = \"ů\";\nvar urtri = \"◹\";\nvar uscr = \"𝓊\";\nvar utdot = \"⋰\";\nvar utilde = \"ũ\";\nvar utri = \"▵\";\nvar utrif = \"▴\";\nvar uuarr = \"⇈\";\nvar uum = \"ü\";\nvar uuml = \"ü\";\nvar uwangle = \"⦧\";\nvar vArr = \"⇕\";\nvar vBar = \"⫨\";\nvar vBarv = \"⫩\";\nvar vDash = \"⊨\";\nvar vangrt = \"⦜\";\nvar varepsilon = \"ϵ\";\nvar varkappa = \"ϰ\";\nvar varnothing = \"∅\";\nvar varphi = \"ϕ\";\nvar varpi = \"ϖ\";\nvar varpropto = \"∝\";\nvar varr = \"↕\";\nvar varrho = \"ϱ\";\nvar varsigma = \"ς\";\nvar varsubsetneq = \"⊊︀\";\nvar varsubsetneqq = \"⫋︀\";\nvar varsupsetneq = \"⊋︀\";\nvar varsupsetneqq = \"⫌︀\";\nvar vartheta = \"ϑ\";\nvar vartriangleleft = \"⊲\";\nvar vartriangleright = \"⊳\";\nvar vcy = \"в\";\nvar vdash = \"⊢\";\nvar vee = \"∨\";\nvar veebar = \"⊻\";\nvar veeeq = \"≚\";\nvar vellip = \"⋮\";\nvar verbar = \"|\";\nvar vert = \"|\";\nvar vfr = \"𝔳\";\nvar vltri = \"⊲\";\nvar vnsub = \"⊂⃒\";\nvar vnsup = \"⊃⃒\";\nvar vopf = \"𝕧\";\nvar vprop = \"∝\";\nvar vrtri = \"⊳\";\nvar vscr = \"𝓋\";\nvar vsubnE = \"⫋︀\";\nvar vsubne = \"⊊︀\";\nvar vsupnE = \"⫌︀\";\nvar vsupne = \"⊋︀\";\nvar vzigzag = \"⦚\";\nvar wcirc = \"ŵ\";\nvar wedbar = \"⩟\";\nvar wedge = \"∧\";\nvar wedgeq = \"≙\";\nvar weierp = \"℘\";\nvar wfr = \"𝔴\";\nvar wopf = \"𝕨\";\nvar wp = \"℘\";\nvar wr = \"≀\";\nvar wreath = \"≀\";\nvar wscr = \"𝓌\";\nvar xcap = \"⋂\";\nvar xcirc = \"◯\";\nvar xcup = \"⋃\";\nvar xdtri = \"▽\";\nvar xfr = \"𝔵\";\nvar xhArr = \"⟺\";\nvar xharr = \"⟷\";\nvar xi = \"ξ\";\nvar xlArr = \"⟸\";\nvar xlarr = \"⟵\";\nvar xmap = \"⟼\";\nvar xnis = \"⋻\";\nvar xodot = \"⨀\";\nvar xopf = \"𝕩\";\nvar xoplus = \"⨁\";\nvar xotime = \"⨂\";\nvar xrArr = \"⟹\";\nvar xrarr = \"⟶\";\nvar xscr = \"𝓍\";\nvar xsqcup = \"⨆\";\nvar xuplus = \"⨄\";\nvar xutri = \"△\";\nvar xvee = \"⋁\";\nvar xwedge = \"⋀\";\nvar yacut = \"ý\";\nvar yacute = \"ý\";\nvar yacy = \"я\";\nvar ycirc = \"ŷ\";\nvar ycy = \"ы\";\nvar ye = \"¥\";\nvar yen = \"¥\";\nvar yfr = \"𝔶\";\nvar yicy = \"ї\";\nvar yopf = \"𝕪\";\nvar yscr = \"𝓎\";\nvar yucy = \"ю\";\nvar yum = \"ÿ\";\nvar yuml = \"ÿ\";\nvar zacute = \"ź\";\nvar zcaron = \"ž\";\nvar zcy = \"з\";\nvar zdot = \"ż\";\nvar zeetrf = \"ℨ\";\nvar zeta = \"ζ\";\nvar zfr = \"𝔷\";\nvar zhcy = \"ж\";\nvar zigrarr = \"⇝\";\nvar zopf = \"𝕫\";\nvar zscr = \"𝓏\";\nvar zwj = \"‍\";\nvar zwnj = \"‌\";\nvar require$$0 = {\n AEli: AEli,\n AElig: AElig,\n AM: AM,\n AMP: AMP,\n Aacut: Aacut,\n Aacute: Aacute,\n Abreve: Abreve,\n Acir: Acir,\n Acirc: Acirc,\n Acy: Acy,\n Afr: Afr,\n Agrav: Agrav,\n Agrave: Agrave,\n Alpha: Alpha,\n Amacr: Amacr,\n And: And,\n Aogon: Aogon,\n Aopf: Aopf,\n ApplyFunction: ApplyFunction,\n Arin: Arin,\n Aring: Aring,\n Ascr: Ascr,\n Assign: Assign,\n Atild: Atild,\n Atilde: Atilde,\n Aum: Aum,\n Auml: Auml,\n Backslash: Backslash,\n Barv: Barv,\n Barwed: Barwed,\n Bcy: Bcy,\n Because: Because,\n Bernoullis: Bernoullis,\n Beta: Beta,\n Bfr: Bfr,\n Bopf: Bopf,\n Breve: Breve,\n Bscr: Bscr,\n Bumpeq: Bumpeq,\n CHcy: CHcy,\n COP: COP,\n COPY: COPY,\n Cacute: Cacute,\n Cap: Cap,\n CapitalDifferentialD: CapitalDifferentialD,\n Cayleys: Cayleys,\n Ccaron: Ccaron,\n Ccedi: Ccedi,\n Ccedil: Ccedil,\n Ccirc: Ccirc,\n Cconint: Cconint,\n Cdot: Cdot,\n Cedilla: Cedilla,\n CenterDot: CenterDot,\n Cfr: Cfr,\n Chi: Chi,\n CircleDot: CircleDot,\n CircleMinus: CircleMinus,\n CirclePlus: CirclePlus,\n CircleTimes: CircleTimes,\n ClockwiseContourIntegral: ClockwiseContourIntegral,\n CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,\n CloseCurlyQuote: CloseCurlyQuote,\n Colon: Colon,\n Colone: Colone,\n Congruent: Congruent,\n Conint: Conint,\n ContourIntegral: ContourIntegral,\n Copf: Copf,\n Coproduct: Coproduct,\n CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,\n Cross: Cross,\n Cscr: Cscr,\n Cup: Cup,\n CupCap: CupCap,\n DD: DD,\n DDotrahd: DDotrahd,\n DJcy: DJcy,\n DScy: DScy,\n DZcy: DZcy,\n Dagger: Dagger,\n Darr: Darr,\n Dashv: Dashv,\n Dcaron: Dcaron,\n Dcy: Dcy,\n Del: Del,\n Delta: Delta,\n Dfr: Dfr,\n DiacriticalAcute: DiacriticalAcute,\n DiacriticalDot: DiacriticalDot,\n DiacriticalDoubleAcute: DiacriticalDoubleAcute,\n DiacriticalGrave: DiacriticalGrave,\n DiacriticalTilde: DiacriticalTilde,\n Diamond: Diamond,\n DifferentialD: DifferentialD,\n Dopf: Dopf,\n Dot: Dot,\n DotDot: DotDot,\n DotEqual: DotEqual,\n DoubleContourIntegral: DoubleContourIntegral,\n DoubleDot: DoubleDot,\n DoubleDownArrow: DoubleDownArrow,\n DoubleLeftArrow: DoubleLeftArrow,\n DoubleLeftRightArrow: DoubleLeftRightArrow,\n DoubleLeftTee: DoubleLeftTee,\n DoubleLongLeftArrow: DoubleLongLeftArrow,\n DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,\n DoubleLongRightArrow: DoubleLongRightArrow,\n DoubleRightArrow: DoubleRightArrow,\n DoubleRightTee: DoubleRightTee,\n DoubleUpArrow: DoubleUpArrow,\n DoubleUpDownArrow: DoubleUpDownArrow,\n DoubleVerticalBar: DoubleVerticalBar,\n DownArrow: DownArrow,\n DownArrowBar: DownArrowBar,\n DownArrowUpArrow: DownArrowUpArrow,\n DownBreve: DownBreve,\n DownLeftRightVector: DownLeftRightVector,\n DownLeftTeeVector: DownLeftTeeVector,\n DownLeftVector: DownLeftVector,\n DownLeftVectorBar: DownLeftVectorBar,\n DownRightTeeVector: DownRightTeeVector,\n DownRightVector: DownRightVector,\n DownRightVectorBar: DownRightVectorBar,\n DownTee: DownTee,\n DownTeeArrow: DownTeeArrow,\n Downarrow: Downarrow,\n Dscr: Dscr,\n Dstrok: Dstrok,\n ENG: ENG,\n ET: ET,\n ETH: ETH,\n Eacut: Eacut,\n Eacute: Eacute,\n Ecaron: Ecaron,\n Ecir: Ecir,\n Ecirc: Ecirc,\n Ecy: Ecy,\n Edot: Edot,\n Efr: Efr,\n Egrav: Egrav,\n Egrave: Egrave,\n Element: Element,\n Emacr: Emacr,\n EmptySmallSquare: EmptySmallSquare,\n EmptyVerySmallSquare: EmptyVerySmallSquare,\n Eogon: Eogon,\n Eopf: Eopf,\n Epsilon: Epsilon,\n Equal: Equal,\n EqualTilde: EqualTilde,\n Equilibrium: Equilibrium,\n Escr: Escr,\n Esim: Esim,\n Eta: Eta,\n Eum: Eum,\n Euml: Euml,\n Exists: Exists,\n ExponentialE: ExponentialE,\n Fcy: Fcy,\n Ffr: Ffr,\n FilledSmallSquare: FilledSmallSquare,\n FilledVerySmallSquare: FilledVerySmallSquare,\n Fopf: Fopf,\n ForAll: ForAll,\n Fouriertrf: Fouriertrf,\n Fscr: Fscr,\n GJcy: GJcy,\n G: G,\n GT: GT,\n Gamma: Gamma,\n Gammad: Gammad,\n Gbreve: Gbreve,\n Gcedil: Gcedil,\n Gcirc: Gcirc,\n Gcy: Gcy,\n Gdot: Gdot,\n Gfr: Gfr,\n Gg: Gg,\n Gopf: Gopf,\n GreaterEqual: GreaterEqual,\n GreaterEqualLess: GreaterEqualLess,\n GreaterFullEqual: GreaterFullEqual,\n GreaterGreater: GreaterGreater,\n GreaterLess: GreaterLess,\n GreaterSlantEqual: GreaterSlantEqual,\n GreaterTilde: GreaterTilde,\n Gscr: Gscr,\n Gt: Gt,\n HARDcy: HARDcy,\n Hacek: Hacek,\n Hat: Hat,\n Hcirc: Hcirc,\n Hfr: Hfr,\n HilbertSpace: HilbertSpace,\n Hopf: Hopf,\n HorizontalLine: HorizontalLine,\n Hscr: Hscr,\n Hstrok: Hstrok,\n HumpDownHump: HumpDownHump,\n HumpEqual: HumpEqual,\n IEcy: IEcy,\n IJlig: IJlig,\n IOcy: IOcy,\n Iacut: Iacut,\n Iacute: Iacute,\n Icir: Icir,\n Icirc: Icirc,\n Icy: Icy,\n Idot: Idot,\n Ifr: Ifr,\n Igrav: Igrav,\n Igrave: Igrave,\n Im: Im,\n Imacr: Imacr,\n ImaginaryI: ImaginaryI,\n Implies: Implies,\n Int: Int,\n Integral: Integral,\n Intersection: Intersection,\n InvisibleComma: InvisibleComma,\n InvisibleTimes: InvisibleTimes,\n Iogon: Iogon,\n Iopf: Iopf,\n Iota: Iota,\n Iscr: Iscr,\n Itilde: Itilde,\n Iukcy: Iukcy,\n Ium: Ium,\n Iuml: Iuml,\n Jcirc: Jcirc,\n Jcy: Jcy,\n Jfr: Jfr,\n Jopf: Jopf,\n Jscr: Jscr,\n Jsercy: Jsercy,\n Jukcy: Jukcy,\n KHcy: KHcy,\n KJcy: KJcy,\n Kappa: Kappa,\n Kcedil: Kcedil,\n Kcy: Kcy,\n Kfr: Kfr,\n Kopf: Kopf,\n Kscr: Kscr,\n LJcy: LJcy,\n L: L,\n LT: LT,\n Lacute: Lacute,\n Lambda: Lambda,\n Lang: Lang,\n Laplacetrf: Laplacetrf,\n Larr: Larr,\n Lcaron: Lcaron,\n Lcedil: Lcedil,\n Lcy: Lcy,\n LeftAngleBracket: LeftAngleBracket,\n LeftArrow: LeftArrow,\n LeftArrowBar: LeftArrowBar,\n LeftArrowRightArrow: LeftArrowRightArrow,\n LeftCeiling: LeftCeiling,\n LeftDoubleBracket: LeftDoubleBracket,\n LeftDownTeeVector: LeftDownTeeVector,\n LeftDownVector: LeftDownVector,\n LeftDownVectorBar: LeftDownVectorBar,\n LeftFloor: LeftFloor,\n LeftRightArrow: LeftRightArrow,\n LeftRightVector: LeftRightVector,\n LeftTee: LeftTee,\n LeftTeeArrow: LeftTeeArrow,\n LeftTeeVector: LeftTeeVector,\n LeftTriangle: LeftTriangle,\n LeftTriangleBar: LeftTriangleBar,\n LeftTriangleEqual: LeftTriangleEqual,\n LeftUpDownVector: LeftUpDownVector,\n LeftUpTeeVector: LeftUpTeeVector,\n LeftUpVector: LeftUpVector,\n LeftUpVectorBar: LeftUpVectorBar,\n LeftVector: LeftVector,\n LeftVectorBar: LeftVectorBar,\n Leftarrow: Leftarrow,\n Leftrightarrow: Leftrightarrow,\n LessEqualGreater: LessEqualGreater,\n LessFullEqual: LessFullEqual,\n LessGreater: LessGreater,\n LessLess: LessLess,\n LessSlantEqual: LessSlantEqual,\n LessTilde: LessTilde,\n Lfr: Lfr,\n Ll: Ll,\n Lleftarrow: Lleftarrow,\n Lmidot: Lmidot,\n LongLeftArrow: LongLeftArrow,\n LongLeftRightArrow: LongLeftRightArrow,\n LongRightArrow: LongRightArrow,\n Longleftarrow: Longleftarrow,\n Longleftrightarrow: Longleftrightarrow,\n Longrightarrow: Longrightarrow,\n Lopf: Lopf,\n LowerLeftArrow: LowerLeftArrow,\n LowerRightArrow: LowerRightArrow,\n Lscr: Lscr,\n Lsh: Lsh,\n Lstrok: Lstrok,\n Lt: Lt,\n \"Map\": \"⤅\",\n Mcy: Mcy,\n MediumSpace: MediumSpace,\n Mellintrf: Mellintrf,\n Mfr: Mfr,\n MinusPlus: MinusPlus,\n Mopf: Mopf,\n Mscr: Mscr,\n Mu: Mu,\n NJcy: NJcy,\n Nacute: Nacute,\n Ncaron: Ncaron,\n Ncedil: Ncedil,\n Ncy: Ncy,\n NegativeMediumSpace: NegativeMediumSpace,\n NegativeThickSpace: NegativeThickSpace,\n NegativeThinSpace: NegativeThinSpace,\n NegativeVeryThinSpace: NegativeVeryThinSpace,\n NestedGreaterGreater: NestedGreaterGreater,\n NestedLessLess: NestedLessLess,\n NewLine: NewLine,\n Nfr: Nfr,\n NoBreak: NoBreak,\n NonBreakingSpace: NonBreakingSpace,\n Nopf: Nopf,\n Not: Not,\n NotCongruent: NotCongruent,\n NotCupCap: NotCupCap,\n NotDoubleVerticalBar: NotDoubleVerticalBar,\n NotElement: NotElement,\n NotEqual: NotEqual,\n NotEqualTilde: NotEqualTilde,\n NotExists: NotExists,\n NotGreater: NotGreater,\n NotGreaterEqual: NotGreaterEqual,\n NotGreaterFullEqual: NotGreaterFullEqual,\n NotGreaterGreater: NotGreaterGreater,\n NotGreaterLess: NotGreaterLess,\n NotGreaterSlantEqual: NotGreaterSlantEqual,\n NotGreaterTilde: NotGreaterTilde,\n NotHumpDownHump: NotHumpDownHump,\n NotHumpEqual: NotHumpEqual,\n NotLeftTriangle: NotLeftTriangle,\n NotLeftTriangleBar: NotLeftTriangleBar,\n NotLeftTriangleEqual: NotLeftTriangleEqual,\n NotLess: NotLess,\n NotLessEqual: NotLessEqual,\n NotLessGreater: NotLessGreater,\n NotLessLess: NotLessLess,\n NotLessSlantEqual: NotLessSlantEqual,\n NotLessTilde: NotLessTilde,\n NotNestedGreaterGreater: NotNestedGreaterGreater,\n NotNestedLessLess: NotNestedLessLess,\n NotPrecedes: NotPrecedes,\n NotPrecedesEqual: NotPrecedesEqual,\n NotPrecedesSlantEqual: NotPrecedesSlantEqual,\n NotReverseElement: NotReverseElement,\n NotRightTriangle: NotRightTriangle,\n NotRightTriangleBar: NotRightTriangleBar,\n NotRightTriangleEqual: NotRightTriangleEqual,\n NotSquareSubset: NotSquareSubset,\n NotSquareSubsetEqual: NotSquareSubsetEqual,\n NotSquareSuperset: NotSquareSuperset,\n NotSquareSupersetEqual: NotSquareSupersetEqual,\n NotSubset: NotSubset,\n NotSubsetEqual: NotSubsetEqual,\n NotSucceeds: NotSucceeds,\n NotSucceedsEqual: NotSucceedsEqual,\n NotSucceedsSlantEqual: NotSucceedsSlantEqual,\n NotSucceedsTilde: NotSucceedsTilde,\n NotSuperset: NotSuperset,\n NotSupersetEqual: NotSupersetEqual,\n NotTilde: NotTilde,\n NotTildeEqual: NotTildeEqual,\n NotTildeFullEqual: NotTildeFullEqual,\n NotTildeTilde: NotTildeTilde,\n NotVerticalBar: NotVerticalBar,\n Nscr: Nscr,\n Ntild: Ntild,\n Ntilde: Ntilde,\n Nu: Nu,\n OElig: OElig,\n Oacut: Oacut,\n Oacute: Oacute,\n Ocir: Ocir,\n Ocirc: Ocirc,\n Ocy: Ocy,\n Odblac: Odblac,\n Ofr: Ofr,\n Ograv: Ograv,\n Ograve: Ograve,\n Omacr: Omacr,\n Omega: Omega,\n Omicron: Omicron,\n Oopf: Oopf,\n OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,\n OpenCurlyQuote: OpenCurlyQuote,\n Or: Or,\n Oscr: Oscr,\n Oslas: Oslas,\n Oslash: Oslash,\n Otild: Otild,\n Otilde: Otilde,\n Otimes: Otimes,\n Oum: Oum,\n Ouml: Ouml,\n OverBar: OverBar,\n OverBrace: OverBrace,\n OverBracket: OverBracket,\n OverParenthesis: OverParenthesis,\n PartialD: PartialD,\n Pcy: Pcy,\n Pfr: Pfr,\n Phi: Phi,\n Pi: Pi,\n PlusMinus: PlusMinus,\n Poincareplane: Poincareplane,\n Popf: Popf,\n Pr: Pr,\n Precedes: Precedes,\n PrecedesEqual: PrecedesEqual,\n PrecedesSlantEqual: PrecedesSlantEqual,\n PrecedesTilde: PrecedesTilde,\n Prime: Prime,\n Product: Product,\n Proportion: Proportion,\n Proportional: Proportional,\n Pscr: Pscr,\n Psi: Psi,\n QUO: QUO,\n QUOT: QUOT,\n Qfr: Qfr,\n Qopf: Qopf,\n Qscr: Qscr,\n RBarr: RBarr,\n RE: RE,\n REG: REG,\n Racute: Racute,\n Rang: Rang,\n Rarr: Rarr,\n Rarrtl: Rarrtl,\n Rcaron: Rcaron,\n Rcedil: Rcedil,\n Rcy: Rcy,\n Re: Re,\n ReverseElement: ReverseElement,\n ReverseEquilibrium: ReverseEquilibrium,\n ReverseUpEquilibrium: ReverseUpEquilibrium,\n Rfr: Rfr,\n Rho: Rho,\n RightAngleBracket: RightAngleBracket,\n RightArrow: RightArrow,\n RightArrowBar: RightArrowBar,\n RightArrowLeftArrow: RightArrowLeftArrow,\n RightCeiling: RightCeiling,\n RightDoubleBracket: RightDoubleBracket,\n RightDownTeeVector: RightDownTeeVector,\n RightDownVector: RightDownVector,\n RightDownVectorBar: RightDownVectorBar,\n RightFloor: RightFloor,\n RightTee: RightTee,\n RightTeeArrow: RightTeeArrow,\n RightTeeVector: RightTeeVector,\n RightTriangle: RightTriangle,\n RightTriangleBar: RightTriangleBar,\n RightTriangleEqual: RightTriangleEqual,\n RightUpDownVector: RightUpDownVector,\n RightUpTeeVector: RightUpTeeVector,\n RightUpVector: RightUpVector,\n RightUpVectorBar: RightUpVectorBar,\n RightVector: RightVector,\n RightVectorBar: RightVectorBar,\n Rightarrow: Rightarrow,\n Ropf: Ropf,\n RoundImplies: RoundImplies,\n Rrightarrow: Rrightarrow,\n Rscr: Rscr,\n Rsh: Rsh,\n RuleDelayed: RuleDelayed,\n SHCHcy: SHCHcy,\n SHcy: SHcy,\n SOFTcy: SOFTcy,\n Sacute: Sacute,\n Sc: Sc,\n Scaron: Scaron,\n Scedil: Scedil,\n Scirc: Scirc,\n Scy: Scy,\n Sfr: Sfr,\n ShortDownArrow: ShortDownArrow,\n ShortLeftArrow: ShortLeftArrow,\n ShortRightArrow: ShortRightArrow,\n ShortUpArrow: ShortUpArrow,\n Sigma: Sigma,\n SmallCircle: SmallCircle,\n Sopf: Sopf,\n Sqrt: Sqrt,\n Square: Square,\n SquareIntersection: SquareIntersection,\n SquareSubset: SquareSubset,\n SquareSubsetEqual: SquareSubsetEqual,\n SquareSuperset: SquareSuperset,\n SquareSupersetEqual: SquareSupersetEqual,\n SquareUnion: SquareUnion,\n Sscr: Sscr,\n Star: Star,\n Sub: Sub,\n Subset: Subset,\n SubsetEqual: SubsetEqual,\n Succeeds: Succeeds,\n SucceedsEqual: SucceedsEqual,\n SucceedsSlantEqual: SucceedsSlantEqual,\n SucceedsTilde: SucceedsTilde,\n SuchThat: SuchThat,\n Sum: Sum,\n Sup: Sup,\n Superset: Superset,\n SupersetEqual: SupersetEqual,\n Supset: Supset,\n THOR: THOR,\n THORN: THORN,\n TRADE: TRADE,\n TSHcy: TSHcy,\n TScy: TScy,\n Tab: Tab,\n Tau: Tau,\n Tcaron: Tcaron,\n Tcedil: Tcedil,\n Tcy: Tcy,\n Tfr: Tfr,\n Therefore: Therefore,\n Theta: Theta,\n ThickSpace: ThickSpace,\n ThinSpace: ThinSpace,\n Tilde: Tilde,\n TildeEqual: TildeEqual,\n TildeFullEqual: TildeFullEqual,\n TildeTilde: TildeTilde,\n Topf: Topf,\n TripleDot: TripleDot,\n Tscr: Tscr,\n Tstrok: Tstrok,\n Uacut: Uacut,\n Uacute: Uacute,\n Uarr: Uarr,\n Uarrocir: Uarrocir,\n Ubrcy: Ubrcy,\n Ubreve: Ubreve,\n Ucir: Ucir,\n Ucirc: Ucirc,\n Ucy: Ucy,\n Udblac: Udblac,\n Ufr: Ufr,\n Ugrav: Ugrav,\n Ugrave: Ugrave,\n Umacr: Umacr,\n UnderBar: UnderBar,\n UnderBrace: UnderBrace,\n UnderBracket: UnderBracket,\n UnderParenthesis: UnderParenthesis,\n Union: Union,\n UnionPlus: UnionPlus,\n Uogon: Uogon,\n Uopf: Uopf,\n UpArrow: UpArrow,\n UpArrowBar: UpArrowBar,\n UpArrowDownArrow: UpArrowDownArrow,\n UpDownArrow: UpDownArrow,\n UpEquilibrium: UpEquilibrium,\n UpTee: UpTee,\n UpTeeArrow: UpTeeArrow,\n Uparrow: Uparrow,\n Updownarrow: Updownarrow,\n UpperLeftArrow: UpperLeftArrow,\n UpperRightArrow: UpperRightArrow,\n Upsi: Upsi,\n Upsilon: Upsilon,\n Uring: Uring,\n Uscr: Uscr,\n Utilde: Utilde,\n Uum: Uum,\n Uuml: Uuml,\n VDash: VDash,\n Vbar: Vbar,\n Vcy: Vcy,\n Vdash: Vdash,\n Vdashl: Vdashl,\n Vee: Vee,\n Verbar: Verbar,\n Vert: Vert,\n VerticalBar: VerticalBar,\n VerticalLine: VerticalLine,\n VerticalSeparator: VerticalSeparator,\n VerticalTilde: VerticalTilde,\n VeryThinSpace: VeryThinSpace,\n Vfr: Vfr,\n Vopf: Vopf,\n Vscr: Vscr,\n Vvdash: Vvdash,\n Wcirc: Wcirc,\n Wedge: Wedge,\n Wfr: Wfr,\n Wopf: Wopf,\n Wscr: Wscr,\n Xfr: Xfr,\n Xi: Xi,\n Xopf: Xopf,\n Xscr: Xscr,\n YAcy: YAcy,\n YIcy: YIcy,\n YUcy: YUcy,\n Yacut: Yacut,\n Yacute: Yacute,\n Ycirc: Ycirc,\n Ycy: Ycy,\n Yfr: Yfr,\n Yopf: Yopf,\n Yscr: Yscr,\n Yuml: Yuml,\n ZHcy: ZHcy,\n Zacute: Zacute,\n Zcaron: Zcaron,\n Zcy: Zcy,\n Zdot: Zdot,\n ZeroWidthSpace: ZeroWidthSpace,\n Zeta: Zeta,\n Zfr: Zfr,\n Zopf: Zopf,\n Zscr: Zscr,\n aacut: aacut,\n aacute: aacute,\n abreve: abreve,\n ac: ac,\n acE: acE,\n acd: acd,\n acir: acir,\n acirc: acirc,\n acut: acut,\n acute: acute,\n acy: acy,\n aeli: aeli,\n aelig: aelig,\n af: af,\n afr: afr,\n agrav: agrav,\n agrave: agrave,\n alefsym: alefsym,\n aleph: aleph,\n alpha: alpha,\n amacr: amacr,\n amalg: amalg,\n am: am,\n amp: amp,\n and: and,\n andand: andand,\n andd: andd,\n andslope: andslope,\n andv: andv,\n ang: ang,\n ange: ange,\n angle: angle,\n angmsd: angmsd,\n angmsdaa: angmsdaa,\n angmsdab: angmsdab,\n angmsdac: angmsdac,\n angmsdad: angmsdad,\n angmsdae: angmsdae,\n angmsdaf: angmsdaf,\n angmsdag: angmsdag,\n angmsdah: angmsdah,\n angrt: angrt,\n angrtvb: angrtvb,\n angrtvbd: angrtvbd,\n angsph: angsph,\n angst: angst,\n angzarr: angzarr,\n aogon: aogon,\n aopf: aopf,\n ap: ap,\n apE: apE,\n apacir: apacir,\n ape: ape,\n apid: apid,\n apos: apos,\n approx: approx,\n approxeq: approxeq,\n arin: arin,\n aring: aring,\n ascr: ascr,\n ast: ast,\n asymp: asymp,\n asympeq: asympeq,\n atild: atild,\n atilde: atilde,\n aum: aum,\n auml: auml,\n awconint: awconint,\n awint: awint,\n bNot: bNot,\n backcong: backcong,\n backepsilon: backepsilon,\n backprime: backprime,\n backsim: backsim,\n backsimeq: backsimeq,\n barvee: barvee,\n barwed: barwed,\n barwedge: barwedge,\n bbrk: bbrk,\n bbrktbrk: bbrktbrk,\n bcong: bcong,\n bcy: bcy,\n bdquo: bdquo,\n becaus: becaus,\n because: because,\n bemptyv: bemptyv,\n bepsi: bepsi,\n bernou: bernou,\n beta: beta,\n beth: beth,\n between: between,\n bfr: bfr,\n bigcap: bigcap,\n bigcirc: bigcirc,\n bigcup: bigcup,\n bigodot: bigodot,\n bigoplus: bigoplus,\n bigotimes: bigotimes,\n bigsqcup: bigsqcup,\n bigstar: bigstar,\n bigtriangledown: bigtriangledown,\n bigtriangleup: bigtriangleup,\n biguplus: biguplus,\n bigvee: bigvee,\n bigwedge: bigwedge,\n bkarow: bkarow,\n blacklozenge: blacklozenge,\n blacksquare: blacksquare,\n blacktriangle: blacktriangle,\n blacktriangledown: blacktriangledown,\n blacktriangleleft: blacktriangleleft,\n blacktriangleright: blacktriangleright,\n blank: blank,\n blk12: blk12,\n blk14: blk14,\n blk34: blk34,\n block: block,\n bne: bne,\n bnequiv: bnequiv,\n bnot: bnot,\n bopf: bopf,\n bot: bot,\n bottom: bottom,\n bowtie: bowtie,\n boxDL: boxDL,\n boxDR: boxDR,\n boxDl: boxDl,\n boxDr: boxDr,\n boxH: boxH,\n boxHD: boxHD,\n boxHU: boxHU,\n boxHd: boxHd,\n boxHu: boxHu,\n boxUL: boxUL,\n boxUR: boxUR,\n boxUl: boxUl,\n boxUr: boxUr,\n boxV: boxV,\n boxVH: boxVH,\n boxVL: boxVL,\n boxVR: boxVR,\n boxVh: boxVh,\n boxVl: boxVl,\n boxVr: boxVr,\n boxbox: boxbox,\n boxdL: boxdL,\n boxdR: boxdR,\n boxdl: boxdl,\n boxdr: boxdr,\n boxh: boxh,\n boxhD: boxhD,\n boxhU: boxhU,\n boxhd: boxhd,\n boxhu: boxhu,\n boxminus: boxminus,\n boxplus: boxplus,\n boxtimes: boxtimes,\n boxuL: boxuL,\n boxuR: boxuR,\n boxul: boxul,\n boxur: boxur,\n boxv: boxv,\n boxvH: boxvH,\n boxvL: boxvL,\n boxvR: boxvR,\n boxvh: boxvh,\n boxvl: boxvl,\n boxvr: boxvr,\n bprime: bprime,\n breve: breve,\n brvba: brvba,\n brvbar: brvbar,\n bscr: bscr,\n bsemi: bsemi,\n bsim: bsim,\n bsime: bsime,\n bsol: bsol,\n bsolb: bsolb,\n bsolhsub: bsolhsub,\n bull: bull,\n bullet: bullet,\n bump: bump,\n bumpE: bumpE,\n bumpe: bumpe,\n bumpeq: bumpeq,\n cacute: cacute,\n cap: cap,\n capand: capand,\n capbrcup: capbrcup,\n capcap: capcap,\n capcup: capcup,\n capdot: capdot,\n caps: caps,\n caret: caret,\n caron: caron,\n ccaps: ccaps,\n ccaron: ccaron,\n ccedi: ccedi,\n ccedil: ccedil,\n ccirc: ccirc,\n ccups: ccups,\n ccupssm: ccupssm,\n cdot: cdot,\n cedi: cedi,\n cedil: cedil,\n cemptyv: cemptyv,\n cen: cen,\n cent: cent,\n centerdot: centerdot,\n cfr: cfr,\n chcy: chcy,\n check: check,\n checkmark: checkmark,\n chi: chi,\n cir: cir,\n cirE: cirE,\n circ: circ,\n circeq: circeq,\n circlearrowleft: circlearrowleft,\n circlearrowright: circlearrowright,\n circledR: circledR,\n circledS: circledS,\n circledast: circledast,\n circledcirc: circledcirc,\n circleddash: circleddash,\n cire: cire,\n cirfnint: cirfnint,\n cirmid: cirmid,\n cirscir: cirscir,\n clubs: clubs,\n clubsuit: clubsuit,\n colon: colon,\n colone: colone,\n coloneq: coloneq,\n comma: comma,\n commat: commat,\n comp: comp,\n compfn: compfn,\n complement: complement,\n complexes: complexes,\n cong: cong,\n congdot: congdot,\n conint: conint,\n copf: copf,\n coprod: coprod,\n cop: cop,\n copy: copy,\n copysr: copysr,\n crarr: crarr,\n cross: cross,\n cscr: cscr,\n csub: csub,\n csube: csube,\n csup: csup,\n csupe: csupe,\n ctdot: ctdot,\n cudarrl: cudarrl,\n cudarrr: cudarrr,\n cuepr: cuepr,\n cuesc: cuesc,\n cularr: cularr,\n cularrp: cularrp,\n cup: cup,\n cupbrcap: cupbrcap,\n cupcap: cupcap,\n cupcup: cupcup,\n cupdot: cupdot,\n cupor: cupor,\n cups: cups,\n curarr: curarr,\n curarrm: curarrm,\n curlyeqprec: curlyeqprec,\n curlyeqsucc: curlyeqsucc,\n curlyvee: curlyvee,\n curlywedge: curlywedge,\n curre: curre,\n curren: curren,\n curvearrowleft: curvearrowleft,\n curvearrowright: curvearrowright,\n cuvee: cuvee,\n cuwed: cuwed,\n cwconint: cwconint,\n cwint: cwint,\n cylcty: cylcty,\n dArr: dArr,\n dHar: dHar,\n dagger: dagger,\n daleth: daleth,\n darr: darr,\n dash: dash,\n dashv: dashv,\n dbkarow: dbkarow,\n dblac: dblac,\n dcaron: dcaron,\n dcy: dcy,\n dd: dd,\n ddagger: ddagger,\n ddarr: ddarr,\n ddotseq: ddotseq,\n de: de,\n deg: deg,\n delta: delta,\n demptyv: demptyv,\n dfisht: dfisht,\n dfr: dfr,\n dharl: dharl,\n dharr: dharr,\n diam: diam,\n diamond: diamond,\n diamondsuit: diamondsuit,\n diams: diams,\n die: die,\n digamma: digamma,\n disin: disin,\n div: div,\n divid: divid,\n divide: divide,\n divideontimes: divideontimes,\n divonx: divonx,\n djcy: djcy,\n dlcorn: dlcorn,\n dlcrop: dlcrop,\n dollar: dollar,\n dopf: dopf,\n dot: dot,\n doteq: doteq,\n doteqdot: doteqdot,\n dotminus: dotminus,\n dotplus: dotplus,\n dotsquare: dotsquare,\n doublebarwedge: doublebarwedge,\n downarrow: downarrow,\n downdownarrows: downdownarrows,\n downharpoonleft: downharpoonleft,\n downharpoonright: downharpoonright,\n drbkarow: drbkarow,\n drcorn: drcorn,\n drcrop: drcrop,\n dscr: dscr,\n dscy: dscy,\n dsol: dsol,\n dstrok: dstrok,\n dtdot: dtdot,\n dtri: dtri,\n dtrif: dtrif,\n duarr: duarr,\n duhar: duhar,\n dwangle: dwangle,\n dzcy: dzcy,\n dzigrarr: dzigrarr,\n eDDot: eDDot,\n eDot: eDot,\n eacut: eacut,\n eacute: eacute,\n easter: easter,\n ecaron: ecaron,\n ecir: ecir,\n ecirc: ecirc,\n ecolon: ecolon,\n ecy: ecy,\n edot: edot,\n ee: ee,\n efDot: efDot,\n efr: efr,\n eg: eg,\n egrav: egrav,\n egrave: egrave,\n egs: egs,\n egsdot: egsdot,\n el: el,\n elinters: elinters,\n ell: ell,\n els: els,\n elsdot: elsdot,\n emacr: emacr,\n empty: empty,\n emptyset: emptyset,\n emptyv: emptyv,\n emsp13: emsp13,\n emsp14: emsp14,\n emsp: emsp,\n eng: eng,\n ensp: ensp,\n eogon: eogon,\n eopf: eopf,\n epar: epar,\n eparsl: eparsl,\n eplus: eplus,\n epsi: epsi,\n epsilon: epsilon,\n epsiv: epsiv,\n eqcirc: eqcirc,\n eqcolon: eqcolon,\n eqsim: eqsim,\n eqslantgtr: eqslantgtr,\n eqslantless: eqslantless,\n equals: equals,\n equest: equest,\n equiv: equiv,\n equivDD: equivDD,\n eqvparsl: eqvparsl,\n erDot: erDot,\n erarr: erarr,\n escr: escr,\n esdot: esdot,\n esim: esim,\n eta: eta,\n et: et,\n eth: eth,\n eum: eum,\n euml: euml,\n euro: euro,\n excl: excl,\n exist: exist,\n expectation: expectation,\n exponentiale: exponentiale,\n fallingdotseq: fallingdotseq,\n fcy: fcy,\n female: female,\n ffilig: ffilig,\n fflig: fflig,\n ffllig: ffllig,\n ffr: ffr,\n filig: filig,\n fjlig: fjlig,\n flat: flat,\n fllig: fllig,\n fltns: fltns,\n fnof: fnof,\n fopf: fopf,\n forall: forall,\n fork: fork,\n forkv: forkv,\n fpartint: fpartint,\n frac1: frac1,\n frac12: frac12,\n frac13: frac13,\n frac14: frac14,\n frac15: frac15,\n frac16: frac16,\n frac18: frac18,\n frac23: frac23,\n frac25: frac25,\n frac3: frac3,\n frac34: frac34,\n frac35: frac35,\n frac38: frac38,\n frac45: frac45,\n frac56: frac56,\n frac58: frac58,\n frac78: frac78,\n frasl: frasl,\n frown: frown,\n fscr: fscr,\n gE: gE,\n gEl: gEl,\n gacute: gacute,\n gamma: gamma,\n gammad: gammad,\n gap: gap,\n gbreve: gbreve,\n gcirc: gcirc,\n gcy: gcy,\n gdot: gdot,\n ge: ge,\n gel: gel,\n geq: geq,\n geqq: geqq,\n geqslant: geqslant,\n ges: ges,\n gescc: gescc,\n gesdot: gesdot,\n gesdoto: gesdoto,\n gesdotol: gesdotol,\n gesl: gesl,\n gesles: gesles,\n gfr: gfr,\n gg: gg,\n ggg: ggg,\n gimel: gimel,\n gjcy: gjcy,\n gl: gl,\n glE: glE,\n gla: gla,\n glj: glj,\n gnE: gnE,\n gnap: gnap,\n gnapprox: gnapprox,\n gne: gne,\n gneq: gneq,\n gneqq: gneqq,\n gnsim: gnsim,\n gopf: gopf,\n grave: grave,\n gscr: gscr,\n gsim: gsim,\n gsime: gsime,\n gsiml: gsiml,\n g: g,\n gt: gt,\n gtcc: gtcc,\n gtcir: gtcir,\n gtdot: gtdot,\n gtlPar: gtlPar,\n gtquest: gtquest,\n gtrapprox: gtrapprox,\n gtrarr: gtrarr,\n gtrdot: gtrdot,\n gtreqless: gtreqless,\n gtreqqless: gtreqqless,\n gtrless: gtrless,\n gtrsim: gtrsim,\n gvertneqq: gvertneqq,\n gvnE: gvnE,\n hArr: hArr,\n hairsp: hairsp,\n half: half,\n hamilt: hamilt,\n hardcy: hardcy,\n harr: harr,\n harrcir: harrcir,\n harrw: harrw,\n hbar: hbar,\n hcirc: hcirc,\n hearts: hearts,\n heartsuit: heartsuit,\n hellip: hellip,\n hercon: hercon,\n hfr: hfr,\n hksearow: hksearow,\n hkswarow: hkswarow,\n hoarr: hoarr,\n homtht: homtht,\n hookleftarrow: hookleftarrow,\n hookrightarrow: hookrightarrow,\n hopf: hopf,\n horbar: horbar,\n hscr: hscr,\n hslash: hslash,\n hstrok: hstrok,\n hybull: hybull,\n hyphen: hyphen,\n iacut: iacut,\n iacute: iacute,\n ic: ic,\n icir: icir,\n icirc: icirc,\n icy: icy,\n iecy: iecy,\n iexc: iexc,\n iexcl: iexcl,\n iff: iff,\n ifr: ifr,\n igrav: igrav,\n igrave: igrave,\n ii: ii,\n iiiint: iiiint,\n iiint: iiint,\n iinfin: iinfin,\n iiota: iiota,\n ijlig: ijlig,\n imacr: imacr,\n image: image,\n imagline: imagline,\n imagpart: imagpart,\n imath: imath,\n imof: imof,\n imped: imped,\n \"in\": \"∈\",\n incare: incare,\n infin: infin,\n infintie: infintie,\n inodot: inodot,\n int: int,\n intcal: intcal,\n integers: integers,\n intercal: intercal,\n intlarhk: intlarhk,\n intprod: intprod,\n iocy: iocy,\n iogon: iogon,\n iopf: iopf,\n iota: iota,\n iprod: iprod,\n iques: iques,\n iquest: iquest,\n iscr: iscr,\n isin: isin,\n isinE: isinE,\n isindot: isindot,\n isins: isins,\n isinsv: isinsv,\n isinv: isinv,\n it: it,\n itilde: itilde,\n iukcy: iukcy,\n ium: ium,\n iuml: iuml,\n jcirc: jcirc,\n jcy: jcy,\n jfr: jfr,\n jmath: jmath,\n jopf: jopf,\n jscr: jscr,\n jsercy: jsercy,\n jukcy: jukcy,\n kappa: kappa,\n kappav: kappav,\n kcedil: kcedil,\n kcy: kcy,\n kfr: kfr,\n kgreen: kgreen,\n khcy: khcy,\n kjcy: kjcy,\n kopf: kopf,\n kscr: kscr,\n lAarr: lAarr,\n lArr: lArr,\n lAtail: lAtail,\n lBarr: lBarr,\n lE: lE,\n lEg: lEg,\n lHar: lHar,\n lacute: lacute,\n laemptyv: laemptyv,\n lagran: lagran,\n lambda: lambda,\n lang: lang,\n langd: langd,\n langle: langle,\n lap: lap,\n laqu: laqu,\n laquo: laquo,\n larr: larr,\n larrb: larrb,\n larrbfs: larrbfs,\n larrfs: larrfs,\n larrhk: larrhk,\n larrlp: larrlp,\n larrpl: larrpl,\n larrsim: larrsim,\n larrtl: larrtl,\n lat: lat,\n latail: latail,\n late: late,\n lates: lates,\n lbarr: lbarr,\n lbbrk: lbbrk,\n lbrace: lbrace,\n lbrack: lbrack,\n lbrke: lbrke,\n lbrksld: lbrksld,\n lbrkslu: lbrkslu,\n lcaron: lcaron,\n lcedil: lcedil,\n lceil: lceil,\n lcub: lcub,\n lcy: lcy,\n ldca: ldca,\n ldquo: ldquo,\n ldquor: ldquor,\n ldrdhar: ldrdhar,\n ldrushar: ldrushar,\n ldsh: ldsh,\n le: le,\n leftarrow: leftarrow,\n leftarrowtail: leftarrowtail,\n leftharpoondown: leftharpoondown,\n leftharpoonup: leftharpoonup,\n leftleftarrows: leftleftarrows,\n leftrightarrow: leftrightarrow,\n leftrightarrows: leftrightarrows,\n leftrightharpoons: leftrightharpoons,\n leftrightsquigarrow: leftrightsquigarrow,\n leftthreetimes: leftthreetimes,\n leg: leg,\n leq: leq,\n leqq: leqq,\n leqslant: leqslant,\n les: les,\n lescc: lescc,\n lesdot: lesdot,\n lesdoto: lesdoto,\n lesdotor: lesdotor,\n lesg: lesg,\n lesges: lesges,\n lessapprox: lessapprox,\n lessdot: lessdot,\n lesseqgtr: lesseqgtr,\n lesseqqgtr: lesseqqgtr,\n lessgtr: lessgtr,\n lesssim: lesssim,\n lfisht: lfisht,\n lfloor: lfloor,\n lfr: lfr,\n lg: lg,\n lgE: lgE,\n lhard: lhard,\n lharu: lharu,\n lharul: lharul,\n lhblk: lhblk,\n ljcy: ljcy,\n ll: ll,\n llarr: llarr,\n llcorner: llcorner,\n llhard: llhard,\n lltri: lltri,\n lmidot: lmidot,\n lmoust: lmoust,\n lmoustache: lmoustache,\n lnE: lnE,\n lnap: lnap,\n lnapprox: lnapprox,\n lne: lne,\n lneq: lneq,\n lneqq: lneqq,\n lnsim: lnsim,\n loang: loang,\n loarr: loarr,\n lobrk: lobrk,\n longleftarrow: longleftarrow,\n longleftrightarrow: longleftrightarrow,\n longmapsto: longmapsto,\n longrightarrow: longrightarrow,\n looparrowleft: looparrowleft,\n looparrowright: looparrowright,\n lopar: lopar,\n lopf: lopf,\n loplus: loplus,\n lotimes: lotimes,\n lowast: lowast,\n lowbar: lowbar,\n loz: loz,\n lozenge: lozenge,\n lozf: lozf,\n lpar: lpar,\n lparlt: lparlt,\n lrarr: lrarr,\n lrcorner: lrcorner,\n lrhar: lrhar,\n lrhard: lrhard,\n lrm: lrm,\n lrtri: lrtri,\n lsaquo: lsaquo,\n lscr: lscr,\n lsh: lsh,\n lsim: lsim,\n lsime: lsime,\n lsimg: lsimg,\n lsqb: lsqb,\n lsquo: lsquo,\n lsquor: lsquor,\n lstrok: lstrok,\n l: l,\n lt: lt,\n ltcc: ltcc,\n ltcir: ltcir,\n ltdot: ltdot,\n lthree: lthree,\n ltimes: ltimes,\n ltlarr: ltlarr,\n ltquest: ltquest,\n ltrPar: ltrPar,\n ltri: ltri,\n ltrie: ltrie,\n ltrif: ltrif,\n lurdshar: lurdshar,\n luruhar: luruhar,\n lvertneqq: lvertneqq,\n lvnE: lvnE,\n mDDot: mDDot,\n mac: mac,\n macr: macr,\n male: male,\n malt: malt,\n maltese: maltese,\n map: map,\n mapsto: mapsto,\n mapstodown: mapstodown,\n mapstoleft: mapstoleft,\n mapstoup: mapstoup,\n marker: marker,\n mcomma: mcomma,\n mcy: mcy,\n mdash: mdash,\n measuredangle: measuredangle,\n mfr: mfr,\n mho: mho,\n micr: micr,\n micro: micro,\n mid: mid,\n midast: midast,\n midcir: midcir,\n middo: middo,\n middot: middot,\n minus: minus,\n minusb: minusb,\n minusd: minusd,\n minusdu: minusdu,\n mlcp: mlcp,\n mldr: mldr,\n mnplus: mnplus,\n models: models,\n mopf: mopf,\n mp: mp,\n mscr: mscr,\n mstpos: mstpos,\n mu: mu,\n multimap: multimap,\n mumap: mumap,\n nGg: nGg,\n nGt: nGt,\n nGtv: nGtv,\n nLeftarrow: nLeftarrow,\n nLeftrightarrow: nLeftrightarrow,\n nLl: nLl,\n nLt: nLt,\n nLtv: nLtv,\n nRightarrow: nRightarrow,\n nVDash: nVDash,\n nVdash: nVdash,\n nabla: nabla,\n nacute: nacute,\n nang: nang,\n nap: nap,\n napE: napE,\n napid: napid,\n napos: napos,\n napprox: napprox,\n natur: natur,\n natural: natural,\n naturals: naturals,\n nbs: nbs,\n nbsp: nbsp,\n nbump: nbump,\n nbumpe: nbumpe,\n ncap: ncap,\n ncaron: ncaron,\n ncedil: ncedil,\n ncong: ncong,\n ncongdot: ncongdot,\n ncup: ncup,\n ncy: ncy,\n ndash: ndash,\n ne: ne,\n neArr: neArr,\n nearhk: nearhk,\n nearr: nearr,\n nearrow: nearrow,\n nedot: nedot,\n nequiv: nequiv,\n nesear: nesear,\n nesim: nesim,\n nexist: nexist,\n nexists: nexists,\n nfr: nfr,\n ngE: ngE,\n nge: nge,\n ngeq: ngeq,\n ngeqq: ngeqq,\n ngeqslant: ngeqslant,\n nges: nges,\n ngsim: ngsim,\n ngt: ngt,\n ngtr: ngtr,\n nhArr: nhArr,\n nharr: nharr,\n nhpar: nhpar,\n ni: ni,\n nis: nis,\n nisd: nisd,\n niv: niv,\n njcy: njcy,\n nlArr: nlArr,\n nlE: nlE,\n nlarr: nlarr,\n nldr: nldr,\n nle: nle,\n nleftarrow: nleftarrow,\n nleftrightarrow: nleftrightarrow,\n nleq: nleq,\n nleqq: nleqq,\n nleqslant: nleqslant,\n nles: nles,\n nless: nless,\n nlsim: nlsim,\n nlt: nlt,\n nltri: nltri,\n nltrie: nltrie,\n nmid: nmid,\n nopf: nopf,\n no: no,\n not: not,\n notin: notin,\n notinE: notinE,\n notindot: notindot,\n notinva: notinva,\n notinvb: notinvb,\n notinvc: notinvc,\n notni: notni,\n notniva: notniva,\n notnivb: notnivb,\n notnivc: notnivc,\n npar: npar,\n nparallel: nparallel,\n nparsl: nparsl,\n npart: npart,\n npolint: npolint,\n npr: npr,\n nprcue: nprcue,\n npre: npre,\n nprec: nprec,\n npreceq: npreceq,\n nrArr: nrArr,\n nrarr: nrarr,\n nrarrc: nrarrc,\n nrarrw: nrarrw,\n nrightarrow: nrightarrow,\n nrtri: nrtri,\n nrtrie: nrtrie,\n nsc: nsc,\n nsccue: nsccue,\n nsce: nsce,\n nscr: nscr,\n nshortmid: nshortmid,\n nshortparallel: nshortparallel,\n nsim: nsim,\n nsime: nsime,\n nsimeq: nsimeq,\n nsmid: nsmid,\n nspar: nspar,\n nsqsube: nsqsube,\n nsqsupe: nsqsupe,\n nsub: nsub,\n nsubE: nsubE,\n nsube: nsube,\n nsubset: nsubset,\n nsubseteq: nsubseteq,\n nsubseteqq: nsubseteqq,\n nsucc: nsucc,\n nsucceq: nsucceq,\n nsup: nsup,\n nsupE: nsupE,\n nsupe: nsupe,\n nsupset: nsupset,\n nsupseteq: nsupseteq,\n nsupseteqq: nsupseteqq,\n ntgl: ntgl,\n ntild: ntild,\n ntilde: ntilde,\n ntlg: ntlg,\n ntriangleleft: ntriangleleft,\n ntrianglelefteq: ntrianglelefteq,\n ntriangleright: ntriangleright,\n ntrianglerighteq: ntrianglerighteq,\n nu: nu,\n num: num,\n numero: numero,\n numsp: numsp,\n nvDash: nvDash,\n nvHarr: nvHarr,\n nvap: nvap,\n nvdash: nvdash,\n nvge: nvge,\n nvgt: nvgt,\n nvinfin: nvinfin,\n nvlArr: nvlArr,\n nvle: nvle,\n nvlt: nvlt,\n nvltrie: nvltrie,\n nvrArr: nvrArr,\n nvrtrie: nvrtrie,\n nvsim: nvsim,\n nwArr: nwArr,\n nwarhk: nwarhk,\n nwarr: nwarr,\n nwarrow: nwarrow,\n nwnear: nwnear,\n oS: oS,\n oacut: oacut,\n oacute: oacute,\n oast: oast,\n ocir: ocir,\n ocirc: ocirc,\n ocy: ocy,\n odash: odash,\n odblac: odblac,\n odiv: odiv,\n odot: odot,\n odsold: odsold,\n oelig: oelig,\n ofcir: ofcir,\n ofr: ofr,\n ogon: ogon,\n ograv: ograv,\n ograve: ograve,\n ogt: ogt,\n ohbar: ohbar,\n ohm: ohm,\n oint: oint,\n olarr: olarr,\n olcir: olcir,\n olcross: olcross,\n oline: oline,\n olt: olt,\n omacr: omacr,\n omega: omega,\n omicron: omicron,\n omid: omid,\n ominus: ominus,\n oopf: oopf,\n opar: opar,\n operp: operp,\n oplus: oplus,\n or: or,\n orarr: orarr,\n ord: ord,\n order: order,\n orderof: orderof,\n ordf: ordf,\n ordm: ordm,\n origof: origof,\n oror: oror,\n orslope: orslope,\n orv: orv,\n oscr: oscr,\n oslas: oslas,\n oslash: oslash,\n osol: osol,\n otild: otild,\n otilde: otilde,\n otimes: otimes,\n otimesas: otimesas,\n oum: oum,\n ouml: ouml,\n ovbar: ovbar,\n par: par,\n para: para,\n parallel: parallel,\n parsim: parsim,\n parsl: parsl,\n part: part,\n pcy: pcy,\n percnt: percnt,\n period: period,\n permil: permil,\n perp: perp,\n pertenk: pertenk,\n pfr: pfr,\n phi: phi,\n phiv: phiv,\n phmmat: phmmat,\n phone: phone,\n pi: pi,\n pitchfork: pitchfork,\n piv: piv,\n planck: planck,\n planckh: planckh,\n plankv: plankv,\n plus: plus,\n plusacir: plusacir,\n plusb: plusb,\n pluscir: pluscir,\n plusdo: plusdo,\n plusdu: plusdu,\n pluse: pluse,\n plusm: plusm,\n plusmn: plusmn,\n plussim: plussim,\n plustwo: plustwo,\n pm: pm,\n pointint: pointint,\n popf: popf,\n poun: poun,\n pound: pound,\n pr: pr,\n prE: prE,\n prap: prap,\n prcue: prcue,\n pre: pre,\n prec: prec,\n precapprox: precapprox,\n preccurlyeq: preccurlyeq,\n preceq: preceq,\n precnapprox: precnapprox,\n precneqq: precneqq,\n precnsim: precnsim,\n precsim: precsim,\n prime: prime,\n primes: primes,\n prnE: prnE,\n prnap: prnap,\n prnsim: prnsim,\n prod: prod,\n profalar: profalar,\n profline: profline,\n profsurf: profsurf,\n prop: prop,\n propto: propto,\n prsim: prsim,\n prurel: prurel,\n pscr: pscr,\n psi: psi,\n puncsp: puncsp,\n qfr: qfr,\n qint: qint,\n qopf: qopf,\n qprime: qprime,\n qscr: qscr,\n quaternions: quaternions,\n quatint: quatint,\n quest: quest,\n questeq: questeq,\n quo: quo,\n quot: quot,\n rAarr: rAarr,\n rArr: rArr,\n rAtail: rAtail,\n rBarr: rBarr,\n rHar: rHar,\n race: race,\n racute: racute,\n radic: radic,\n raemptyv: raemptyv,\n rang: rang,\n rangd: rangd,\n range: range,\n rangle: rangle,\n raqu: raqu,\n raquo: raquo,\n rarr: rarr,\n rarrap: rarrap,\n rarrb: rarrb,\n rarrbfs: rarrbfs,\n rarrc: rarrc,\n rarrfs: rarrfs,\n rarrhk: rarrhk,\n rarrlp: rarrlp,\n rarrpl: rarrpl,\n rarrsim: rarrsim,\n rarrtl: rarrtl,\n rarrw: rarrw,\n ratail: ratail,\n ratio: ratio,\n rationals: rationals,\n rbarr: rbarr,\n rbbrk: rbbrk,\n rbrace: rbrace,\n rbrack: rbrack,\n rbrke: rbrke,\n rbrksld: rbrksld,\n rbrkslu: rbrkslu,\n rcaron: rcaron,\n rcedil: rcedil,\n rceil: rceil,\n rcub: rcub,\n rcy: rcy,\n rdca: rdca,\n rdldhar: rdldhar,\n rdquo: rdquo,\n rdquor: rdquor,\n rdsh: rdsh,\n real: real,\n realine: realine,\n realpart: realpart,\n reals: reals,\n rect: rect,\n re: re,\n reg: reg,\n rfisht: rfisht,\n rfloor: rfloor,\n rfr: rfr,\n rhard: rhard,\n rharu: rharu,\n rharul: rharul,\n rho: rho,\n rhov: rhov,\n rightarrow: rightarrow,\n rightarrowtail: rightarrowtail,\n rightharpoondown: rightharpoondown,\n rightharpoonup: rightharpoonup,\n rightleftarrows: rightleftarrows,\n rightleftharpoons: rightleftharpoons,\n rightrightarrows: rightrightarrows,\n rightsquigarrow: rightsquigarrow,\n rightthreetimes: rightthreetimes,\n ring: ring,\n risingdotseq: risingdotseq,\n rlarr: rlarr,\n rlhar: rlhar,\n rlm: rlm,\n rmoust: rmoust,\n rmoustache: rmoustache,\n rnmid: rnmid,\n roang: roang,\n roarr: roarr,\n robrk: robrk,\n ropar: ropar,\n ropf: ropf,\n roplus: roplus,\n rotimes: rotimes,\n rpar: rpar,\n rpargt: rpargt,\n rppolint: rppolint,\n rrarr: rrarr,\n rsaquo: rsaquo,\n rscr: rscr,\n rsh: rsh,\n rsqb: rsqb,\n rsquo: rsquo,\n rsquor: rsquor,\n rthree: rthree,\n rtimes: rtimes,\n rtri: rtri,\n rtrie: rtrie,\n rtrif: rtrif,\n rtriltri: rtriltri,\n ruluhar: ruluhar,\n rx: rx,\n sacute: sacute,\n sbquo: sbquo,\n sc: sc,\n scE: scE,\n scap: scap,\n scaron: scaron,\n sccue: sccue,\n sce: sce,\n scedil: scedil,\n scirc: scirc,\n scnE: scnE,\n scnap: scnap,\n scnsim: scnsim,\n scpolint: scpolint,\n scsim: scsim,\n scy: scy,\n sdot: sdot,\n sdotb: sdotb,\n sdote: sdote,\n seArr: seArr,\n searhk: searhk,\n searr: searr,\n searrow: searrow,\n sec: sec,\n sect: sect,\n semi: semi,\n seswar: seswar,\n setminus: setminus,\n setmn: setmn,\n sext: sext,\n sfr: sfr,\n sfrown: sfrown,\n sharp: sharp,\n shchcy: shchcy,\n shcy: shcy,\n shortmid: shortmid,\n shortparallel: shortparallel,\n sh: sh,\n shy: shy,\n sigma: sigma,\n sigmaf: sigmaf,\n sigmav: sigmav,\n sim: sim,\n simdot: simdot,\n sime: sime,\n simeq: simeq,\n simg: simg,\n simgE: simgE,\n siml: siml,\n simlE: simlE,\n simne: simne,\n simplus: simplus,\n simrarr: simrarr,\n slarr: slarr,\n smallsetminus: smallsetminus,\n smashp: smashp,\n smeparsl: smeparsl,\n smid: smid,\n smile: smile,\n smt: smt,\n smte: smte,\n smtes: smtes,\n softcy: softcy,\n sol: sol,\n solb: solb,\n solbar: solbar,\n sopf: sopf,\n spades: spades,\n spadesuit: spadesuit,\n spar: spar,\n sqcap: sqcap,\n sqcaps: sqcaps,\n sqcup: sqcup,\n sqcups: sqcups,\n sqsub: sqsub,\n sqsube: sqsube,\n sqsubset: sqsubset,\n sqsubseteq: sqsubseteq,\n sqsup: sqsup,\n sqsupe: sqsupe,\n sqsupset: sqsupset,\n sqsupseteq: sqsupseteq,\n squ: squ,\n square: square,\n squarf: squarf,\n squf: squf,\n srarr: srarr,\n sscr: sscr,\n ssetmn: ssetmn,\n ssmile: ssmile,\n sstarf: sstarf,\n star: star,\n starf: starf,\n straightepsilon: straightepsilon,\n straightphi: straightphi,\n strns: strns,\n sub: sub,\n subE: subE,\n subdot: subdot,\n sube: sube,\n subedot: subedot,\n submult: submult,\n subnE: subnE,\n subne: subne,\n subplus: subplus,\n subrarr: subrarr,\n subset: subset,\n subseteq: subseteq,\n subseteqq: subseteqq,\n subsetneq: subsetneq,\n subsetneqq: subsetneqq,\n subsim: subsim,\n subsub: subsub,\n subsup: subsup,\n succ: succ,\n succapprox: succapprox,\n succcurlyeq: succcurlyeq,\n succeq: succeq,\n succnapprox: succnapprox,\n succneqq: succneqq,\n succnsim: succnsim,\n succsim: succsim,\n sum: sum,\n sung: sung,\n sup: sup,\n sup1: sup1,\n sup2: sup2,\n sup3: sup3,\n supE: supE,\n supdot: supdot,\n supdsub: supdsub,\n supe: supe,\n supedot: supedot,\n suphsol: suphsol,\n suphsub: suphsub,\n suplarr: suplarr,\n supmult: supmult,\n supnE: supnE,\n supne: supne,\n supplus: supplus,\n supset: supset,\n supseteq: supseteq,\n supseteqq: supseteqq,\n supsetneq: supsetneq,\n supsetneqq: supsetneqq,\n supsim: supsim,\n supsub: supsub,\n supsup: supsup,\n swArr: swArr,\n swarhk: swarhk,\n swarr: swarr,\n swarrow: swarrow,\n swnwar: swnwar,\n szli: szli,\n szlig: szlig,\n target: target,\n tau: tau,\n tbrk: tbrk,\n tcaron: tcaron,\n tcedil: tcedil,\n tcy: tcy,\n tdot: tdot,\n telrec: telrec,\n tfr: tfr,\n there4: there4,\n therefore: therefore,\n theta: theta,\n thetasym: thetasym,\n thetav: thetav,\n thickapprox: thickapprox,\n thicksim: thicksim,\n thinsp: thinsp,\n thkap: thkap,\n thksim: thksim,\n thor: thor,\n thorn: thorn,\n tilde: tilde,\n time: time,\n times: times,\n timesb: timesb,\n timesbar: timesbar,\n timesd: timesd,\n tint: tint,\n toea: toea,\n top: top,\n topbot: topbot,\n topcir: topcir,\n topf: topf,\n topfork: topfork,\n tosa: tosa,\n tprime: tprime,\n trade: trade,\n triangle: triangle,\n triangledown: triangledown,\n triangleleft: triangleleft,\n trianglelefteq: trianglelefteq,\n triangleq: triangleq,\n triangleright: triangleright,\n trianglerighteq: trianglerighteq,\n tridot: tridot,\n trie: trie,\n triminus: triminus,\n triplus: triplus,\n trisb: trisb,\n tritime: tritime,\n trpezium: trpezium,\n tscr: tscr,\n tscy: tscy,\n tshcy: tshcy,\n tstrok: tstrok,\n twixt: twixt,\n twoheadleftarrow: twoheadleftarrow,\n twoheadrightarrow: twoheadrightarrow,\n uArr: uArr,\n uHar: uHar,\n uacut: uacut,\n uacute: uacute,\n uarr: uarr,\n ubrcy: ubrcy,\n ubreve: ubreve,\n ucir: ucir,\n ucirc: ucirc,\n ucy: ucy,\n udarr: udarr,\n udblac: udblac,\n udhar: udhar,\n ufisht: ufisht,\n ufr: ufr,\n ugrav: ugrav,\n ugrave: ugrave,\n uharl: uharl,\n uharr: uharr,\n uhblk: uhblk,\n ulcorn: ulcorn,\n ulcorner: ulcorner,\n ulcrop: ulcrop,\n ultri: ultri,\n umacr: umacr,\n um: um,\n uml: uml,\n uogon: uogon,\n uopf: uopf,\n uparrow: uparrow,\n updownarrow: updownarrow,\n upharpoonleft: upharpoonleft,\n upharpoonright: upharpoonright,\n uplus: uplus,\n upsi: upsi,\n upsih: upsih,\n upsilon: upsilon,\n upuparrows: upuparrows,\n urcorn: urcorn,\n urcorner: urcorner,\n urcrop: urcrop,\n uring: uring,\n urtri: urtri,\n uscr: uscr,\n utdot: utdot,\n utilde: utilde,\n utri: utri,\n utrif: utrif,\n uuarr: uuarr,\n uum: uum,\n uuml: uuml,\n uwangle: uwangle,\n vArr: vArr,\n vBar: vBar,\n vBarv: vBarv,\n vDash: vDash,\n vangrt: vangrt,\n varepsilon: varepsilon,\n varkappa: varkappa,\n varnothing: varnothing,\n varphi: varphi,\n varpi: varpi,\n varpropto: varpropto,\n varr: varr,\n varrho: varrho,\n varsigma: varsigma,\n varsubsetneq: varsubsetneq,\n varsubsetneqq: varsubsetneqq,\n varsupsetneq: varsupsetneq,\n varsupsetneqq: varsupsetneqq,\n vartheta: vartheta,\n vartriangleleft: vartriangleleft,\n vartriangleright: vartriangleright,\n vcy: vcy,\n vdash: vdash,\n vee: vee,\n veebar: veebar,\n veeeq: veeeq,\n vellip: vellip,\n verbar: verbar,\n vert: vert,\n vfr: vfr,\n vltri: vltri,\n vnsub: vnsub,\n vnsup: vnsup,\n vopf: vopf,\n vprop: vprop,\n vrtri: vrtri,\n vscr: vscr,\n vsubnE: vsubnE,\n vsubne: vsubne,\n vsupnE: vsupnE,\n vsupne: vsupne,\n vzigzag: vzigzag,\n wcirc: wcirc,\n wedbar: wedbar,\n wedge: wedge,\n wedgeq: wedgeq,\n weierp: weierp,\n wfr: wfr,\n wopf: wopf,\n wp: wp,\n wr: wr,\n wreath: wreath,\n wscr: wscr,\n xcap: xcap,\n xcirc: xcirc,\n xcup: xcup,\n xdtri: xdtri,\n xfr: xfr,\n xhArr: xhArr,\n xharr: xharr,\n xi: xi,\n xlArr: xlArr,\n xlarr: xlarr,\n xmap: xmap,\n xnis: xnis,\n xodot: xodot,\n xopf: xopf,\n xoplus: xoplus,\n xotime: xotime,\n xrArr: xrArr,\n xrarr: xrarr,\n xscr: xscr,\n xsqcup: xsqcup,\n xuplus: xuplus,\n xutri: xutri,\n xvee: xvee,\n xwedge: xwedge,\n yacut: yacut,\n yacute: yacute,\n yacy: yacy,\n ycirc: ycirc,\n ycy: ycy,\n ye: ye,\n yen: yen,\n yfr: yfr,\n yicy: yicy,\n yopf: yopf,\n yscr: yscr,\n yucy: yucy,\n yum: yum,\n yuml: yuml,\n zacute: zacute,\n zcaron: zcaron,\n zcy: zcy,\n zdot: zdot,\n zeetrf: zeetrf,\n zeta: zeta,\n zfr: zfr,\n zhcy: zhcy,\n zigrarr: zigrarr,\n zopf: zopf,\n zscr: zscr,\n zwj: zwj,\n zwnj: zwnj\n};\nvar characterEntities = require$$0;\nvar decodeEntity_1 = decodeEntity$1;\nvar own$2 = {}.hasOwnProperty;\n\nfunction decodeEntity$1(characters) {\n return own$2.call(characterEntities, characters) ? characterEntities[characters] : false;\n}\n\nvar legacy = require$$0$1;\nvar invalid = require$$1;\nvar decimal = isDecimal;\nvar hexadecimal = isHexadecimal;\nvar alphanumerical = isAlphanumerical;\nvar decodeEntity = decodeEntity_1;\nvar parseEntities_1 = parseEntities;\nvar own$1 = {}.hasOwnProperty;\nvar fromCharCode = String.fromCharCode;\nvar noop = Function.prototype; // Default settings.\n\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}; // Characters.\n\nvar tab = 9; // '\\t'\n\nvar lineFeed = 10; // '\\n'\n\nvar formFeed = 12; // '\\f'\n\nvar space = 32; // ' '\n\nvar ampersand = 38; // '&'\n\nvar semicolon = 59; // ';'\n\nvar lessThan = 60; // '<'\n\nvar equalsTo = 61; // '='\n\nvar numberSign = 35; // '#'\n\nvar uppercaseX = 88; // 'X'\n\nvar lowercaseX = 120; // 'x'\n\nvar replacementCharacter = 65533; // '�'\n// Reference types.\n\nvar name = 'named';\nvar hexa = 'hexadecimal';\nvar deci = 'decimal'; // Map of bases.\n\nvar bases = {};\nbases[hexa] = 16;\nbases[deci] = 10; // Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\n\nvar tests = {};\ntests[name] = alphanumerical;\ntests[deci] = decimal;\ntests[hexa] = hexadecimal; // Warning types.\n\nvar namedNotTerminated = 1;\nvar numericNotTerminated = 2;\nvar namedEmpty = 3;\nvar numericEmpty = 4;\nvar namedUnknown = 5;\nvar numericDisallowed = 6;\nvar numericProhibited = 7; // Warning messages.\n\nvar messages = {};\nmessages[namedNotTerminated] = 'Named character references must be terminated by a semicolon';\nmessages[numericNotTerminated] = 'Numeric character references must be terminated by a semicolon';\nmessages[namedEmpty] = 'Named character references cannot be empty';\nmessages[numericEmpty] = 'Numeric character references cannot be empty';\nmessages[namedUnknown] = 'Named character references must be known';\nmessages[numericDisallowed] = 'Numeric character references cannot be disallowed';\nmessages[numericProhibited] = 'Numeric character references cannot be outside the permissible Unicode range'; // Wrap to ensure clean parameters are given to `parse`.\n\nfunction parseEntities(value, options) {\n var settings = {};\n var option;\n var key;\n\n if (!options) {\n options = {};\n }\n\n for (key in defaults) {\n option = options[key];\n settings[key] = option === null || option === undefined ? defaults[key] : option;\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || [];\n settings.position = settings.position.start;\n }\n\n return parse(value, settings);\n} // Parse entities.\n// eslint-disable-next-line complexity\n\n\nfunction parse(value, settings) {\n var additional = settings.additional;\n var nonTerminated = settings.nonTerminated;\n var handleText = settings.text;\n var handleReference = settings.reference;\n var handleWarning = settings.warning;\n var textContext = settings.textContext;\n var referenceContext = settings.referenceContext;\n var warningContext = settings.warningContext;\n var pos = settings.position;\n var indent = settings.indent || [];\n var length = value.length;\n var index = 0;\n var lines = -1;\n var column = pos.column || 1;\n var line = pos.line || 1;\n var queue = '';\n var result = [];\n var entityCharacters;\n var namedEntity;\n var terminated;\n var characters;\n var character;\n var reference;\n var following;\n var warning;\n var reason;\n var output;\n var entity;\n var begin;\n var start;\n var type;\n var test;\n var prev;\n var next;\n var diff;\n var end;\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0);\n } // Cache the current point.\n\n\n prev = now(); // Wrap `handleWarning`.\n\n warning = handleWarning ? parseError : noop; // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n\n index--;\n length++;\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1;\n }\n\n character = value.charCodeAt(index);\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1); // The behaviour depends on the identity of the next character.\n\n if (following === tab || following === lineFeed || following === formFeed || following === space || following === ampersand || following === lessThan || following !== following || additional && following === additional) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character);\n column++;\n continue;\n }\n\n start = index + 1;\n begin = start;\n end = start;\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin; // The behaviour further depends on the next character.\n\n following = value.charCodeAt(end);\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa;\n end = ++begin;\n } else {\n // ASCII digits.\n type = deci;\n }\n } else {\n // Named entity.\n type = name;\n }\n\n entityCharacters = '';\n entity = '';\n characters = '';\n test = tests[type];\n end--;\n\n while (++end < length) {\n following = value.charCodeAt(end);\n\n if (!test(following)) {\n break;\n }\n\n characters += fromCharCode(following); // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n\n if (type === name && own$1.call(legacy, characters)) {\n entityCharacters = characters;\n entity = legacy[characters];\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon;\n\n if (terminated) {\n end++;\n namedEntity = type === name ? decodeEntity(characters) : false;\n\n if (namedEntity) {\n entityCharacters = characters;\n entity = namedEntity;\n }\n }\n\n diff = 1 + end - start;\n if (!terminated && !nonTerminated) ;else if (!characters) {\n // An empty (possible) entity is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff);\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1);\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length;\n diff = 1 + end - begin;\n terminated = false;\n } // If the reference is not terminated, warn.\n\n\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty;\n\n if (settings.attribute) {\n following = value.charCodeAt(end);\n\n if (following === equalsTo) {\n warning(reason, diff);\n entity = null;\n } else if (alphanumerical(following)) {\n entity = null;\n } else {\n warning(reason, diff);\n }\n } else {\n warning(reason, diff);\n }\n }\n }\n\n reference = entity;\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff);\n } // When terminated and number, parse as either hexadecimal or decimal.\n\n\n reference = parseInt(characters, bases[type]); // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n\n if (prohibited(reference)) {\n warning(numericProhibited, diff);\n reference = fromCharCode(replacementCharacter);\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff);\n reference = invalid[reference];\n } else {\n // Parse the number.\n output = ''; // Trigger a warning when the parsed number should not be used.\n\n if (disallowed(reference)) {\n warning(numericDisallowed, diff);\n } // Stringify the number.\n\n\n if (reference > 0xffff) {\n reference -= 0x10000;\n output += fromCharCode(reference >>> (10 & 0x3ff) | 0xd800);\n reference = 0xdc00 | reference & 0x3ff;\n }\n\n reference = output + fromCharCode(reference);\n }\n } // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n\n if (reference) {\n flush();\n prev = now();\n index = end - 1;\n column += end - start + 1;\n result.push(reference);\n next = now();\n next.offset++;\n\n if (handleReference) {\n handleReference.call(referenceContext, reference, {\n start: prev,\n end: next\n }, value.slice(start - 1, end));\n }\n\n prev = next;\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end);\n queue += characters;\n column += characters.length;\n index = end - 1;\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (character === 10 // Line feed\n ) {\n line++;\n lines++;\n column = 0;\n }\n\n if (character === character) {\n queue += fromCharCode(character);\n column++;\n } else {\n flush();\n }\n }\n } // Return the reduced nodes.\n\n\n return result.join(''); // Get current position.\n\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n };\n } // “Throw” a parse-error: a warning.\n\n\n function parseError(code, offset) {\n var position = now();\n position.column += offset;\n position.offset += offset;\n handleWarning.call(warningContext, messages[code], position, code);\n } // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n\n\n function flush() {\n if (queue) {\n result.push(queue);\n\n if (handleText) {\n handleText.call(textContext, queue, {\n start: prev,\n end: now()\n });\n }\n\n queue = '';\n }\n }\n} // Check if `character` is outside the permissible unicode range.\n\n\nfunction prohibited(code) {\n return code >= 0xd800 && code <= 0xdfff || code > 0x10ffff;\n} // Check if `character` is disallowed.\n\n\nfunction disallowed(code) {\n return code >= 0x0001 && code <= 0x0008 || code === 0x000b || code >= 0x000d && code <= 0x001f || code >= 0x007f && code <= 0x009f || code >= 0xfdd0 && code <= 0xfdef || (code & 0xffff) === 0xffff || (code & 0xffff) === 0xfffe;\n}\n\nvar prismCore = {\n exports: {}\n};\n\n(function (module) {\n /// <reference lib=\"WebWorker\"/>\n var _self = typeof window !== 'undefined' ? window // if in browser\n : typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self // if in worker\n : {} // if in node js\n ;\n /**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\n\n\n var Prism = function (_self) {\n // Private helper vars\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0; // The grammar object for plaintext\n\n var plainTextGrammar = {};\n var _ = {\n /**\n * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n * additional languages or plugins yourself.\n *\n * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n *\n * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n * empty Prism object into the global scope before loading the Prism script like this:\n *\n * ```js\n * window.Prism = window.Prism || {};\n * Prism.manual = true;\n * // add a new <script> to load Prism's script\n * ```\n *\n * @default false\n * @type {boolean}\n * @memberof Prism\n * @public\n */\n manual: _self.Prism && _self.Prism.manual,\n\n /**\n * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n * own worker, you don't want it to do this.\n *\n * By setting this value to `true`, Prism will not add its own listeners to the worker.\n *\n * You obviously have to change this value before Prism executes. To do this, you can add an\n * empty Prism object into the global scope before loading the Prism script like this:\n *\n * ```js\n * window.Prism = window.Prism || {};\n * Prism.disableWorkerMessageHandler = true;\n * // Load Prism's script\n * ```\n *\n * @default false\n * @type {boolean}\n * @memberof Prism\n * @public\n */\n disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n }\n },\n\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function type(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function objId(obj) {\n if (!obj['__id']) {\n Object.defineProperty(obj, '__id', {\n value: ++uniqueId\n });\n }\n\n return obj['__id'];\n },\n\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone =\n /** @type {Record<string, any>} */\n {};\n visited[id] = clone;\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n\n return (\n /** @type {any} */\n clone\n );\n\n case 'Array':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone = [];\n visited[id] = clone;\n /** @type {Array} */\n\n /** @type {any} */\n\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n\n default:\n return o;\n }\n },\n\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function getLanguage(element) {\n while (element) {\n var m = lang.exec(element.className);\n\n if (m) {\n return m[1].toLowerCase();\n }\n\n element = element.parentElement;\n }\n\n return 'none';\n },\n\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function setLanguage(element, language) {\n // remove all `language-xxxx` classes\n // (this might leave behind a leading space)\n element.className = element.className.replace(RegExp(lang, 'gi'), ''); // add the new `language-xxxx` class\n // (using `classList` will automatically clean up spaces for us)\n\n element.classList.add('language-' + language);\n },\n\n /**\n * Returns the script element that is currently executing.\n *\n * This does __not__ work for line script element.\n *\n * @returns {HTMLScriptElement | null}\n */\n currentScript: function currentScript() {\n if (typeof document === 'undefined') {\n return null;\n }\n\n if ('currentScript' in document && 1 < 2\n /* hack to trip TS' flow analysis */\n ) {\n return (\n /** @type {any} */\n document.currentScript\n );\n } // IE11 workaround\n // we'll get the src of the current script by parsing IE11's error stack trace\n // this will not work for inline scripts\n\n\n try {\n throw new Error();\n } catch (err) {\n // Get file src url from stack. Specifically works with the format of stack traces in IE.\n // A stack will look like this:\n //\n // Error\n // at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n // at Global code (http://localhost/components/prism-core.js:606:1)\n var src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\n if (src) {\n var scripts = document.getElementsByTagName('script');\n\n for (var i in scripts) {\n if (scripts[i].src == src) {\n return scripts[i];\n }\n }\n }\n\n return null;\n }\n },\n\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function isActive(element, className, defaultActivation) {\n var no = 'no-' + className;\n\n while (element) {\n var classList = element.classList;\n\n if (classList.contains(className)) {\n return true;\n }\n\n if (classList.contains(no)) {\n return false;\n }\n\n element = element.parentElement;\n }\n\n return !!defaultActivation;\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function extend(id, redef) {\n var lang = _.util.clone(_.languages[id]);\n\n for (var key in redef) {\n lang[key] = redef[key];\n }\n\n return lang;\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function insertBefore(inside, before, insert, root) {\n root = root ||\n /** @type {any} */\n _.languages;\n var grammar = root[inside];\n /** @type {Grammar} */\n\n var ret = {};\n\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n } // Do not insert token which also occur in insert. See #1525\n\n\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n\n var old = root[inside];\n root[inside] = ret; // Update references in other language definitions\n\n _.languages.DFS(_.languages, function (key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n\n var propertyType = _.util.type(property);\n\n if (propertyType === 'Object' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === 'Array' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n\n /**\n * This is the most high-level function in Prism’s API.\n * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n * each one of them.\n *\n * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n *\n * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n * @memberof Prism\n * @public\n */\n highlightAll: function highlightAll(async, callback) {\n _.highlightAllUnder(document, async, callback);\n },\n\n /**\n * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n * {@link Prism.highlightElement} on each one of them.\n *\n * The following hooks will be run:\n * 1. `before-highlightall`\n * 2. `before-all-elements-highlight`\n * 3. All hooks of {@link Prism.highlightElement} for each element.\n *\n * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n * @memberof Prism\n * @public\n */\n highlightAllUnder: function highlightAllUnder(container, async, callback) {\n var env = {\n callback: callback,\n container: container,\n selector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n };\n\n _.hooks.run('before-highlightall', env);\n\n env.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n _.hooks.run('before-all-elements-highlight', env);\n\n for (var i = 0, element; element = env.elements[i++];) {\n _.highlightElement(element, async === true, env.callback);\n }\n },\n\n /**\n * Highlights the code inside a single element.\n *\n * The following hooks will be run:\n * 1. `before-sanity-check`\n * 2. `before-highlight`\n * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n * 4. `before-insert`\n * 5. `after-highlight`\n * 6. `complete`\n *\n * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n * the element's language.\n *\n * @param {Element} element The element containing the code.\n * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n *\n * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n * asynchronous highlighting to work. You can build your own bundle on the\n * [Download page](https://prismjs.com/download.html).\n * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n * @memberof Prism\n * @public\n */\n highlightElement: function highlightElement(element, async, callback) {\n // Find language\n var language = _.util.getLanguage(element);\n\n var grammar = _.languages[language]; // Set language on the element, if not present\n\n _.util.setLanguage(element, language); // Set language on the parent, for styling\n\n\n var parent = element.parentElement;\n\n if (parent && parent.nodeName.toLowerCase() === 'pre') {\n _.util.setLanguage(parent, language);\n }\n\n var code = element.textContent;\n var env = {\n element: element,\n language: language,\n grammar: grammar,\n code: code\n };\n\n function insertHighlightedCode(highlightedCode) {\n env.highlightedCode = highlightedCode;\n\n _.hooks.run('before-insert', env);\n\n env.element.innerHTML = env.highlightedCode;\n\n _.hooks.run('after-highlight', env);\n\n _.hooks.run('complete', env);\n\n callback && callback.call(env.element);\n }\n\n _.hooks.run('before-sanity-check', env); // plugins may change/add the parent/element\n\n\n parent = env.element.parentElement;\n\n if (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n parent.setAttribute('tabindex', '0');\n }\n\n if (!env.code) {\n _.hooks.run('complete', env);\n\n callback && callback.call(env.element);\n return;\n }\n\n _.hooks.run('before-highlight', env);\n\n if (!env.grammar) {\n insertHighlightedCode(_.util.encode(env.code));\n return;\n }\n\n if (async && _self.Worker) {\n var worker = new Worker(_.filename);\n\n worker.onmessage = function (evt) {\n insertHighlightedCode(evt.data);\n };\n\n worker.postMessage(JSON.stringify({\n language: env.language,\n code: env.code,\n immediateClose: true\n }));\n } else {\n insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n }\n },\n\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function highlight(text, grammar, language) {\n var env = {\n code: text,\n grammar: grammar,\n language: language\n };\n\n _.hooks.run('before-tokenize', env);\n\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n\n env.tokens = _.tokenize(env.code, env.grammar);\n\n _.hooks.run('after-tokenize', env);\n\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function tokenize(text, grammar) {\n var rest = grammar.rest;\n\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n\n delete grammar.rest;\n }\n\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function add(name, callback) {\n var hooks = _.hooks.all;\n hooks[name] = hooks[name] || [];\n hooks[name].push(callback);\n },\n\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function run(name, env) {\n var callbacks = _.hooks.all[name];\n\n if (!callbacks || !callbacks.length) {\n return;\n }\n\n for (var i = 0, callback; callback = callbacks[i++];) {\n callback(env);\n }\n }\n },\n Token: Token\n };\n _self.Prism = _; // Typescript note:\n // The following can be used to import the Token type in JSDoc:\n //\n // @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n /**\n * Creates a new token.\n *\n * @param {string} type See {@link Token#type type}\n * @param {string | TokenStream} content See {@link Token#content content}\n * @param {string|string[]} [alias] The alias(es) of the token.\n * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n * @class\n * @global\n * @public\n */\n\n function Token(type, content, alias, matchedStr) {\n /**\n * The type of the token.\n *\n * This is usually the key of a pattern in a {@link Grammar}.\n *\n * @type {string}\n * @see GrammarToken\n * @public\n */\n this.type = type;\n /**\n * The strings or tokens contained by this token.\n *\n * This will be a token stream if the pattern matched also defined an `inside` grammar.\n *\n * @type {string | TokenStream}\n * @public\n */\n\n this.content = content;\n /**\n * The alias(es) of the token.\n *\n * @type {string|string[]}\n * @see GrammarToken\n * @public\n */\n\n this.alias = alias; // Copy of the full string this token was created from\n\n this.length = (matchedStr || '').length | 0;\n }\n /**\n * A token stream is an array of strings and {@link Token Token} objects.\n *\n * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n * them.\n *\n * 1. No adjacent strings.\n * 2. No empty strings.\n *\n * The only exception here is the token stream that only contains the empty string and nothing else.\n *\n * @typedef {Array<string | Token>} TokenStream\n * @global\n * @public\n */\n\n /**\n * Converts the given token or token stream to an HTML representation.\n *\n * The following hooks will be run:\n * 1. `wrap`: On each {@link Token}.\n *\n * @param {string | Token | TokenStream} o The token or token stream to be converted.\n * @param {string} language The name of current language.\n * @returns {string} The HTML representation of the token or token stream.\n * @memberof Token\n * @static\n */\n\n\n Token.stringify = function stringify(o, language) {\n if (typeof o == 'string') {\n return o;\n }\n\n if (Array.isArray(o)) {\n var s = '';\n o.forEach(function (e) {\n s += stringify(e, language);\n });\n return s;\n }\n\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: 'span',\n classes: ['token', o.type],\n attributes: {},\n language: language\n };\n var aliases = o.alias;\n\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n\n _.hooks.run('wrap', env);\n\n var attributes = '';\n\n for (var name in env.attributes) {\n attributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n }\n\n return '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n };\n /**\n * @param {RegExp} pattern\n * @param {number} pos\n * @param {string} text\n * @param {boolean} lookbehind\n * @returns {RegExpExecArray | null}\n */\n\n\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n\n if (match && lookbehind && match[1]) {\n // change the match to remove the text matched by the Prism lookbehind group\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n\n return match;\n }\n /**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {RematchOptions} [rematch]\n * @returns {void}\n * @private\n *\n * @typedef RematchOptions\n * @property {string} cause\n * @property {number} reach\n */\n\n\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + ',' + j) {\n return;\n }\n\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n\n if (greedy && !patternObj.pattern.global) {\n // Without the global flag, lastIndex won't work\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n }\n /** @type {RegExp} */\n\n\n var pattern = patternObj.pattern || patternObj;\n\n for ( // iterate the token list and keep track of the current token/string position\n var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n\n var str = currentNode.value;\n\n if (tokenList.length > text.length) {\n // Something went terribly wrong, ABORT, ABORT!\n return;\n }\n\n if (str instanceof Token) {\n continue;\n }\n\n var removeCount = 1; // this is the to parameter of removeBetween\n\n var match;\n\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n\n if (!match || match.index >= text.length) {\n break;\n }\n\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos; // find the node that contains the match\n\n p += currentNode.value.length;\n\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n } // adjust pos (and p)\n\n\n p -= currentNode.value.length;\n pos = p; // the current node is a Token, then the match starts inside another Token, which is invalid\n\n if (currentNode.value instanceof Token) {\n continue;\n } // find the last node which is affected by this match\n\n\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === 'string'); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n\n removeCount--; // replace with the new match\n\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n\n if (!match) {\n continue;\n }\n } // eslint-disable-next-line no-redeclare\n\n\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n\n var removeFrom = currentNode.prev;\n\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n\n if (removeCount > 1) {\n // at least one Token object was removed, so we have to do some rematching\n // this can only happen if the current pattern is greedy\n\n /** @type {RematchOptions} */\n var nestedRematch = {\n cause: token + ',' + j,\n reach: reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch); // the reach might have been extended because of the rematching\n\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n /**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n * @private\n */\n\n /**\n * @template T\n * @private\n */\n\n\n function LinkedList() {\n /** @type {LinkedListNode<T>} */\n var head = {\n value: null,\n prev: null,\n next: null\n };\n /** @type {LinkedListNode<T>} */\n\n var tail = {\n value: null,\n prev: head,\n next: null\n };\n head.next = tail;\n /** @type {LinkedListNode<T>} */\n\n this.head = head;\n /** @type {LinkedListNode<T>} */\n\n this.tail = tail;\n this.length = 0;\n }\n /**\n * Adds a new node with the given value to the list.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\n\n\n function addAfter(list, node, value) {\n // assumes that node != list.tail && values.length >= 0\n var next = node.next;\n var newNode = {\n value: value,\n prev: node,\n next: next\n };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n /**\n * Removes `count` nodes after the given node. The given node will not be removed.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\n\n\n function removeRange(list, node, count) {\n var next = node.next;\n\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n /**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\n\n\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n\n return array;\n }\n\n if (!_self.document) {\n if (!_self.addEventListener) {\n // in Node.js\n return _;\n }\n\n if (!_.disableWorkerMessageHandler) {\n // In worker\n _self.addEventListener('message', function (evt) {\n var message = JSON.parse(evt.data);\n var lang = message.language;\n var code = message.code;\n var immediateClose = message.immediateClose;\n\n _self.postMessage(_.highlight(code, _.languages[lang], lang));\n\n if (immediateClose) {\n _self.close();\n }\n }, false);\n }\n\n return _;\n } // Get current script and highlight\n\n\n var script = _.util.currentScript();\n\n if (script) {\n _.filename = script.src;\n\n if (script.hasAttribute('data-manual')) {\n _.manual = true;\n }\n }\n\n function highlightAutomaticallyCallback() {\n if (!_.manual) {\n _.highlightAll();\n }\n }\n\n if (!_.manual) {\n // If the document state is \"loading\", then we'll use DOMContentLoaded.\n // If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n // DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n // might take longer one animation frame to execute which can create a race condition where only some plugins have\n // been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n // See https://github.com/PrismJS/prism/issues/2102\n var readyState = document.readyState;\n\n if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n } else {\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(highlightAutomaticallyCallback);\n } else {\n window.setTimeout(highlightAutomaticallyCallback, 16);\n }\n }\n }\n\n return _;\n }(_self);\n\n if (module.exports) {\n module.exports = Prism;\n } // hack for components to work correctly in node.js\n\n\n if (typeof commonjsGlobal !== 'undefined') {\n commonjsGlobal.Prism = Prism;\n } // some additional documentation/types\n\n /**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n /**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n /**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n /**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n})(prismCore);\n\nvar clike_1 = clike$1;\nclike$1.displayName = 'clike';\nclike$1.aliases = [];\n\nfunction clike$1(Prism) {\n Prism.languages.clike = {\n comment: [{\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n }, {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword: /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n };\n}\n\nvar javascript_1 = javascript;\njavascript.displayName = 'javascript';\njavascript.aliases = ['js'];\n\nfunction javascript(Prism) {\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [Prism.languages.clike['class-name'], {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }],\n keyword: [{\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n }, {\n pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: {\n pattern: RegExp(/(^|[^\\w$])/.source + '(?:' + ( // constant\n /NaN|Infinity/.source + '|' + // binary integer\n /0[bB][01]+(?:_[01]+)*n?/.source + '|' + // octal integer\n /0[oO][0-7]+(?:_[0-7]+)*n?/.source + '|' + // hexadecimal integer\n /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + '|' + // decimal bigint\n /\\d+(?:_\\d+)*n/.source + '|' + // decimal number (integer or float) but no bigint\n /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source) + ')' + /(?![\\w$])/.source),\n lookbehind: true\n },\n operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n });\n Prism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n pattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [{\n pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }, {\n pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n });\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n });\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n });\n\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript'); // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\n Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, 'javascript');\n }\n\n Prism.languages.js = Prism.languages.javascript;\n}\n/* global window, self */\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\n\n\nvar ctx = (typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) === 'object' ? globalThis : (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object' ? self : (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : _typeof(commonjsGlobal) === 'object' ? commonjsGlobal : {};\nvar restore = capture();\nctx.Prism = {\n manual: true,\n disableWorkerMessageHandler: true\n}; // Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\n\nvar h = hastscript;\nvar decode = parseEntities_1;\nvar Prism = prismCore.exports;\nvar markup = markup_1;\nvar css = css_1;\nvar clike = clike_1;\nvar js = javascript_1;\nrestore();\nvar own = {}.hasOwnProperty; // Inherit.\n\nfunction Refractor() {}\n\nRefractor.prototype = Prism; // Construct.\n\nvar refract = new Refractor(); // Expose.\n\nvar core = refract; // Create.\n\nrefract.highlight = highlight;\nrefract.register = register;\nrefract.alias = alias;\nrefract.registered = registered;\nrefract.listLanguages = listLanguages; // Register bundled grammars.\n\nregister(markup);\nregister(css);\nregister(clike);\nregister(js);\nrefract.util.encode = encode;\nrefract.Token.stringify = stringify;\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`');\n } // Do not duplicate registrations.\n\n\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract);\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages;\n var map = name;\n var key;\n var list;\n var length;\n var index;\n\n if (alias) {\n map = {};\n map[name] = alias;\n }\n\n for (key in map) {\n list = map[key];\n list = typeof list === 'string' ? [list] : list;\n length = list.length;\n index = -1;\n\n while (++index < length) {\n languages[list[index]] = languages[key];\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight;\n var grammar;\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`');\n } // `name` is a grammar object.\n\n\n if (refract.util.type(name) === 'Object') {\n grammar = name;\n name = null;\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`');\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name];\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered');\n }\n }\n\n return sup.call(this, value, grammar, name);\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`');\n }\n\n return own.call(refract.languages, language);\n}\n\nfunction listLanguages() {\n var languages = refract.languages;\n var list = [];\n var language;\n\n for (language in languages) {\n if (own.call(languages, language) && _typeof(languages[language]) === 'object') {\n list.push(language);\n }\n }\n\n return list;\n}\n\nfunction stringify(value, language, parent) {\n var env;\n\n if (typeof value === 'string') {\n return {\n type: 'text',\n value: value\n };\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language);\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n };\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias);\n }\n\n refract.hooks.run('wrap', env);\n return h(env.tag + '.' + env.classes.join('.'), attributes(env.attributes), env.content);\n}\n\nfunction stringifyAll(values, language) {\n var result = [];\n var length = values.length;\n var index = -1;\n var value;\n\n while (++index < length) {\n value = values[index];\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value);\n }\n }\n\n index = -1;\n length = result.length;\n\n while (++index < length) {\n value = result[index];\n result[index] = refract.Token.stringify(value, language, result);\n }\n\n return result;\n}\n\nfunction encode(tokens) {\n return tokens;\n}\n\nfunction attributes(attrs) {\n var key;\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key]);\n }\n\n return attrs;\n}\n\nfunction capture() {\n var defined = ('Prism' in ctx);\n /* istanbul ignore next */\n\n var current = defined ? ctx.Prism : undefined;\n return restore;\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current;\n } else {\n delete ctx.Prism;\n }\n\n defined = undefined;\n current = undefined;\n }\n}\n\nvar SyntaxHighlighter$1 = highlight$1(core, {});\n\nSyntaxHighlighter$1.registerLanguage = function (_, language) {\n return core.register(language);\n};\n\nvar ReactSyntaxHighlighter = SyntaxHighlighter$1;\nvar navigator = window_1.navigator,\n document$1 = window_1.document,\n globalWindow = window_1.window;\nReactSyntaxHighlighter.registerLanguage('jsextra', jsExtras$1);\nReactSyntaxHighlighter.registerLanguage('jsx', jsx$1);\nReactSyntaxHighlighter.registerLanguage('json', json$1);\nReactSyntaxHighlighter.registerLanguage('yml', yaml$1);\nReactSyntaxHighlighter.registerLanguage('md', markdown$1);\nReactSyntaxHighlighter.registerLanguage('bash', bash$1);\nReactSyntaxHighlighter.registerLanguage('css', css$2);\nReactSyntaxHighlighter.registerLanguage('html', markup$2);\nReactSyntaxHighlighter.registerLanguage('tsx', tsx$1);\nReactSyntaxHighlighter.registerLanguage('typescript', typescript$1);\nReactSyntaxHighlighter.registerLanguage('graphql', graphql$1);\nvar themedSyntax = memoize(2)(function (theme) {\n return Object.entries(theme.code || {}).reduce(function (acc, _ref8) {\n var _ref9 = _slicedToArray(_ref8, 2),\n key = _ref9[0],\n val = _ref9[1];\n\n return Object.assign(Object.assign({}, acc), _defineProperty2({}, \"* .\".concat(key), val));\n }, {});\n});\nvar copyToClipboard = createCopyToClipboardFunction();\n\nfunction createCopyToClipboardFunction() {\n var _this = this;\n\n if (navigator === null || navigator === void 0 ? void 0 : navigator.clipboard) {\n return function (text) {\n return navigator.clipboard.writeText(text);\n };\n }\n\n return function (text) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var tmp, focus;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n tmp = document$1.createElement('TEXTAREA');\n focus = document$1.activeElement;\n tmp.value = text;\n document$1.body.appendChild(tmp);\n tmp.select();\n document$1.execCommand('copy');\n document$1.body.removeChild(tmp);\n focus.focus();\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n };\n}\n\nvar Wrapper = styled.div(function (_ref10) {\n var theme = _ref10.theme;\n return {\n position: 'relative',\n overflow: 'hidden',\n color: theme.color.defaultText\n };\n}, function (_ref11) {\n var theme = _ref11.theme,\n bordered = _ref11.bordered;\n return bordered ? {\n border: \"1px solid \".concat(theme.appBorderColor),\n borderRadius: theme.borderRadius,\n background: theme.background.content\n } : {};\n});\nvar Scroller = styled(function (_ref12) {\n var children = _ref12.children,\n className = _ref12.className;\n return React__default.createElement(ScrollArea, {\n horizontal: true,\n vertical: true,\n className: className\n }, children);\n})({\n position: 'relative'\n}, function (_ref13) {\n var theme = _ref13.theme;\n return themedSyntax(theme);\n});\nvar Pre = styled.pre(function (_ref14) {\n var theme = _ref14.theme,\n padded = _ref14.padded;\n return {\n display: 'flex',\n justifyContent: 'flex-start',\n margin: 0,\n padding: padded ? theme.layoutMargin : 0\n };\n});\n/*\nWe can't use `code` since PrismJS races for it.\nSee https://github.com/storybookjs/storybook/issues/18090\n */\n\nvar Code = styled.div(function (_ref15) {\n var theme = _ref15.theme;\n return {\n flex: 1,\n paddingLeft: 2,\n paddingRight: theme.layoutMargin,\n opacity: 1\n };\n}); // copied from @types/react-syntax-highlighter/index.d.ts\n\nvar SyntaxHighlighter = function SyntaxHighlighter(_a) {\n var children = _a.children,\n _a$language = _a.language,\n language = _a$language === void 0 ? 'jsx' : _a$language,\n _a$copyable = _a.copyable,\n copyable = _a$copyable === void 0 ? false : _a$copyable,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? false : _a$bordered,\n _a$padded = _a.padded,\n padded = _a$padded === void 0 ? false : _a$padded,\n _a$format = _a.format,\n format = _a$format === void 0 ? true : _a$format,\n _a$formatter = _a.formatter,\n formatter = _a$formatter === void 0 ? null : _a$formatter,\n _a$className = _a.className,\n className = _a$className === void 0 ? null : _a$className,\n _a$showLineNumbers = _a.showLineNumbers,\n showLineNumbers = _a$showLineNumbers === void 0 ? false : _a$showLineNumbers,\n rest = __rest(_a, [\"children\", \"language\", \"copyable\", \"bordered\", \"padded\", \"format\", \"formatter\", \"className\", \"showLineNumbers\"]);\n\n if (typeof children !== 'string' || !children.trim()) {\n return null;\n }\n\n var highlightableCode = formatter ? formatter(format, children) : children.trim();\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n copied = _useState2[0],\n setCopied = _useState2[1];\n\n var onClick = useCallback(function (e) {\n e.preventDefault();\n var selectedText = globalWindow.getSelection().toString();\n var textToCopy = e.type !== 'click' && selectedText ? selectedText : highlightableCode;\n copyToClipboard(textToCopy).then(function () {\n setCopied(true);\n globalWindow.setTimeout(function () {\n return setCopied(false);\n }, 1500);\n }).catch(logger.error);\n }, []);\n return React__default.createElement(Wrapper, {\n bordered: bordered,\n padded: padded,\n className: className,\n onCopyCapture: onClick\n }, React__default.createElement(Scroller, null, React__default.createElement(ReactSyntaxHighlighter, Object.assign({\n padded: padded || bordered,\n language: language,\n showLineNumbers: showLineNumbers,\n showInlineLineNumbers: showLineNumbers,\n useInlineStyles: false,\n PreTag: Pre,\n CodeTag: Code,\n lineNumberContainerStyle: {}\n }, rest), highlightableCode)), copyable ? React__default.createElement(ActionBar, {\n actionItems: [{\n title: copied ? 'Copied' : 'Copy',\n onClick: onClick\n }]\n }) : null);\n};\n\nexport { SyntaxHighlighter, createCopyToClipboardFunction, SyntaxHighlighter as default };\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n"],"names":[],"sourceRoot":""}