@payloadcms/richtext-lexical 0.9.0 → 0.9.2

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 (235) hide show
  1. package/components.js +1 -1
  2. package/dist/cell/index.js +1 -1
  3. package/dist/exports/components.js +1 -1
  4. package/dist/field/Field.js +1 -1
  5. package/dist/field/features/BlockQuote/index.js +1 -1
  6. package/dist/field/features/BlockQuote/markdownTransformer.js +1 -1
  7. package/dist/field/features/Blocks/component/BlockContent.js +1 -1
  8. package/dist/field/features/Blocks/component/FormSavePlugin.js +1 -1
  9. package/dist/field/features/Blocks/component/index.d.ts.map +1 -1
  10. package/dist/field/features/Blocks/component/index.js +21 -11
  11. package/dist/field/features/Blocks/drawer/index.js +1 -1
  12. package/dist/field/features/Blocks/index.d.ts.map +1 -1
  13. package/dist/field/features/Blocks/index.js +4 -6
  14. package/dist/field/features/Blocks/nodes/BlocksNode.js +1 -1
  15. package/dist/field/features/Blocks/plugin/commands.js +1 -1
  16. package/dist/field/features/Blocks/plugin/index.js +1 -1
  17. package/dist/field/features/Blocks/populationPromise.d.ts.map +1 -1
  18. package/dist/field/features/Blocks/populationPromise.js +12 -7
  19. package/dist/field/features/Blocks/utils/transformInputFormData.js +1 -1
  20. package/dist/field/features/Blocks/utils/transformInputFormSchema.js +1 -1
  21. package/dist/field/features/Blocks/validate.d.ts.map +1 -1
  22. package/dist/field/features/Blocks/validate.js +12 -7
  23. package/dist/field/features/Heading/index.js +1 -1
  24. package/dist/field/features/Heading/markdownTransformer.js +1 -1
  25. package/dist/field/features/Link/drawer/baseFields.js +1 -1
  26. package/dist/field/features/Link/drawer/index.js +1 -1
  27. package/dist/field/features/Link/drawer/types.js +1 -1
  28. package/dist/field/features/Link/index.js +1 -1
  29. package/dist/field/features/Link/nodes/AutoLinkNode.js +1 -1
  30. package/dist/field/features/Link/nodes/LinkNode.js +1 -1
  31. package/dist/field/features/Link/plugins/autoLink/index.js +1 -1
  32. package/dist/field/features/Link/plugins/clickableLink/index.js +1 -1
  33. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/commands.js +1 -1
  34. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  35. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +12 -7
  36. package/dist/field/features/Link/plugins/floatingLinkEditor/index.js +1 -1
  37. package/dist/field/features/Link/plugins/floatingLinkEditor/types.js +1 -1
  38. package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.js +1 -1
  39. package/dist/field/features/Link/plugins/link/index.js +1 -1
  40. package/dist/field/features/Link/populationPromise.js +1 -1
  41. package/dist/field/features/Paragraph/index.js +1 -1
  42. package/dist/field/features/Relationship/drawer/commands.js +1 -1
  43. package/dist/field/features/Relationship/drawer/index.js +1 -1
  44. package/dist/field/features/Relationship/index.js +1 -1
  45. package/dist/field/features/Relationship/nodes/RelationshipNode.js +1 -1
  46. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +1 -1
  47. package/dist/field/features/Relationship/plugins/index.js +1 -1
  48. package/dist/field/features/Relationship/populationPromise.js +1 -1
  49. package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.js +1 -1
  50. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
  51. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +20 -20
  52. package/dist/field/features/Upload/component/index.js +1 -1
  53. package/dist/field/features/Upload/drawer/commands.js +1 -1
  54. package/dist/field/features/Upload/drawer/index.js +1 -1
  55. package/dist/field/features/Upload/index.js +1 -1
  56. package/dist/field/features/Upload/nodes/UploadNode.js +1 -1
  57. package/dist/field/features/Upload/plugin/index.js +1 -1
  58. package/dist/field/features/Upload/populationPromise.js +1 -1
  59. package/dist/field/features/Upload/validate.js +1 -1
  60. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +1 -1
  61. package/dist/field/features/align/index.js +1 -1
  62. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +1 -1
  63. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +1 -1
  64. package/dist/field/features/converters/html/converter/converters/linebreak.js +1 -1
  65. package/dist/field/features/converters/html/converter/converters/paragraph.js +1 -1
  66. package/dist/field/features/converters/html/converter/converters/text.js +1 -1
  67. package/dist/field/features/converters/html/converter/defaultConverters.js +1 -1
  68. package/dist/field/features/converters/html/converter/index.js +1 -1
  69. package/dist/field/features/converters/html/converter/types.js +1 -1
  70. package/dist/field/features/converters/html/field/index.d.ts.map +1 -1
  71. package/dist/field/features/converters/html/field/index.js +1 -1
  72. package/dist/field/features/converters/html/index.js +1 -1
  73. package/dist/field/features/debug/TestRecorder/index.js +1 -1
  74. package/dist/field/features/debug/TestRecorder/plugin/index.js +1 -1
  75. package/dist/field/features/debug/TreeView/index.js +1 -1
  76. package/dist/field/features/debug/TreeView/plugin.js +1 -1
  77. package/dist/field/features/format/Bold/index.js +1 -1
  78. package/dist/field/features/format/Bold/markdownTransformers.js +1 -1
  79. package/dist/field/features/format/InlineCode/index.js +1 -1
  80. package/dist/field/features/format/InlineCode/markdownTransformers.js +1 -1
  81. package/dist/field/features/format/Italic/index.js +1 -1
  82. package/dist/field/features/format/Italic/markdownTransformers.js +1 -1
  83. package/dist/field/features/format/common/floatingSelectToolbarSection.js +1 -1
  84. package/dist/field/features/format/strikethrough/index.js +1 -1
  85. package/dist/field/features/format/strikethrough/markdownTransformers.js +1 -1
  86. package/dist/field/features/format/subscript/index.js +1 -1
  87. package/dist/field/features/format/superscript/index.js +1 -1
  88. package/dist/field/features/format/underline/index.js +1 -1
  89. package/dist/field/features/horizontalrule/component/index.js +1 -1
  90. package/dist/field/features/horizontalrule/index.js +1 -1
  91. package/dist/field/features/horizontalrule/nodes/HorizontalRuleNode.js +1 -1
  92. package/dist/field/features/horizontalrule/plugin/index.js +1 -1
  93. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +1 -1
  94. package/dist/field/features/indent/index.js +1 -1
  95. package/dist/field/features/indent/plugin.js +1 -1
  96. package/dist/field/features/lists/CheckList/index.js +1 -1
  97. package/dist/field/features/lists/CheckList/markdownTransformers.js +1 -1
  98. package/dist/field/features/lists/CheckList/plugin/index.js +1 -1
  99. package/dist/field/features/lists/OrderedList/index.js +1 -1
  100. package/dist/field/features/lists/OrderedList/markdownTransformer.js +1 -1
  101. package/dist/field/features/lists/UnorderedList/index.js +1 -1
  102. package/dist/field/features/lists/UnorderedList/markdownTransformer.js +1 -1
  103. package/dist/field/features/lists/common/markdown.d.ts.map +1 -1
  104. package/dist/field/features/lists/common/markdown.js +1 -1
  105. package/dist/field/features/lists/htmlConverter.js +1 -1
  106. package/dist/field/features/lists/plugin/index.js +1 -1
  107. package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/heading.js +1 -1
  108. package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/link.js +1 -1
  109. package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/list.js +1 -1
  110. package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/listItem.js +1 -1
  111. package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/quote.js +1 -1
  112. package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/unknown.js +1 -1
  113. package/dist/field/features/migrations/LexicalPluginToLexical/converter/converters/upload.js +1 -1
  114. package/dist/field/features/migrations/LexicalPluginToLexical/converter/defaultConverters.js +1 -1
  115. package/dist/field/features/migrations/LexicalPluginToLexical/converter/index.js +1 -1
  116. package/dist/field/features/migrations/LexicalPluginToLexical/converter/types.js +1 -1
  117. package/dist/field/features/migrations/LexicalPluginToLexical/index.js +1 -1
  118. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +1 -1
  119. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.js +1 -1
  120. package/dist/field/features/migrations/SlateToLexical/converter/converters/blockquote.js +1 -1
  121. package/dist/field/features/migrations/SlateToLexical/converter/converters/heading.js +1 -1
  122. package/dist/field/features/migrations/SlateToLexical/converter/converters/indent.js +1 -1
  123. package/dist/field/features/migrations/SlateToLexical/converter/converters/link.js +1 -1
  124. package/dist/field/features/migrations/SlateToLexical/converter/converters/listItem.js +1 -1
  125. package/dist/field/features/migrations/SlateToLexical/converter/converters/orderedList.js +1 -1
  126. package/dist/field/features/migrations/SlateToLexical/converter/converters/relationship.js +1 -1
  127. package/dist/field/features/migrations/SlateToLexical/converter/converters/unknown.js +1 -1
  128. package/dist/field/features/migrations/SlateToLexical/converter/converters/unorderedList.js +1 -1
  129. package/dist/field/features/migrations/SlateToLexical/converter/converters/upload.js +1 -1
  130. package/dist/field/features/migrations/SlateToLexical/converter/defaultConverters.js +1 -1
  131. package/dist/field/features/migrations/SlateToLexical/converter/index.js +1 -1
  132. package/dist/field/features/migrations/SlateToLexical/converter/types.js +1 -1
  133. package/dist/field/features/migrations/SlateToLexical/index.js +1 -1
  134. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/Component.js +1 -1
  135. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.js +1 -1
  136. package/dist/field/features/types.js +1 -1
  137. package/dist/field/index.js +1 -1
  138. package/dist/field/lexical/EditorPlugin.js +1 -1
  139. package/dist/field/lexical/LexicalEditor.js +1 -1
  140. package/dist/field/lexical/LexicalProvider.js +1 -1
  141. package/dist/field/lexical/config/EditorConfigProvider.d.ts.map +1 -1
  142. package/dist/field/lexical/config/EditorConfigProvider.js +1 -1
  143. package/dist/field/lexical/config/default.js +1 -1
  144. package/dist/field/lexical/config/defaultClient.js +1 -1
  145. package/dist/field/lexical/config/loader.js +1 -1
  146. package/dist/field/lexical/config/sanitize.js +1 -1
  147. package/dist/field/lexical/config/types.js +1 -1
  148. package/dist/field/lexical/nodes/index.js +1 -1
  149. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +1 -1
  150. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +1 -1
  151. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +1 -1
  152. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -1
  153. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +1 -1
  154. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +1 -1
  155. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +1 -1
  156. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +1 -1
  157. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -1
  158. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +1 -1
  159. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +1 -1
  160. package/dist/field/lexical/plugins/SlashMenu/index.js +1 -1
  161. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +1 -1
  162. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -1
  163. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
  164. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
  165. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +1 -1
  166. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +1 -1
  167. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
  168. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +1 -1
  169. package/dist/field/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +1 -1
  170. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +1 -1
  171. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +1 -1
  172. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +1 -1
  173. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +1 -1
  174. package/dist/field/lexical/theme/EditorTheme.js +1 -1
  175. package/dist/field/lexical/ui/ContentEditable.js +1 -1
  176. package/dist/field/lexical/ui/icons/AI/index.js +1 -1
  177. package/dist/field/lexical/ui/icons/AlignCenter/index.js +1 -1
  178. package/dist/field/lexical/ui/icons/AlignJustify/index.js +1 -1
  179. package/dist/field/lexical/ui/icons/AlignLeft/index.js +1 -1
  180. package/dist/field/lexical/ui/icons/AlignRight/index.js +1 -1
  181. package/dist/field/lexical/ui/icons/Block/index.js +1 -1
  182. package/dist/field/lexical/ui/icons/Blockquote/index.js +1 -1
  183. package/dist/field/lexical/ui/icons/Bold/index.js +1 -1
  184. package/dist/field/lexical/ui/icons/Checklist/index.js +1 -1
  185. package/dist/field/lexical/ui/icons/Code/index.js +1 -1
  186. package/dist/field/lexical/ui/icons/CodeBlock/index.js +1 -1
  187. package/dist/field/lexical/ui/icons/H1/index.js +1 -1
  188. package/dist/field/lexical/ui/icons/H2/index.js +1 -1
  189. package/dist/field/lexical/ui/icons/H3/index.js +1 -1
  190. package/dist/field/lexical/ui/icons/H4/index.js +1 -1
  191. package/dist/field/lexical/ui/icons/H5/index.js +1 -1
  192. package/dist/field/lexical/ui/icons/H6/index.js +1 -1
  193. package/dist/field/lexical/ui/icons/HorizontalRule/index.js +1 -1
  194. package/dist/field/lexical/ui/icons/IndentDecrease/index.js +1 -1
  195. package/dist/field/lexical/ui/icons/IndentIncrease/index.js +1 -1
  196. package/dist/field/lexical/ui/icons/Italic/index.js +1 -1
  197. package/dist/field/lexical/ui/icons/Link/index.js +1 -1
  198. package/dist/field/lexical/ui/icons/OrderedList/index.js +1 -1
  199. package/dist/field/lexical/ui/icons/Relationship/index.js +1 -1
  200. package/dist/field/lexical/ui/icons/Strikethrough/index.js +1 -1
  201. package/dist/field/lexical/ui/icons/Subscript/index.js +1 -1
  202. package/dist/field/lexical/ui/icons/Superscript/index.js +1 -1
  203. package/dist/field/lexical/ui/icons/Text/index.js +1 -1
  204. package/dist/field/lexical/ui/icons/Underline/index.js +1 -1
  205. package/dist/field/lexical/ui/icons/UnorderedList/index.js +1 -1
  206. package/dist/field/lexical/ui/icons/Upload/index.js +1 -1
  207. package/dist/field/lexical/utils/canUseDOM.js +1 -1
  208. package/dist/field/lexical/utils/cloneDeep.js +1 -1
  209. package/dist/field/lexical/utils/environment.js +1 -1
  210. package/dist/field/lexical/utils/getDOMRangeRect.js +1 -1
  211. package/dist/field/lexical/utils/getSelectedNode.js +1 -1
  212. package/dist/field/lexical/utils/guard.js +1 -1
  213. package/dist/field/lexical/utils/invariant.js +1 -1
  214. package/dist/field/lexical/utils/joinClasses.js +1 -1
  215. package/dist/field/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  216. package/dist/field/lexical/utils/markdown/createBlockNode.js +1 -1
  217. package/dist/field/lexical/utils/nodeFormat.js +1 -1
  218. package/dist/field/lexical/utils/point.js +1 -1
  219. package/dist/field/lexical/utils/rect.js +1 -1
  220. package/dist/field/lexical/utils/setFloatingElemPosition.js +1 -1
  221. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +1 -1
  222. package/dist/field/lexical/utils/swipe.js +1 -1
  223. package/dist/field/lexical/utils/url.js +1 -1
  224. package/dist/index.js +1 -1
  225. package/dist/populate/defaultValue.js +1 -1
  226. package/dist/populate/populate.d.ts +1 -1
  227. package/dist/populate/populate.d.ts.map +1 -1
  228. package/dist/populate/populate.js +1 -1
  229. package/dist/populate/recurseNestedFields.js +1 -1
  230. package/dist/populate/richTextRelationshipPromise.js +1 -1
  231. package/dist/types.js +1 -1
  232. package/dist/validate/index.d.ts.map +1 -1
  233. package/dist/validate/index.js +1 -1
  234. package/dist/validate/validateNodes.js +1 -1
  235. package/package.json +5 -5
@@ -60,4 +60,4 @@ const MarkdownShortcutPlugin = ()=>{
60
60
  });
61
61
  };
62
62
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvTWFya2Rvd25TaG9ydGN1dC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyBNYXJrZG93blNob3J0Y3V0UGx1Z2luIGFzIExleGljYWxNYXJrZG93blNob3J0Y3V0UGx1Z2luIH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbE1hcmtkb3duU2hvcnRjdXRQbHVnaW4nXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcblxuZXhwb3J0IGNvbnN0IE1hcmtkb3duU2hvcnRjdXRQbHVnaW46IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgcmV0dXJuIDxMZXhpY2FsTWFya2Rvd25TaG9ydGN1dFBsdWdpbiB0cmFuc2Zvcm1lcnM9e2VkaXRvckNvbmZpZy5mZWF0dXJlcy5tYXJrZG93blRyYW5zZm9ybWVyc30gLz5cbn1cbiJdLCJuYW1lcyI6WyJNYXJrZG93blNob3J0Y3V0UGx1Z2luIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsIkxleGljYWxNYXJrZG93blNob3J0Y3V0UGx1Z2luIiwidHJhbnNmb3JtZXJzIiwiZmVhdHVyZXMiLCJtYXJrZG93blRyYW5zZm9ybWVycyJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFNYUE7OztlQUFBQTs7OytDQUwyRDsrREFDakQ7c0NBRWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEMsTUFBTUEseUJBQW1DO0lBQzlDLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdDLElBQUFBLDRDQUFzQjtJQUUvQyxxQkFBTyxxQkFBQ0MscURBQTZCO1FBQUNDLGNBQWNILGFBQWFJLFFBQVEsQ0FBQ0Msb0JBQW9COztBQUNoRyJ9
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvTWFya2Rvd25TaG9ydGN1dC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyBNYXJrZG93blNob3J0Y3V0UGx1Z2luIGFzIExleGljYWxNYXJrZG93blNob3J0Y3V0UGx1Z2luIH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbE1hcmtkb3duU2hvcnRjdXRQbHVnaW4nXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcblxuZXhwb3J0IGNvbnN0IE1hcmtkb3duU2hvcnRjdXRQbHVnaW46IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgcmV0dXJuIDxMZXhpY2FsTWFya2Rvd25TaG9ydGN1dFBsdWdpbiB0cmFuc2Zvcm1lcnM9e2VkaXRvckNvbmZpZy5mZWF0dXJlcy5tYXJrZG93blRyYW5zZm9ybWVyc30gLz5cbn1cbiJdLCJuYW1lcyI6WyJNYXJrZG93blNob3J0Y3V0UGx1Z2luIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsIkxleGljYWxNYXJrZG93blNob3J0Y3V0UGx1Z2luIiwidHJhbnNmb3JtZXJzIiwiZmVhdHVyZXMiLCJtYXJrZG93blRyYW5zZm9ybWVycyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQU1hQTs7O2VBQUFBOzs7K0NBTDJEOytEQUNqRDtzQ0FFZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxNQUFNQSx5QkFBbUM7SUFDOUMsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBR0MsSUFBQUEsNENBQXNCO0lBRS9DLHFCQUFPLHFCQUFDQyxxREFBNkI7UUFBQ0MsY0FBY0gsYUFBYUksUUFBUSxDQUFDQyxvQkFBb0I7O0FBQ2hHIn0=
@@ -423,4 +423,4 @@ function useMenuAnchorRef(anchorElem, resolution, setResolution, className) {
423
423
  return anchorElementRef;
424
424
  }
425
425
 
426
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL0xleGljYWxNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQsIExleGljYWxFZGl0b3IsIFRleHROb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RQb3J0YWwgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gIEtFWV9BUlJPV19VUF9DT01NQU5ELFxuICBLRVlfRU5URVJfQ09NTUFORCxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBLRVlfVEFCX0NPTU1BTkQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBNZW51VGV4dE1hdGNoIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBNZW51UmVzb2x1dGlvbiA9IHtcbiAgZ2V0UmVjdDogKCkgPT4gRE9NUmVjdFxuICBtYXRjaD86IE1lbnVUZXh0TWF0Y2hcbn1cblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmV4cG9ydCB0eXBlIE1lbnVSZW5kZXJGbiA9IChcbiAgYW5jaG9yRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LFxuICBpdGVtUHJvcHM6IHtcbiAgICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcDogKHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24pID0+IHZvaWRcbiAgICBzZWxlY3RlZE9wdGlvbktleTogbnVsbCB8IHN0cmluZ1xuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5OiAob3B0aW9uS2V5OiBzdHJpbmcpID0+IHZvaWRcbiAgfSxcbiAgbWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcsXG4pID0+IEpTWC5FbGVtZW50IHwgUmVhY3RQb3J0YWwgfCBudWxsXG5cbmNvbnN0IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSAodGFyZ2V0OiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCB0eXBlYWhlYWRDb250YWluZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NsYXNoLW1lbnUnKVxuICBpZiAoIXR5cGVhaGVhZENvbnRhaW5lck5vZGUpIHJldHVyblxuXG4gIGNvbnN0IHR5cGVhaGVhZFJlY3QgPSB0eXBlYWhlYWRDb250YWluZXJOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wICsgdHlwZWFoZWFkUmVjdC5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICB0eXBlYWhlYWRDb250YWluZXJOb2RlLnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICB9KVxuICB9XG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wIDwgMCkge1xuICAgIHR5cGVhaGVhZENvbnRhaW5lck5vZGUuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgIH0pXG4gIH1cblxuICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pXG59XG5cbi8qKlxuICogV2FsayBiYWNrd2FyZHMgYWxvbmcgdXNlciBpbnB1dCBhbmQgZm9yd2FyZCB0aHJvdWdoIGVudGl0eSB0aXRsZSB0byB0cnlcbiAqIGFuZCByZXBsYWNlIG1vcmUgb2YgdGhlIHVzZXIncyB0ZXh0IHdpdGggZW50aXR5LlxuICovXG5mdW5jdGlvbiBnZXRGdWxsTWF0Y2hPZmZzZXQoZG9jdW1lbnRUZXh0OiBzdHJpbmcsIGVudHJ5VGV4dDogc3RyaW5nLCBvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCB0cmlnZ2VyT2Zmc2V0ID0gb2Zmc2V0XG4gIGZvciAobGV0IGkgPSB0cmlnZ2VyT2Zmc2V0OyBpIDw9IGVudHJ5VGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudFRleHQuc3Vic3RyKC1pKSA9PT0gZW50cnlUZXh0LnN1YnN0cigwLCBpKSkge1xuICAgICAgdHJpZ2dlck9mZnNldCA9IGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRyaWdnZXJPZmZzZXRcbn1cblxuLyoqXG4gKiBTcGxpdCBMZXhpY2FsIFRleHROb2RlIGFuZCByZXR1cm4gYSBuZXcgVGV4dE5vZGUgb25seSBjb250YWluaW5nIG1hdGNoZWQgdGV4dC5cbiAqIENvbW1vbiB1c2UgY2FzZXMgaW5jbHVkZTogcmVtb3ZpbmcgdGhlIG5vZGUsIHJlcGxhY2luZyB3aXRoIGEgbmV3IG5vZGUuXG4gKi9cbmZ1bmN0aW9uICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkobWF0Y2g6IE1lbnVUZXh0TWF0Y2gpOiBUZXh0Tm9kZSB8IG51bGwge1xuICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8ICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBzZWxlY3Rpb25PZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIGNvbnN0IHRleHRDb250ZW50ID0gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIHNlbGVjdGlvbk9mZnNldClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBjaGFyYWN0ZXJPZmZzZXQgPSBtYXRjaC5yZXBsYWNlYWJsZVN0cmluZy5sZW5ndGhcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBxdWVyeU9mZnNldCA9IGdldEZ1bGxNYXRjaE9mZnNldCh0ZXh0Q29udGVudCwgbWF0Y2gubWF0Y2hpbmdTdHJpbmcsIGNoYXJhY3Rlck9mZnNldClcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBzZWxlY3Rpb25PZmZzZXQgLSBxdWVyeU9mZnNldFxuICBpZiAoc3RhcnRPZmZzZXQgPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBsZXQgbmV3Tm9kZVxuICBpZiAoc3RhcnRPZmZzZXQgPT09IDApIHtcbiAgICA7W25ld05vZGVdID0gYW5jaG9yTm9kZS5zcGxpdFRleHQoc2VsZWN0aW9uT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIDtbLCBuZXdOb2RlXSA9IGFuY2hvck5vZGUuc3BsaXRUZXh0KHN0YXJ0T2Zmc2V0LCBzZWxlY3Rpb25PZmZzZXQpXG4gIH1cblxuICByZXR1cm4gbmV3Tm9kZVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmZ1bmN0aW9uIGlzVHJpZ2dlclZpc2libGVJbk5lYXJlc3RTY3JvbGxDb250YWluZXIoXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCB0UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgY1JlY3QgPSBjb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiB0UmVjdC50b3AgPiBjUmVjdC50b3AgJiYgdFJlY3QudG9wIDwgY1JlY3QuYm90dG9tXG59XG5cbi8vIFJlcG9zaXRpb24gdGhlIG1lbnUgb24gc2Nyb2xsLCB3aW5kb3cgcmVzaXplLCBhbmQgZWxlbWVudCByZXNpemUuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1Bvc2l0aW9uaW5nKFxuICByZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbiB8IG51bGwsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgb25SZXBvc2l0aW9uOiAoKSA9PiB2b2lkLFxuICBvblZpc2liaWxpdHlDaGFuZ2U/OiAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHZvaWQsXG4pIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGFyZ2V0RWxlbWVudCAhPSBudWxsICYmIHJlc29sdXRpb24gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuICAgICAgY29uc3Qgcm9vdFNjcm9sbFBhcmVudCA9XG4gICAgICAgIHJvb3RFbGVtZW50ICE9IG51bGwgPyBnZXRTY3JvbGxQYXJlbnQocm9vdEVsZW1lbnQsIGZhbHNlKSA6IGRvY3VtZW50LmJvZHlcbiAgICAgIGxldCB0aWNraW5nID0gZmFsc2VcbiAgICAgIGxldCBwcmV2aW91c0lzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcihcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgcm9vdFNjcm9sbFBhcmVudCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aWNraW5nKSB7XG4gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvblJlcG9zaXRpb24oKVxuICAgICAgICAgICAgdGlja2luZyA9IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aWNraW5nID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcih0YXJnZXRFbGVtZW50LCByb290U2Nyb2xsUGFyZW50KVxuICAgICAgICBpZiAoaXNJblZpZXcgIT09IHByZXZpb3VzSXNJblZpZXcpIHtcbiAgICAgICAgICBwcmV2aW91c0lzSW5WaWV3ID0gaXNJblZpZXdcbiAgICAgICAgICBpZiAob25WaXNpYmlsaXR5Q2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIG9uVmlzaWJpbGl0eUNoYW5nZShpc0luVmlldylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKG9uUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlcG9zaXRpb24pXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldEVsZW1lbnQpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUodGFyZ2V0RWxlbWVudClcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVwb3NpdGlvbilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsLCB0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3RhcmdldEVsZW1lbnQsIGVkaXRvciwgb25WaXNpYmlsaXR5Q2hhbmdlLCBvblJlcG9zaXRpb24sIHJlc29sdXRpb25dKVxufVxuXG5leHBvcnQgY29uc3QgU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgaW5kZXg6IG51bWJlclxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufT4gPSBjcmVhdGVDb21tYW5kKCdTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsTWVudSh7XG4gIGFuY2hvckVsZW1lbnRSZWYsXG4gIGNsb3NlLFxuICBlZGl0b3IsXG4gIC8vIGdyb3Vwc1dpdGhPcHRpb25zIGZpbHRlcmluZyBpcyBhbHJlYWR5IGhhbmRsZWQgaW4gU2xhc2hNZW51L2luZGV4LnRzeC4gVGh1cywgZ3JvdXBzV2l0aE9wdGlvbnMgYWx3YXlzIGNvbnRhaW5zIHRoZSBtYXRjaGluZyBvcHRpb25zLlxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvblNlbGVjdE9wdGlvbixcbiAgcmVzb2x1dGlvbixcbiAgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5ID0gZmFsc2UsXG59OiB7XG4gIGFuY2hvckVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+XG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uXG4gIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeT86IGJvb2xlYW5cbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbc2VsZWN0ZWRPcHRpb25LZXksIHNldFNlbGVjdGVkT3B0aW9uS2V5XSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KG51bGwpXG5cbiAgY29uc3QgbWF0Y2hpbmdTdHJpbmcgPSAocmVzb2x1dGlvbi5tYXRjaCAmJiByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nKSB8fCAnJ1xuXG4gIGNvbnN0IHVwZGF0ZVNlbGVjdGVkT3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogU2xhc2hNZW51T3B0aW9uKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBgJHtiYXNlQ2xhc3N9X19pdGVtLSR7b3B0aW9uLmtleX1gKVxuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gIClcblxuICBjb25zdCBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBzZXQgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBmaXJzdCBvZiB0aGUgbWF0Y2hpbmcgb25lc1xuICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJiBtYXRjaGluZ1N0cmluZyAhPSBudWxsKSB7XG4gICAgICAvLyBncm91cHNXaXRoT3B0aW9ucyBmaWx0ZXJpbmcgaXMgYWxyZWFkeSBoYW5kbGVkIGluIFNsYXNoTWVudS9pbmRleC50c3guIFRodXMsIGdyb3Vwc1dpdGhPcHRpb25zIGFsd2F5cyBjb250YWlucyB0aGUgbWF0Y2hpbmcgb3B0aW9ucy5cbiAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcblxuICAgICAgaWYgKGFsbE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TWF0Y2hpbmdPcHRpb24gPSBhbGxPcHRpb25zWzBdXG4gICAgICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKGZpcnN0TWF0Y2hpbmdPcHRpb24pXG4gICAgICB9XG4gICAgfVxuICB9LCBbZ3JvdXBzV2l0aE9wdGlvbnMsIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLCBtYXRjaGluZ1N0cmluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbigpXG4gIH0sIFttYXRjaGluZ1N0cmluZywgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb25dKVxuXG4gIGNvbnN0IHNlbGVjdE9wdGlvbkFuZENsZWFuVXAgPSB1c2VDYWxsYmFjayhcbiAgICAoc2VsZWN0ZWRPcHRpb246IFNsYXNoTWVudU9wdGlvbikgPT4ge1xuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5ID1cbiAgICAgICAgICByZXNvbHV0aW9uLm1hdGNoICE9IG51bGwgJiYgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5XG4gICAgICAgICAgICA/ICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkocmVzb2x1dGlvbi5tYXRjaClcbiAgICAgICAgICAgIDogbnVsbFxuXG4gICAgICAgIG9uU2VsZWN0T3B0aW9uKFxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLFxuICAgICAgICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5LFxuICAgICAgICAgIGNsb3NlLFxuICAgICAgICAgIHJlc29sdXRpb24ubWF0Y2ggPyByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nIDogJycsXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yLCBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnksIHJlc29sdXRpb24ubWF0Y2gsIG9uU2VsZWN0T3B0aW9uLCBjbG9zZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvcl0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG51bGwpXG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb24oKVxuICAgIH1cbiAgfSwgW1xuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5VG9GaXJzdE1hdGNoaW5nT3B0aW9uLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCxcbiAgICAgICAgKHsgb3B0aW9uIH0pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnJlZiAmJiBvcHRpb24ucmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChvcHRpb24ucmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTZWxlY3RlZE9wdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQ8S2V5Ym9hcmRFdmVudD4oXG4gICAgICAgIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25LZXkgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBhbGxPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcblxuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXggIT09IGFsbE9wdGlvbnMubGVuZ3RoIC0gMSA/IHNlbGVjdGVkSW5kZXggKyAxIDogMFxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnNbbmV3U2VsZWN0ZWRJbmRleF1cblxuICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRPcHRpb24obmV3U2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICBpZiAobmV3U2VsZWN0ZWRPcHRpb24ucmVmICE9IG51bGwgJiYgbmV3U2VsZWN0ZWRPcHRpb24ucmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgIGluZGV4OiBuZXdTZWxlY3RlZEluZGV4LFxuICAgICAgICAgICAgICAgIG9wdGlvbjogbmV3U2VsZWN0ZWRPcHRpb24sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfQVJST1dfVVBfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHBheWxvYWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbktleSAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgYWxsT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZsYXRNYXAoKGdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFsbE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHNlbGVjdGVkT3B0aW9uS2V5KVxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJbmRleCAhPT0gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogYWxsT3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkT3B0aW9uID0gYWxsT3B0aW9uc1tuZXdTZWxlY3RlZEluZGV4XVxuXG4gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZE9wdGlvbihuZXdTZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgIGlmIChuZXdTZWxlY3RlZE9wdGlvbi5yZWYgIT0gbnVsbCAmJiBuZXdTZWxlY3RlZE9wdGlvbi5yZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5ld1NlbGVjdGVkT3B0aW9uLnJlZi5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDxLZXlib2FyZEV2ZW50PihcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gcGF5bG9hZFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfVEFCX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG5cbiAgICAgICAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwgfHwgc2VsZWN0ZWRPcHRpb25LZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhbGxPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmxhdE1hcCgoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMpXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhbGxPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gc2VsZWN0ZWRPcHRpb25LZXkpXG4gICAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcChzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRU5URVJfQ09NTUFORCxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyA9PT0gbnVsbCB8fCBzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAoc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW1xuICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgY2xvc2UsXG4gICAgZWRpdG9yLFxuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICBdKVxuXG4gIGNvbnN0IGxpc3RJdGVtUHJvcHMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyxcbiAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgICBzZWxlY3RlZE9wdGlvbktleSxcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIH0pLFxuICAgIFtzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgZ3JvdXBzV2l0aE9wdGlvbnNdLFxuICApXG5cbiAgcmV0dXJuIG1lbnVSZW5kZXJGbihcbiAgICBhbmNob3JFbGVtZW50UmVmLFxuICAgIGxpc3RJdGVtUHJvcHMsXG4gICAgcmVzb2x1dGlvbi5tYXRjaCA/IHJlc29sdXRpb24ubWF0Y2gubWF0Y2hpbmdTdHJpbmcgOiAnJyxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVudUFuY2hvclJlZihcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCxcbiAgc2V0UmVzb2x1dGlvbjogKHI6IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCkgPT4gdm9pZCxcbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuKTogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudD4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgY29uc3QgcG9zaXRpb25NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcblxuICAgIGNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDMyIGFzIGNvbnN0XG5cbiAgICBjb25zdCBtZW51RWxlID0gY29udGFpbmVyRGl2LmZpcnN0Q2hpbGQgYXMgRWxlbWVudFxuICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG4gICAgICBsZXQgeyBsZWZ0LCB0b3AgfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG5cbiAgICAgIGNvbnN0IHJhd1RvcCA9IHRvcFxuICAgICAgdG9wIC09IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgIGxlZnQgLT0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgd2luZG93LnNjcm9sbFhcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5sZWZ0ID0gYCR7bGVmdCArIHdpbmRvdy5zY3JvbGxYfXB4YFxuICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGBcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YFxuICAgICAgaWYgKG1lbnVFbGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWVudVJlY3QgPSBtZW51RWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBtZW51UmVjdC5oZWlnaHRcbiAgICAgICAgY29uc3QgbWVudVdpZHRoID0gbWVudVJlY3Qud2lkdGhcblxuICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGlmIChsZWZ0ICsgbWVudVdpZHRoID4gcm9vdEVsZW1lbnRSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmxlZnQgPSBgJHtyb290RWxlbWVudFJlY3QucmlnaHQgLSBtZW51V2lkdGggKyB3aW5kb3cuc2Nyb2xsWH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdvdWxkR29PZmZCb3R0b21PZlNjcmVlbiA9IHJhd1RvcCArIG1lbnVIZWlnaHQgKyBWRVJUSUNBTF9PRkZTRVQgPiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICAgLy9jb25zdCB3b3VsZEdvT2ZmQm90dG9tT2ZDb250YWluZXIgPSB0b3AgKyBtZW51SGVpZ2h0ID4gcm9vdEVsZW1lbnRSZWN0LmJvdHRvbVxuICAgICAgICBjb25zdCB3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4gPSByYXdUb3AgPCAwXG5cbiAgICAgICAgLy8gUG9zaXRpb24gc2xhc2ggbWVudSBhYm92ZSB0aGUgY3Vyc29yIGluc3RlYWQgb2YgYmVsb3cgKGRlZmF1bHQpIGlmIGl0IHdvdWxkIG90aGVyd2lzZSBnbyBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxuICAgICAgICBpZiAod291bGRHb09mZkJvdHRvbU9mU2NyZWVuICYmICF3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4pIHtcbiAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyNFxuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHtcbiAgICAgICAgICAgIHRvcCArIFZFUlRJQ0FMX09GRlNFVCAtIG1lbnVIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSAtIChoZWlnaHQgKyBtYXJnaW4pXG4gICAgICAgICAgfXB4YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHt0b3AgKyB3aW5kb3cuc2Nyb2xsWSArIFZFUlRJQ0FMX09GRlNFVH1weGBcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbnRhaW5lckRpdi5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBpZiAoY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lXG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdTbGFzaCBtZW51JylcbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnaWQnLCAnc2xhc2gtbWVudScpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnbGlzdGJveCcpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJ1xuICAgICAgICBjb250YWluZXJEaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gICAgICAgIGFuY2hvckVsZW0uYXBwZW5kKGNvbnRhaW5lckRpdilcbiAgICAgIH1cbiAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCA9IGNvbnRhaW5lckRpdlxuICAgICAgcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgJ3NsYXNoLW1lbnUnKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcmVzb2x1dGlvbiwgY2xhc3NOYW1lLCBhbmNob3JFbGVtXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAocmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgcG9zaXRpb25NZW51KClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGNvbnRhaW5lckRpdiAhPT0gbnVsbCAmJiBjb250YWluZXJEaXYuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcG9zaXRpb25NZW51LCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChyZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghaXNJblZpZXcpIHtcbiAgICAgICAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSxcbiAgKVxuXG4gIHVzZUR5bmFtaWNQb3NpdGlvbmluZyhyZXNvbHV0aW9uLCBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnQsIHBvc2l0aW9uTWVudSwgb25WaXNpYmlsaXR5Q2hhbmdlKVxuXG4gIHJldHVybiBhbmNob3JFbGVtZW50UmVmXG59XG4iXSwibmFtZXMiOlsiTGV4aWNhbE1lbnUiLCJTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCIsImdldFNjcm9sbFBhcmVudCIsInVzZUR5bmFtaWNQb3NpdGlvbmluZyIsInVzZU1lbnVBbmNob3JSZWYiLCJiYXNlQ2xhc3MiLCJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIiwidGFyZ2V0IiwidHlwZWFoZWFkQ29udGFpbmVyTm9kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0eXBlYWhlYWRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiaGVpZ2h0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiZ2V0RnVsbE1hdGNoT2Zmc2V0IiwiZG9jdW1lbnRUZXh0IiwiZW50cnlUZXh0Iiwib2Zmc2V0IiwidHJpZ2dlck9mZnNldCIsImkiLCJsZW5ndGgiLCJzdWJzdHIiLCIkc3BsaXROb2RlQ29udGFpbmluZ1F1ZXJ5IiwibWF0Y2giLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJpc0NvbGxhcHNlZCIsImFuY2hvciIsInR5cGUiLCJhbmNob3JOb2RlIiwiZ2V0Tm9kZSIsImlzU2ltcGxlVGV4dCIsInNlbGVjdGlvbk9mZnNldCIsInRleHRDb250ZW50IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsImNoYXJhY3Rlck9mZnNldCIsInJlcGxhY2VhYmxlU3RyaW5nIiwicXVlcnlPZmZzZXQiLCJtYXRjaGluZ1N0cmluZyIsInN0YXJ0T2Zmc2V0IiwibmV3Tm9kZSIsInNwbGl0VGV4dCIsImVsZW1lbnQiLCJpbmNsdWRlSGlkZGVuIiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsInBvc2l0aW9uIiwib3ZlcmZsb3dSZWdleCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lciIsInRhcmdldEVsZW1lbnQiLCJjb250YWluZXJFbGVtZW50IiwidFJlY3QiLCJjUmVjdCIsImJvdHRvbSIsInJlc29sdXRpb24iLCJvblJlcG9zaXRpb24iLCJvblZpc2liaWxpdHlDaGFuZ2UiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwidXNlRWZmZWN0Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsInJvb3RTY3JvbGxQYXJlbnQiLCJ0aWNraW5nIiwicHJldmlvdXNJc0luVmlldyIsImhhbmRsZVNjcm9sbCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzSW5WaWV3IiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckVsZW1lbnRSZWYiLCJjbG9zZSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25TZWxlY3RPcHRpb24iLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwidXNlU3RhdGUiLCJ1cGRhdGVTZWxlY3RlZE9wdGlvbiIsInVzZUNhbGxiYWNrIiwib3B0aW9uIiwicm9vdEVsZW0iLCJzZXRBdHRyaWJ1dGUiLCJrZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiIsImFsbE9wdGlvbnMiLCJmbGF0TWFwIiwiZ3JvdXAiLCJvcHRpb25zIiwiZmlyc3RNYXRjaGluZ09wdGlvbiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbiIsInVwZGF0ZSIsInRleHROb2RlQ29udGFpbmluZ1F1ZXJ5IiwicmVtb3ZlQXR0cmlidXRlIiwidXNlTGF5b3V0RWZmZWN0IiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyQ29tbWFuZCIsInJlZiIsImN1cnJlbnQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsIktFWV9BUlJPV19ET1dOX0NPTU1BTkQiLCJwYXlsb2FkIiwiZXZlbnQiLCJzZWxlY3RlZEluZGV4IiwiZmluZEluZGV4IiwibmV3U2VsZWN0ZWRJbmRleCIsIm5ld1NlbGVjdGVkT3B0aW9uIiwiZGlzcGF0Y2hDb21tYW5kIiwiaW5kZXgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsIktFWV9BUlJPV19VUF9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiS0VZX1RBQl9DT01NQU5EIiwiZmluZCIsIktFWV9FTlRFUl9DT01NQU5EIiwibGlzdEl0ZW1Qcm9wcyIsInVzZU1lbW8iLCJhbmNob3JFbGVtIiwic2V0UmVzb2x1dGlvbiIsImNsYXNzTmFtZSIsInVzZVJlZiIsImNyZWF0ZUVsZW1lbnQiLCJwb3NpdGlvbk1lbnUiLCJjb250YWluZXJEaXYiLCJWRVJUSUNBTF9PRkZTRVQiLCJtZW51RWxlIiwiZmlyc3RDaGlsZCIsIndpZHRoIiwiZ2V0UmVjdCIsImxlZnQiLCJyYXdUb3AiLCJzY3JvbGxZIiwic2Nyb2xsWCIsIm1lbnVSZWN0IiwibWVudUhlaWdodCIsIm1lbnVXaWR0aCIsInJvb3RFbGVtZW50UmVjdCIsInJpZ2h0Iiwid291bGRHb09mZkJvdHRvbU9mU2NyZWVuIiwid291bGRHb09mZlRvcE9mU2NyZWVuIiwibWFyZ2luIiwiaXNDb25uZWN0ZWQiLCJkaXNwbGF5IiwiYXBwZW5kIiwicmVtb3ZlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztJQXdNZ0JBLFdBQVc7ZUFBWEE7O0lBTEhDLHlDQUF5QztlQUF6Q0E7O0lBakZHQyxlQUFlO2VBQWZBOztJQWdDQUMscUJBQXFCO2VBQXJCQTs7SUFvVEFDLGdCQUFnQjtlQUFoQkE7Ozt3Q0FsYzBCO3VCQUNaO3lCQVd2Qjt1QkFDNEU7QUFXbkYsTUFBTUMsWUFBWTtBQWFsQixNQUFNQyx5QkFBeUIsQ0FBQ0M7SUFDOUIsTUFBTUMseUJBQXlCQyxTQUFTQyxjQUFjLENBQUM7SUFDdkQsSUFBSSxDQUFDRix3QkFBd0I7SUFFN0IsTUFBTUcsZ0JBQWdCSCx1QkFBdUJJLHFCQUFxQjtJQUVsRSxJQUFJRCxjQUFjRSxHQUFHLEdBQUdGLGNBQWNHLE1BQU0sR0FBR0MsT0FBT0MsV0FBVyxFQUFFO1FBQ2pFUix1QkFBdUJTLGNBQWMsQ0FBQztZQUNwQ0MsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJUCxjQUFjRSxHQUFHLEdBQUcsR0FBRztRQUN6QkwsdUJBQXVCUyxjQUFjLENBQUM7WUFDcENDLE9BQU87UUFDVDtJQUNGO0lBRUFYLE9BQU9VLGNBQWMsQ0FBQztRQUFFQyxPQUFPO0lBQVU7QUFDM0M7QUFFQTs7O0NBR0MsR0FDRCxTQUFTQyxtQkFBbUJDLFlBQW9CLEVBQUVDLFNBQWlCLEVBQUVDLE1BQWM7SUFDakYsSUFBSUMsZ0JBQWdCRDtJQUNwQixJQUFLLElBQUlFLElBQUlELGVBQWVDLEtBQUtILFVBQVVJLE1BQU0sRUFBRUQsSUFBSztRQUN0RCxJQUFJSixhQUFhTSxNQUFNLENBQUMsQ0FBQ0YsT0FBT0gsVUFBVUssTUFBTSxDQUFDLEdBQUdGLElBQUk7WUFDdERELGdCQUFnQkM7UUFDbEI7SUFDRjtJQUNBLE9BQU9EO0FBQ1Q7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSSwwQkFBMEJDLEtBQW9CO0lBQ3JELE1BQU1DLFlBQVlDLElBQUFBLHNCQUFhO0lBQy9CLElBQUksQ0FBQ0MsSUFBQUEsMEJBQWlCLEVBQUNGLGNBQWMsQ0FBQ0EsVUFBVUcsV0FBVyxJQUFJO1FBQzdELE9BQU87SUFDVDtJQUNBLE1BQU1DLFNBQVNKLFVBQVVJLE1BQU07SUFDL0IsSUFBSUEsT0FBT0MsSUFBSSxLQUFLLFFBQVE7UUFDMUIsT0FBTztJQUNUO0lBQ0EsTUFBTUMsYUFBYUYsT0FBT0csT0FBTztJQUNqQyxJQUFJLENBQUNELFdBQVdFLFlBQVksSUFBSTtRQUM5QixPQUFPO0lBQ1Q7SUFDQSxNQUFNQyxrQkFBa0JMLE9BQU9YLE1BQU07SUFDckMsTUFBTWlCLGNBQWNKLFdBQVdLLGNBQWMsR0FBR0MsS0FBSyxDQUFDLEdBQUdIO0lBQ3pELDBEQUEwRDtJQUMxRCxNQUFNSSxrQkFBa0JkLE1BQU1lLGlCQUFpQixDQUFDbEIsTUFBTTtJQUN0RCwwREFBMEQ7SUFDMUQsTUFBTW1CLGNBQWN6QixtQkFBbUJvQixhQUFhWCxNQUFNaUIsY0FBYyxFQUFFSDtJQUMxRSxNQUFNSSxjQUFjUixrQkFBa0JNO0lBQ3RDLElBQUlFLGNBQWMsR0FBRztRQUNuQixPQUFPO0lBQ1Q7SUFDQSxJQUFJQztJQUNKLElBQUlELGdCQUFnQixHQUFHO1FBQ3BCLENBQUNDLFFBQVEsR0FBR1osV0FBV2EsU0FBUyxDQUFDVjtJQUNwQyxPQUFPO1FBQ0osR0FBR1MsUUFBUSxHQUFHWixXQUFXYSxTQUFTLENBQUNGLGFBQWFSO0lBQ25EO0lBRUEsT0FBT1M7QUFDVDtBQUdPLFNBQVM3QyxnQkFDZCtDLE9BQW9CLEVBQ3BCQyxhQUFzQjtJQUV0QixJQUFJQyxRQUFRQyxpQkFBaUJIO0lBQzdCLE1BQU1JLHNCQUFzQkYsTUFBTUcsUUFBUSxLQUFLO0lBQy9DLE1BQU1DLGdCQUFnQkwsZ0JBQWdCLHlCQUF5QjtJQUMvRCxJQUFJQyxNQUFNRyxRQUFRLEtBQUssU0FBUztRQUM5QixPQUFPN0MsU0FBUytDLElBQUk7SUFDdEI7SUFDQSxJQUFLLElBQUlDLFNBQTZCUixTQUFVUSxTQUFTQSxPQUFPQyxhQUFhLEVBQUs7UUFDaEZQLFFBQVFDLGlCQUFpQks7UUFDekIsSUFBSUosdUJBQXVCRixNQUFNRyxRQUFRLEtBQUssVUFBVTtZQUN0RDtRQUNGO1FBQ0EsSUFBSUMsY0FBY0ksSUFBSSxDQUFDUixNQUFNUyxRQUFRLEdBQUdULE1BQU1VLFNBQVMsR0FBR1YsTUFBTVcsU0FBUyxHQUFHO1lBQzFFLE9BQU9MO1FBQ1Q7SUFDRjtJQUNBLE9BQU9oRCxTQUFTK0MsSUFBSTtBQUN0QjtBQUVBLFNBQVNPLHlDQUNQQyxhQUEwQixFQUMxQkMsZ0JBQTZCO0lBRTdCLE1BQU1DLFFBQVFGLGNBQWNwRCxxQkFBcUI7SUFDakQsTUFBTXVELFFBQVFGLGlCQUFpQnJELHFCQUFxQjtJQUNwRCxPQUFPc0QsTUFBTXJELEdBQUcsR0FBR3NELE1BQU10RCxHQUFHLElBQUlxRCxNQUFNckQsR0FBRyxHQUFHc0QsTUFBTUMsTUFBTTtBQUMxRDtBQUdPLFNBQVNqRSxzQkFDZGtFLFVBQWlDLEVBQ2pDTCxhQUFpQyxFQUNqQ00sWUFBd0IsRUFDeEJDLGtCQUFnRDtJQUVoRCxNQUFNLENBQUNDLE9BQU8sR0FBR0MsSUFBQUEsaURBQXlCO0lBQzFDQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSVYsaUJBQWlCLFFBQVFLLGNBQWMsTUFBTTtZQUMvQyxNQUFNTSxjQUFjSCxPQUFPSSxjQUFjO1lBQ3pDLE1BQU1DLG1CQUNKRixlQUFlLE9BQU96RSxnQkFBZ0J5RSxhQUFhLFNBQVNsRSxTQUFTK0MsSUFBSTtZQUMzRSxJQUFJc0IsVUFBVTtZQUNkLElBQUlDLG1CQUFtQmhCLHlDQUNyQkMsZUFDQWE7WUFFRixNQUFNRyxlQUFlO2dCQUNuQixJQUFJLENBQUNGLFNBQVM7b0JBQ1ovRCxPQUFPa0UscUJBQXFCLENBQUM7d0JBQzNCWDt3QkFDQVEsVUFBVTtvQkFDWjtvQkFDQUEsVUFBVTtnQkFDWjtnQkFDQSxNQUFNSSxXQUFXbkIseUNBQXlDQyxlQUFlYTtnQkFDekUsSUFBSUssYUFBYUgsa0JBQWtCO29CQUNqQ0EsbUJBQW1CRztvQkFDbkIsSUFBSVgsc0JBQXNCLE1BQU07d0JBQzlCQSxtQkFBbUJXO29CQUNyQjtnQkFDRjtZQUNGO1lBQ0EsTUFBTUMsaUJBQWlCLElBQUlDLGVBQWVkO1lBQzFDdkQsT0FBT3NFLGdCQUFnQixDQUFDLFVBQVVmO1lBQ2xDN0QsU0FBUzRFLGdCQUFnQixDQUFDLFVBQVVMLGNBQWM7Z0JBQ2hETSxTQUFTO2dCQUNUQyxTQUFTO1lBQ1g7WUFDQUosZUFBZUssT0FBTyxDQUFDeEI7WUFDdkIsT0FBTztnQkFDTG1CLGVBQWVNLFNBQVMsQ0FBQ3pCO2dCQUN6QmpELE9BQU8yRSxtQkFBbUIsQ0FBQyxVQUFVcEI7Z0JBQ3JDN0QsU0FBU2lGLG1CQUFtQixDQUFDLFVBQVVWLGNBQWM7WUFDdkQ7UUFDRjtJQUNGLEdBQUc7UUFBQ2hCO1FBQWVRO1FBQVFEO1FBQW9CRDtRQUFjRDtLQUFXO0FBQzFFO0FBRU8sTUFBTXBFLDRDQUdSMEYsSUFBQUEsc0JBQWEsRUFBQztBQUVaLFNBQVMzRixZQUFZLEVBQzFCNEYsZ0JBQWdCLEVBQ2hCQyxLQUFLLEVBQ0xyQixNQUFNLEVBQ04sdUlBQXVJO0FBQ3ZJc0IsaUJBQWlCLEVBQ2pCQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZDNCLFVBQVUsRUFDVjRCLDJCQUEyQixLQUFLLEVBZWpDO0lBQ0MsTUFBTSxDQUFDQyxtQkFBbUJDLHFCQUFxQixHQUFHQyxJQUFBQSxlQUFRLEVBQWdCO0lBRTFFLE1BQU12RCxpQkFBaUIsQUFBQ3dCLFdBQVd6QyxLQUFLLElBQUl5QyxXQUFXekMsS0FBSyxDQUFDaUIsY0FBYyxJQUFLO0lBRWhGLE1BQU13RCx1QkFBdUJDLElBQUFBLGtCQUFXLEVBQ3RDLENBQUNDO1FBQ0MsTUFBTUMsV0FBV2hDLE9BQU9JLGNBQWM7UUFDdEMsSUFBSTRCLGFBQWEsTUFBTTtZQUNyQkEsU0FBU0MsWUFBWSxDQUFDLHlCQUF5QixDQUFDLEVBQUVwRyxVQUFVLE9BQU8sRUFBRWtHLE9BQU9HLEdBQUcsQ0FBQyxDQUFDO1lBQ2pGUCxxQkFBcUJJLE9BQU9HLEdBQUc7UUFDakM7SUFDRixHQUNBO1FBQUNsQztLQUFPO0lBR1YsTUFBTW1DLDRDQUE0Q0wsSUFBQUEsa0JBQVcsRUFBQztRQUM1RCx3REFBd0Q7UUFDeEQsSUFBSVIsc0JBQXNCLFFBQVFqRCxrQkFBa0IsTUFBTTtZQUN4RCx1SUFBdUk7WUFDdkksTUFBTStELGFBQWFkLGtCQUFrQmUsT0FBTyxDQUFDLENBQUNDLFFBQVVBLE1BQU1DLE9BQU87WUFFckUsSUFBSUgsV0FBV25GLE1BQU0sRUFBRTtnQkFDckIsTUFBTXVGLHNCQUFzQkosVUFBVSxDQUFDLEVBQUU7Z0JBQ3pDUCxxQkFBcUJXO1lBQ3ZCO1FBQ0Y7SUFDRixHQUFHO1FBQUNsQjtRQUFtQk87UUFBc0J4RDtLQUFlO0lBRTVENkIsSUFBQUEsZ0JBQVMsRUFBQztRQUNSaUM7SUFDRixHQUFHO1FBQUM5RDtRQUFnQjhEO0tBQTBDO0lBRTlELE1BQU1NLHlCQUF5QlgsSUFBQUEsa0JBQVcsRUFDeEMsQ0FBQ1k7UUFDQzFDLE9BQU8yQyxNQUFNLENBQUM7WUFDWixNQUFNQywwQkFDSi9DLFdBQVd6QyxLQUFLLElBQUksUUFBUXFFLDJCQUN4QnRFLDBCQUEwQjBDLFdBQVd6QyxLQUFLLElBQzFDO1lBRU5vRSxlQUNFa0IsZ0JBQ0FFLHlCQUNBdkIsT0FDQXhCLFdBQVd6QyxLQUFLLEdBQUd5QyxXQUFXekMsS0FBSyxDQUFDaUIsY0FBYyxHQUFHO1FBRXpEO0lBQ0YsR0FDQTtRQUFDMkI7UUFBUXlCO1FBQTBCNUIsV0FBV3pDLEtBQUs7UUFBRW9FO1FBQWdCSDtLQUFNO0lBRzdFbkIsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU87WUFDTCxNQUFNOEIsV0FBV2hDLE9BQU9JLGNBQWM7WUFDdEMsSUFBSTRCLGFBQWEsTUFBTTtnQkFDckJBLFNBQVNhLGVBQWUsQ0FBQztZQUMzQjtRQUNGO0lBQ0YsR0FBRztRQUFDN0M7S0FBTztJQUVYOEMsSUFBQUEsc0JBQWUsRUFBQztRQUNkLElBQUl4QixzQkFBc0IsTUFBTTtZQUM5QksscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSUQsc0JBQXNCLE1BQU07WUFDckNTO1FBQ0Y7SUFDRixHQUFHO1FBQ0RiO1FBQ0FJO1FBQ0FHO1FBQ0FNO0tBQ0Q7SUFFRGpDLElBQUFBLGdCQUFTLEVBQUM7UUFDUixPQUFPNkMsSUFBQUEsb0JBQWEsRUFDbEIvQyxPQUFPZ0QsZUFBZSxDQUNwQnZILDJDQUNBLENBQUMsRUFBRXNHLE1BQU0sRUFBRTtZQUNULElBQUlBLE9BQU9rQixHQUFHLElBQUlsQixPQUFPa0IsR0FBRyxDQUFDQyxPQUFPLElBQUksTUFBTTtnQkFDNUNwSCx1QkFBdUJpRyxPQUFPa0IsR0FBRyxDQUFDQyxPQUFPO2dCQUN6QyxPQUFPO1lBQ1Q7WUFFQSxPQUFPO1FBQ1QsR0FDQUMsNkJBQW9CO0lBRzFCLEdBQUc7UUFBQ25EO1FBQVE2QjtLQUFxQjtJQUVqQzNCLElBQUFBLGdCQUFTLEVBQUM7UUFDUixPQUFPNkMsSUFBQUEsb0JBQWEsRUFDbEIvQyxPQUFPZ0QsZUFBZSxDQUNwQkksK0JBQXNCLEVBQ3RCLENBQUNDO1lBQ0MsTUFBTUMsUUFBUUQ7WUFDZCxJQUNFL0Isc0JBQXNCLFFBQ3RCQSxrQkFBa0JyRSxNQUFNLElBQ3hCeUUsc0JBQXNCLE1BQ3RCO2dCQUNBLE1BQU1VLGFBQWFkLGtCQUFrQmUsT0FBTyxDQUFDLENBQUNDLFFBQVVBLE1BQU1DLE9BQU87Z0JBQ3JFLE1BQU1nQixnQkFBZ0JuQixXQUFXb0IsU0FBUyxDQUFDLENBQUN6QixTQUFXQSxPQUFPRyxHQUFHLEtBQUtSO2dCQUV0RSxNQUFNK0IsbUJBQW1CRixrQkFBa0JuQixXQUFXbkYsTUFBTSxHQUFHLElBQUlzRyxnQkFBZ0IsSUFBSTtnQkFFdkYsTUFBTUcsb0JBQW9CdEIsVUFBVSxDQUFDcUIsaUJBQWlCO2dCQUV0RDVCLHFCQUFxQjZCO2dCQUNyQixJQUFJQSxrQkFBa0JULEdBQUcsSUFBSSxRQUFRUyxrQkFBa0JULEdBQUcsQ0FBQ0MsT0FBTyxFQUFFO29CQUNsRWxELE9BQU8yRCxlQUFlLENBQUNsSSwyQ0FBMkM7d0JBQ2hFbUksT0FBT0g7d0JBQ1AxQixRQUFRMkI7b0JBQ1Y7Z0JBQ0Y7Z0JBQ0FKLE1BQU1PLGNBQWM7Z0JBQ3BCUCxNQUFNUSx3QkFBd0I7WUFDaEM7WUFDQSxPQUFPO1FBQ1QsR0FDQVgsNkJBQW9CLEdBRXRCbkQsT0FBT2dELGVBQWUsQ0FDcEJlLDZCQUFvQixFQUNwQixDQUFDVjtZQUNDLE1BQU1DLFFBQVFEO1lBQ2QsSUFDRS9CLHNCQUFzQixRQUN0QkEsa0JBQWtCckUsTUFBTSxJQUN4QnlFLHNCQUFzQixNQUN0QjtnQkFDQSxNQUFNVSxhQUFhZCxrQkFBa0JlLE9BQU8sQ0FBQyxDQUFDQyxRQUFVQSxNQUFNQyxPQUFPO2dCQUNyRSxNQUFNZ0IsZ0JBQWdCbkIsV0FBV29CLFNBQVMsQ0FBQyxDQUFDekIsU0FBV0EsT0FBT0csR0FBRyxLQUFLUjtnQkFFdEUsTUFBTStCLG1CQUFtQkYsa0JBQWtCLElBQUlBLGdCQUFnQixJQUFJbkIsV0FBV25GLE1BQU0sR0FBRztnQkFFdkYsTUFBTXlHLG9CQUFvQnRCLFVBQVUsQ0FBQ3FCLGlCQUFpQjtnQkFFdEQ1QixxQkFBcUI2QjtnQkFDckIsSUFBSUEsa0JBQWtCVCxHQUFHLElBQUksUUFBUVMsa0JBQWtCVCxHQUFHLENBQUNDLE9BQU8sRUFBRTtvQkFDbEVwSCx1QkFBdUI0SCxrQkFBa0JULEdBQUcsQ0FBQ0MsT0FBTztnQkFDdEQ7Z0JBQ0FJLE1BQU1PLGNBQWM7Z0JBQ3BCUCxNQUFNUSx3QkFBd0I7WUFDaEM7WUFDQSxPQUFPO1FBQ1QsR0FDQVgsNkJBQW9CLEdBRXRCbkQsT0FBT2dELGVBQWUsQ0FDcEJnQiwyQkFBa0IsRUFDbEIsQ0FBQ1g7WUFDQyxNQUFNQyxRQUFRRDtZQUNkQyxNQUFNTyxjQUFjO1lBQ3BCUCxNQUFNUSx3QkFBd0I7WUFDOUJ6QztZQUNBLE9BQU87UUFDVCxHQUNBOEIsNkJBQW9CLEdBRXRCbkQsT0FBT2dELGVBQWUsQ0FDcEJpQix3QkFBZSxFQUNmLENBQUNaO1lBQ0MsTUFBTUMsUUFBUUQ7WUFFZCxJQUFJL0Isc0JBQXNCLFFBQVFJLHNCQUFzQixNQUFNO2dCQUM1RCxPQUFPO1lBQ1Q7WUFDQSxNQUFNVSxhQUFhZCxrQkFBa0JlLE9BQU8sQ0FBQyxDQUFDQyxRQUFVQSxNQUFNQyxPQUFPO1lBQ3JFLE1BQU1HLGlCQUFpQk4sV0FBVzhCLElBQUksQ0FBQyxDQUFDbkMsU0FBV0EsT0FBT0csR0FBRyxLQUFLUjtZQUNsRSxJQUFJLENBQUNnQixnQkFBZ0I7Z0JBQ25CLE9BQU87WUFDVDtZQUVBWSxNQUFNTyxjQUFjO1lBQ3BCUCxNQUFNUSx3QkFBd0I7WUFDOUJyQix1QkFBdUJDO1lBQ3ZCLE9BQU87UUFDVCxHQUNBUyw2QkFBb0IsR0FFdEJuRCxPQUFPZ0QsZUFBZSxDQUNwQm1CLDBCQUFpQixFQUNqQixDQUFDYjtZQUNDLElBQUloQyxzQkFBc0IsUUFBUUksc0JBQXNCLE1BQU07Z0JBQzVELE9BQU87WUFDVDtZQUNBLE1BQU1VLGFBQWFkLGtCQUFrQmUsT0FBTyxDQUFDLENBQUNDLFFBQVVBLE1BQU1DLE9BQU87WUFDckUsTUFBTUcsaUJBQWlCTixXQUFXOEIsSUFBSSxDQUFDLENBQUNuQyxTQUFXQSxPQUFPRyxHQUFHLEtBQUtSO1lBQ2xFLElBQUksQ0FBQ2dCLGdCQUFnQjtnQkFDbkIsT0FBTztZQUNUO1lBRUEsSUFBSVksVUFBVSxNQUFNO2dCQUNsQkEsTUFBTU8sY0FBYztnQkFDcEJQLE1BQU1RLHdCQUF3QjtZQUNoQztZQUNBckIsdUJBQXVCQztZQUN2QixPQUFPO1FBQ1QsR0FDQVMsNkJBQW9CO0lBRzFCLEdBQUc7UUFDRFY7UUFDQXBCO1FBQ0FyQjtRQUNBc0I7UUFDQUk7UUFDQUc7S0FDRDtJQUVELE1BQU11QyxnQkFBZ0JDLElBQUFBLGNBQU8sRUFDM0IsSUFBTyxDQUFBO1lBQ0wvQztZQUNBbUI7WUFDQWY7WUFDQUM7UUFDRixDQUFBLEdBQ0E7UUFBQ2M7UUFBd0JmO1FBQW1CSjtLQUFrQjtJQUdoRSxPQUFPQyxhQUNMSCxrQkFDQWdELGVBQ0F2RSxXQUFXekMsS0FBSyxHQUFHeUMsV0FBV3pDLEtBQUssQ0FBQ2lCLGNBQWMsR0FBRztBQUV6RDtBQUVPLFNBQVN6QyxpQkFDZDBJLFVBQXVCLEVBQ3ZCekUsVUFBaUMsRUFDakMwRSxhQUFpRCxFQUNqREMsU0FBa0I7SUFFbEIsTUFBTSxDQUFDeEUsT0FBTyxHQUFHQyxJQUFBQSxpREFBeUI7SUFDMUMsTUFBTW1CLG1CQUFtQnFELElBQUFBLGFBQU0sRUFBY3hJLFNBQVN5SSxhQUFhLENBQUM7SUFDcEUsTUFBTUMsZUFBZTdDLElBQUFBLGtCQUFXLEVBQUM7UUFDL0IsTUFBTTNCLGNBQWNILE9BQU9JLGNBQWM7UUFDekMsTUFBTXdFLGVBQWV4RCxpQkFBaUI4QixPQUFPO1FBRTdDLE1BQU0yQixrQkFBa0I7UUFFeEIsTUFBTUMsVUFBVUYsYUFBYUcsVUFBVTtRQUN2QyxJQUFJNUUsZ0JBQWdCLFFBQVFOLGVBQWUsTUFBTTtZQUMvQyxNQUFNLEVBQUV2RCxNQUFNLEVBQUUwSSxLQUFLLEVBQUUsR0FBR25GLFdBQVdvRixPQUFPO1lBQzVDLElBQUksRUFBRUMsSUFBSSxFQUFFN0ksR0FBRyxFQUFFLEdBQUd3RCxXQUFXb0YsT0FBTztZQUV0QyxNQUFNRSxTQUFTOUk7WUFDZkEsT0FBT2lJLFdBQVdsSSxxQkFBcUIsR0FBR0MsR0FBRyxHQUFHRSxPQUFPNkksT0FBTztZQUM5REYsUUFBUVosV0FBV2xJLHFCQUFxQixHQUFHOEksSUFBSSxHQUFHM0ksT0FBTzhJLE9BQU87WUFDaEVULGFBQWFqRyxLQUFLLENBQUN1RyxJQUFJLEdBQUcsQ0FBQyxFQUFFQSxPQUFPM0ksT0FBTzhJLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdERULGFBQWFqRyxLQUFLLENBQUNyQyxNQUFNLEdBQUcsQ0FBQyxFQUFFQSxPQUFPLEVBQUUsQ0FBQztZQUN6Q3NJLGFBQWFqRyxLQUFLLENBQUNxRyxLQUFLLEdBQUcsQ0FBQyxFQUFFQSxNQUFNLEVBQUUsQ0FBQztZQUN2QyxJQUFJRixZQUFZLE1BQU07Z0JBQ3BCLE1BQU1RLFdBQVdSLFFBQVExSSxxQkFBcUI7Z0JBQzlDLE1BQU1tSixhQUFhRCxTQUFTaEosTUFBTTtnQkFDbEMsTUFBTWtKLFlBQVlGLFNBQVNOLEtBQUs7Z0JBRWhDLE1BQU1TLGtCQUFrQnRGLFlBQVkvRCxxQkFBcUI7Z0JBRXpELElBQUk4SSxPQUFPTSxZQUFZQyxnQkFBZ0JDLEtBQUssRUFBRTtvQkFDNUNkLGFBQWFqRyxLQUFLLENBQUN1RyxJQUFJLEdBQUcsQ0FBQyxFQUFFTyxnQkFBZ0JDLEtBQUssR0FBR0YsWUFBWWpKLE9BQU84SSxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNyRjtnQkFFQSxNQUFNTSwyQkFBMkJSLFNBQVNJLGFBQWFWLGtCQUFrQnRJLE9BQU9DLFdBQVc7Z0JBQzNGLCtFQUErRTtnQkFDL0UsTUFBTW9KLHdCQUF3QlQsU0FBUztnQkFFdkMseUhBQXlIO2dCQUN6SCxJQUFJUSw0QkFBNEIsQ0FBQ0MsdUJBQXVCO29CQUN0RCxNQUFNQyxTQUFTO29CQUNmakIsYUFBYWpHLEtBQUssQ0FBQ3RDLEdBQUcsR0FBRyxDQUFDLEVBQ3hCQSxNQUFNd0ksa0JBQWtCVSxhQUFhaEosT0FBTzZJLE9BQU8sR0FBSTlJLENBQUFBLFNBQVN1SixNQUFLLEVBQ3RFLEVBQUUsQ0FBQztnQkFDTixPQUFPO29CQUNMakIsYUFBYWpHLEtBQUssQ0FBQ3RDLEdBQUcsR0FBRyxDQUFDLEVBQUVBLE1BQU1FLE9BQU82SSxPQUFPLEdBQUdQLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hFO1lBQ0Y7WUFFQSxJQUFJLENBQUNELGFBQWFrQixXQUFXLEVBQUU7Z0JBQzdCLElBQUl0QixhQUFhLE1BQU07b0JBQ3JCSSxhQUFhSixTQUFTLEdBQUdBO2dCQUMzQjtnQkFDQUksYUFBYTNDLFlBQVksQ0FBQyxjQUFjO2dCQUN4QzJDLGFBQWEzQyxZQUFZLENBQUMsTUFBTTtnQkFDaEMyQyxhQUFhM0MsWUFBWSxDQUFDLFFBQVE7Z0JBQ2xDMkMsYUFBYWpHLEtBQUssQ0FBQ29ILE9BQU8sR0FBRztnQkFDN0JuQixhQUFhakcsS0FBSyxDQUFDRyxRQUFRLEdBQUc7Z0JBQzlCd0YsV0FBVzBCLE1BQU0sQ0FBQ3BCO1lBQ3BCO1lBQ0F4RCxpQkFBaUI4QixPQUFPLEdBQUcwQjtZQUMzQnpFLFlBQVk4QixZQUFZLENBQUMsaUJBQWlCO1FBQzVDO0lBQ0YsR0FBRztRQUFDakM7UUFBUUg7UUFBWTJFO1FBQVdGO0tBQVc7SUFFOUNwRSxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsTUFBTUMsY0FBY0gsT0FBT0ksY0FBYztRQUN6QyxJQUFJUCxlQUFlLE1BQU07WUFDdkI4RTtZQUNBLE9BQU87Z0JBQ0wsSUFBSXhFLGdCQUFnQixNQUFNO29CQUN4QkEsWUFBWTBDLGVBQWUsQ0FBQztnQkFDOUI7Z0JBRUEsTUFBTStCLGVBQWV4RCxpQkFBaUI4QixPQUFPO2dCQUM3QyxJQUFJMEIsaUJBQWlCLFFBQVFBLGFBQWFrQixXQUFXLEVBQUU7b0JBQ3JEbEIsYUFBYXFCLE1BQU07Z0JBQ3JCO1lBQ0Y7UUFDRjtJQUNGLEdBQUc7UUFBQ2pHO1FBQVEyRTtRQUFjOUU7S0FBVztJQUVyQyxNQUFNRSxxQkFBcUIrQixJQUFBQSxrQkFBVyxFQUNwQyxDQUFDcEI7UUFDQyxJQUFJYixlQUFlLE1BQU07WUFDdkIsSUFBSSxDQUFDYSxVQUFVO2dCQUNiNkQsY0FBYztZQUNoQjtRQUNGO0lBQ0YsR0FDQTtRQUFDMUU7UUFBWTBFO0tBQWM7SUFHN0I1SSxzQkFBc0JrRSxZQUFZdUIsaUJBQWlCOEIsT0FBTyxFQUFFeUIsY0FBYzVFO0lBRTFFLE9BQU9xQjtBQUNUIn0=
426
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL0xleGljYWxNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQsIExleGljYWxFZGl0b3IsIFRleHROb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RQb3J0YWwgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gIEtFWV9BUlJPV19VUF9DT01NQU5ELFxuICBLRVlfRU5URVJfQ09NTUFORCxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBLRVlfVEFCX0NPTU1BTkQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBNZW51VGV4dE1hdGNoIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBNZW51UmVzb2x1dGlvbiA9IHtcbiAgZ2V0UmVjdDogKCkgPT4gRE9NUmVjdFxuICBtYXRjaD86IE1lbnVUZXh0TWF0Y2hcbn1cblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmV4cG9ydCB0eXBlIE1lbnVSZW5kZXJGbiA9IChcbiAgYW5jaG9yRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LFxuICBpdGVtUHJvcHM6IHtcbiAgICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcDogKHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24pID0+IHZvaWRcbiAgICBzZWxlY3RlZE9wdGlvbktleTogbnVsbCB8IHN0cmluZ1xuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5OiAob3B0aW9uS2V5OiBzdHJpbmcpID0+IHZvaWRcbiAgfSxcbiAgbWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcsXG4pID0+IEpTWC5FbGVtZW50IHwgUmVhY3RQb3J0YWwgfCBudWxsXG5cbmNvbnN0IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSAodGFyZ2V0OiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCB0eXBlYWhlYWRDb250YWluZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NsYXNoLW1lbnUnKVxuICBpZiAoIXR5cGVhaGVhZENvbnRhaW5lck5vZGUpIHJldHVyblxuXG4gIGNvbnN0IHR5cGVhaGVhZFJlY3QgPSB0eXBlYWhlYWRDb250YWluZXJOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wICsgdHlwZWFoZWFkUmVjdC5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICB0eXBlYWhlYWRDb250YWluZXJOb2RlLnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICB9KVxuICB9XG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wIDwgMCkge1xuICAgIHR5cGVhaGVhZENvbnRhaW5lck5vZGUuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgIH0pXG4gIH1cblxuICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pXG59XG5cbi8qKlxuICogV2FsayBiYWNrd2FyZHMgYWxvbmcgdXNlciBpbnB1dCBhbmQgZm9yd2FyZCB0aHJvdWdoIGVudGl0eSB0aXRsZSB0byB0cnlcbiAqIGFuZCByZXBsYWNlIG1vcmUgb2YgdGhlIHVzZXIncyB0ZXh0IHdpdGggZW50aXR5LlxuICovXG5mdW5jdGlvbiBnZXRGdWxsTWF0Y2hPZmZzZXQoZG9jdW1lbnRUZXh0OiBzdHJpbmcsIGVudHJ5VGV4dDogc3RyaW5nLCBvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCB0cmlnZ2VyT2Zmc2V0ID0gb2Zmc2V0XG4gIGZvciAobGV0IGkgPSB0cmlnZ2VyT2Zmc2V0OyBpIDw9IGVudHJ5VGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudFRleHQuc3Vic3RyKC1pKSA9PT0gZW50cnlUZXh0LnN1YnN0cigwLCBpKSkge1xuICAgICAgdHJpZ2dlck9mZnNldCA9IGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRyaWdnZXJPZmZzZXRcbn1cblxuLyoqXG4gKiBTcGxpdCBMZXhpY2FsIFRleHROb2RlIGFuZCByZXR1cm4gYSBuZXcgVGV4dE5vZGUgb25seSBjb250YWluaW5nIG1hdGNoZWQgdGV4dC5cbiAqIENvbW1vbiB1c2UgY2FzZXMgaW5jbHVkZTogcmVtb3ZpbmcgdGhlIG5vZGUsIHJlcGxhY2luZyB3aXRoIGEgbmV3IG5vZGUuXG4gKi9cbmZ1bmN0aW9uICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkobWF0Y2g6IE1lbnVUZXh0TWF0Y2gpOiBUZXh0Tm9kZSB8IG51bGwge1xuICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8ICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBzZWxlY3Rpb25PZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIGNvbnN0IHRleHRDb250ZW50ID0gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIHNlbGVjdGlvbk9mZnNldClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBjaGFyYWN0ZXJPZmZzZXQgPSBtYXRjaC5yZXBsYWNlYWJsZVN0cmluZy5sZW5ndGhcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBxdWVyeU9mZnNldCA9IGdldEZ1bGxNYXRjaE9mZnNldCh0ZXh0Q29udGVudCwgbWF0Y2gubWF0Y2hpbmdTdHJpbmcsIGNoYXJhY3Rlck9mZnNldClcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBzZWxlY3Rpb25PZmZzZXQgLSBxdWVyeU9mZnNldFxuICBpZiAoc3RhcnRPZmZzZXQgPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBsZXQgbmV3Tm9kZVxuICBpZiAoc3RhcnRPZmZzZXQgPT09IDApIHtcbiAgICA7W25ld05vZGVdID0gYW5jaG9yTm9kZS5zcGxpdFRleHQoc2VsZWN0aW9uT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIDtbLCBuZXdOb2RlXSA9IGFuY2hvck5vZGUuc3BsaXRUZXh0KHN0YXJ0T2Zmc2V0LCBzZWxlY3Rpb25PZmZzZXQpXG4gIH1cblxuICByZXR1cm4gbmV3Tm9kZVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmZ1bmN0aW9uIGlzVHJpZ2dlclZpc2libGVJbk5lYXJlc3RTY3JvbGxDb250YWluZXIoXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCB0UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgY1JlY3QgPSBjb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiB0UmVjdC50b3AgPiBjUmVjdC50b3AgJiYgdFJlY3QudG9wIDwgY1JlY3QuYm90dG9tXG59XG5cbi8vIFJlcG9zaXRpb24gdGhlIG1lbnUgb24gc2Nyb2xsLCB3aW5kb3cgcmVzaXplLCBhbmQgZWxlbWVudCByZXNpemUuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1Bvc2l0aW9uaW5nKFxuICByZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbiB8IG51bGwsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgb25SZXBvc2l0aW9uOiAoKSA9PiB2b2lkLFxuICBvblZpc2liaWxpdHlDaGFuZ2U/OiAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHZvaWQsXG4pIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGFyZ2V0RWxlbWVudCAhPSBudWxsICYmIHJlc29sdXRpb24gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuICAgICAgY29uc3Qgcm9vdFNjcm9sbFBhcmVudCA9XG4gICAgICAgIHJvb3RFbGVtZW50ICE9IG51bGwgPyBnZXRTY3JvbGxQYXJlbnQocm9vdEVsZW1lbnQsIGZhbHNlKSA6IGRvY3VtZW50LmJvZHlcbiAgICAgIGxldCB0aWNraW5nID0gZmFsc2VcbiAgICAgIGxldCBwcmV2aW91c0lzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcihcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgcm9vdFNjcm9sbFBhcmVudCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aWNraW5nKSB7XG4gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvblJlcG9zaXRpb24oKVxuICAgICAgICAgICAgdGlja2luZyA9IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aWNraW5nID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcih0YXJnZXRFbGVtZW50LCByb290U2Nyb2xsUGFyZW50KVxuICAgICAgICBpZiAoaXNJblZpZXcgIT09IHByZXZpb3VzSXNJblZpZXcpIHtcbiAgICAgICAgICBwcmV2aW91c0lzSW5WaWV3ID0gaXNJblZpZXdcbiAgICAgICAgICBpZiAob25WaXNpYmlsaXR5Q2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIG9uVmlzaWJpbGl0eUNoYW5nZShpc0luVmlldylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKG9uUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlcG9zaXRpb24pXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldEVsZW1lbnQpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUodGFyZ2V0RWxlbWVudClcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVwb3NpdGlvbilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsLCB0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3RhcmdldEVsZW1lbnQsIGVkaXRvciwgb25WaXNpYmlsaXR5Q2hhbmdlLCBvblJlcG9zaXRpb24sIHJlc29sdXRpb25dKVxufVxuXG5leHBvcnQgY29uc3QgU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgaW5kZXg6IG51bWJlclxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufT4gPSBjcmVhdGVDb21tYW5kKCdTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsTWVudSh7XG4gIGFuY2hvckVsZW1lbnRSZWYsXG4gIGNsb3NlLFxuICBlZGl0b3IsXG4gIC8vIGdyb3Vwc1dpdGhPcHRpb25zIGZpbHRlcmluZyBpcyBhbHJlYWR5IGhhbmRsZWQgaW4gU2xhc2hNZW51L2luZGV4LnRzeC4gVGh1cywgZ3JvdXBzV2l0aE9wdGlvbnMgYWx3YXlzIGNvbnRhaW5zIHRoZSBtYXRjaGluZyBvcHRpb25zLlxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvblNlbGVjdE9wdGlvbixcbiAgcmVzb2x1dGlvbixcbiAgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5ID0gZmFsc2UsXG59OiB7XG4gIGFuY2hvckVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+XG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uXG4gIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeT86IGJvb2xlYW5cbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbc2VsZWN0ZWRPcHRpb25LZXksIHNldFNlbGVjdGVkT3B0aW9uS2V5XSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KG51bGwpXG5cbiAgY29uc3QgbWF0Y2hpbmdTdHJpbmcgPSAocmVzb2x1dGlvbi5tYXRjaCAmJiByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nKSB8fCAnJ1xuXG4gIGNvbnN0IHVwZGF0ZVNlbGVjdGVkT3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogU2xhc2hNZW51T3B0aW9uKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBgJHtiYXNlQ2xhc3N9X19pdGVtLSR7b3B0aW9uLmtleX1gKVxuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gIClcblxuICBjb25zdCBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBzZXQgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBmaXJzdCBvZiB0aGUgbWF0Y2hpbmcgb25lc1xuICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJiBtYXRjaGluZ1N0cmluZyAhPSBudWxsKSB7XG4gICAgICAvLyBncm91cHNXaXRoT3B0aW9ucyBmaWx0ZXJpbmcgaXMgYWxyZWFkeSBoYW5kbGVkIGluIFNsYXNoTWVudS9pbmRleC50c3guIFRodXMsIGdyb3Vwc1dpdGhPcHRpb25zIGFsd2F5cyBjb250YWlucyB0aGUgbWF0Y2hpbmcgb3B0aW9ucy5cbiAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcblxuICAgICAgaWYgKGFsbE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TWF0Y2hpbmdPcHRpb24gPSBhbGxPcHRpb25zWzBdXG4gICAgICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKGZpcnN0TWF0Y2hpbmdPcHRpb24pXG4gICAgICB9XG4gICAgfVxuICB9LCBbZ3JvdXBzV2l0aE9wdGlvbnMsIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLCBtYXRjaGluZ1N0cmluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbigpXG4gIH0sIFttYXRjaGluZ1N0cmluZywgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb25dKVxuXG4gIGNvbnN0IHNlbGVjdE9wdGlvbkFuZENsZWFuVXAgPSB1c2VDYWxsYmFjayhcbiAgICAoc2VsZWN0ZWRPcHRpb246IFNsYXNoTWVudU9wdGlvbikgPT4ge1xuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5ID1cbiAgICAgICAgICByZXNvbHV0aW9uLm1hdGNoICE9IG51bGwgJiYgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5XG4gICAgICAgICAgICA/ICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkocmVzb2x1dGlvbi5tYXRjaClcbiAgICAgICAgICAgIDogbnVsbFxuXG4gICAgICAgIG9uU2VsZWN0T3B0aW9uKFxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLFxuICAgICAgICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5LFxuICAgICAgICAgIGNsb3NlLFxuICAgICAgICAgIHJlc29sdXRpb24ubWF0Y2ggPyByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nIDogJycsXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yLCBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnksIHJlc29sdXRpb24ubWF0Y2gsIG9uU2VsZWN0T3B0aW9uLCBjbG9zZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvcl0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG51bGwpXG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb24oKVxuICAgIH1cbiAgfSwgW1xuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5VG9GaXJzdE1hdGNoaW5nT3B0aW9uLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCxcbiAgICAgICAgKHsgb3B0aW9uIH0pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnJlZiAmJiBvcHRpb24ucmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChvcHRpb24ucmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTZWxlY3RlZE9wdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQ8S2V5Ym9hcmRFdmVudD4oXG4gICAgICAgIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25LZXkgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBhbGxPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcblxuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXggIT09IGFsbE9wdGlvbnMubGVuZ3RoIC0gMSA/IHNlbGVjdGVkSW5kZXggKyAxIDogMFxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnNbbmV3U2VsZWN0ZWRJbmRleF1cblxuICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRPcHRpb24obmV3U2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICBpZiAobmV3U2VsZWN0ZWRPcHRpb24ucmVmICE9IG51bGwgJiYgbmV3U2VsZWN0ZWRPcHRpb24ucmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgIGluZGV4OiBuZXdTZWxlY3RlZEluZGV4LFxuICAgICAgICAgICAgICAgIG9wdGlvbjogbmV3U2VsZWN0ZWRPcHRpb24sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfQVJST1dfVVBfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHBheWxvYWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbktleSAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgYWxsT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZsYXRNYXAoKGdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFsbE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHNlbGVjdGVkT3B0aW9uS2V5KVxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJbmRleCAhPT0gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogYWxsT3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkT3B0aW9uID0gYWxsT3B0aW9uc1tuZXdTZWxlY3RlZEluZGV4XVxuXG4gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZE9wdGlvbihuZXdTZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgIGlmIChuZXdTZWxlY3RlZE9wdGlvbi5yZWYgIT0gbnVsbCAmJiBuZXdTZWxlY3RlZE9wdGlvbi5yZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5ld1NlbGVjdGVkT3B0aW9uLnJlZi5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDxLZXlib2FyZEV2ZW50PihcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gcGF5bG9hZFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfVEFCX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG5cbiAgICAgICAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwgfHwgc2VsZWN0ZWRPcHRpb25LZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhbGxPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmxhdE1hcCgoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMpXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhbGxPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gc2VsZWN0ZWRPcHRpb25LZXkpXG4gICAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcChzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRU5URVJfQ09NTUFORCxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyA9PT0gbnVsbCB8fCBzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAoc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW1xuICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgY2xvc2UsXG4gICAgZWRpdG9yLFxuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICBdKVxuXG4gIGNvbnN0IGxpc3RJdGVtUHJvcHMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyxcbiAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgICBzZWxlY3RlZE9wdGlvbktleSxcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIH0pLFxuICAgIFtzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgZ3JvdXBzV2l0aE9wdGlvbnNdLFxuICApXG5cbiAgcmV0dXJuIG1lbnVSZW5kZXJGbihcbiAgICBhbmNob3JFbGVtZW50UmVmLFxuICAgIGxpc3RJdGVtUHJvcHMsXG4gICAgcmVzb2x1dGlvbi5tYXRjaCA/IHJlc29sdXRpb24ubWF0Y2gubWF0Y2hpbmdTdHJpbmcgOiAnJyxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVudUFuY2hvclJlZihcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCxcbiAgc2V0UmVzb2x1dGlvbjogKHI6IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCkgPT4gdm9pZCxcbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuKTogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudD4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgY29uc3QgcG9zaXRpb25NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcblxuICAgIGNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDMyIGFzIGNvbnN0XG5cbiAgICBjb25zdCBtZW51RWxlID0gY29udGFpbmVyRGl2LmZpcnN0Q2hpbGQgYXMgRWxlbWVudFxuICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG4gICAgICBsZXQgeyBsZWZ0LCB0b3AgfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG5cbiAgICAgIGNvbnN0IHJhd1RvcCA9IHRvcFxuICAgICAgdG9wIC09IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgIGxlZnQgLT0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgd2luZG93LnNjcm9sbFhcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5sZWZ0ID0gYCR7bGVmdCArIHdpbmRvdy5zY3JvbGxYfXB4YFxuICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGBcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YFxuICAgICAgaWYgKG1lbnVFbGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWVudVJlY3QgPSBtZW51RWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBtZW51UmVjdC5oZWlnaHRcbiAgICAgICAgY29uc3QgbWVudVdpZHRoID0gbWVudVJlY3Qud2lkdGhcblxuICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGlmIChsZWZ0ICsgbWVudVdpZHRoID4gcm9vdEVsZW1lbnRSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmxlZnQgPSBgJHtyb290RWxlbWVudFJlY3QucmlnaHQgLSBtZW51V2lkdGggKyB3aW5kb3cuc2Nyb2xsWH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdvdWxkR29PZmZCb3R0b21PZlNjcmVlbiA9IHJhd1RvcCArIG1lbnVIZWlnaHQgKyBWRVJUSUNBTF9PRkZTRVQgPiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICAgLy9jb25zdCB3b3VsZEdvT2ZmQm90dG9tT2ZDb250YWluZXIgPSB0b3AgKyBtZW51SGVpZ2h0ID4gcm9vdEVsZW1lbnRSZWN0LmJvdHRvbVxuICAgICAgICBjb25zdCB3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4gPSByYXdUb3AgPCAwXG5cbiAgICAgICAgLy8gUG9zaXRpb24gc2xhc2ggbWVudSBhYm92ZSB0aGUgY3Vyc29yIGluc3RlYWQgb2YgYmVsb3cgKGRlZmF1bHQpIGlmIGl0IHdvdWxkIG90aGVyd2lzZSBnbyBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxuICAgICAgICBpZiAod291bGRHb09mZkJvdHRvbU9mU2NyZWVuICYmICF3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4pIHtcbiAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyNFxuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHtcbiAgICAgICAgICAgIHRvcCArIFZFUlRJQ0FMX09GRlNFVCAtIG1lbnVIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSAtIChoZWlnaHQgKyBtYXJnaW4pXG4gICAgICAgICAgfXB4YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHt0b3AgKyB3aW5kb3cuc2Nyb2xsWSArIFZFUlRJQ0FMX09GRlNFVH1weGBcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbnRhaW5lckRpdi5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBpZiAoY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lXG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdTbGFzaCBtZW51JylcbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnaWQnLCAnc2xhc2gtbWVudScpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnbGlzdGJveCcpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJ1xuICAgICAgICBjb250YWluZXJEaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gICAgICAgIGFuY2hvckVsZW0uYXBwZW5kKGNvbnRhaW5lckRpdilcbiAgICAgIH1cbiAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCA9IGNvbnRhaW5lckRpdlxuICAgICAgcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgJ3NsYXNoLW1lbnUnKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcmVzb2x1dGlvbiwgY2xhc3NOYW1lLCBhbmNob3JFbGVtXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAocmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgcG9zaXRpb25NZW51KClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGNvbnRhaW5lckRpdiAhPT0gbnVsbCAmJiBjb250YWluZXJEaXYuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcG9zaXRpb25NZW51LCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChyZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghaXNJblZpZXcpIHtcbiAgICAgICAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSxcbiAgKVxuXG4gIHVzZUR5bmFtaWNQb3NpdGlvbmluZyhyZXNvbHV0aW9uLCBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnQsIHBvc2l0aW9uTWVudSwgb25WaXNpYmlsaXR5Q2hhbmdlKVxuXG4gIHJldHVybiBhbmNob3JFbGVtZW50UmVmXG59XG4iXSwibmFtZXMiOlsiTGV4aWNhbE1lbnUiLCJTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCIsImdldFNjcm9sbFBhcmVudCIsInVzZUR5bmFtaWNQb3NpdGlvbmluZyIsInVzZU1lbnVBbmNob3JSZWYiLCJiYXNlQ2xhc3MiLCJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIiwidGFyZ2V0IiwidHlwZWFoZWFkQ29udGFpbmVyTm9kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0eXBlYWhlYWRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiaGVpZ2h0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiZ2V0RnVsbE1hdGNoT2Zmc2V0IiwiZG9jdW1lbnRUZXh0IiwiZW50cnlUZXh0Iiwib2Zmc2V0IiwidHJpZ2dlck9mZnNldCIsImkiLCJsZW5ndGgiLCJzdWJzdHIiLCIkc3BsaXROb2RlQ29udGFpbmluZ1F1ZXJ5IiwibWF0Y2giLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJpc0NvbGxhcHNlZCIsImFuY2hvciIsInR5cGUiLCJhbmNob3JOb2RlIiwiZ2V0Tm9kZSIsImlzU2ltcGxlVGV4dCIsInNlbGVjdGlvbk9mZnNldCIsInRleHRDb250ZW50IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsImNoYXJhY3Rlck9mZnNldCIsInJlcGxhY2VhYmxlU3RyaW5nIiwicXVlcnlPZmZzZXQiLCJtYXRjaGluZ1N0cmluZyIsInN0YXJ0T2Zmc2V0IiwibmV3Tm9kZSIsInNwbGl0VGV4dCIsImVsZW1lbnQiLCJpbmNsdWRlSGlkZGVuIiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsInBvc2l0aW9uIiwib3ZlcmZsb3dSZWdleCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lciIsInRhcmdldEVsZW1lbnQiLCJjb250YWluZXJFbGVtZW50IiwidFJlY3QiLCJjUmVjdCIsImJvdHRvbSIsInJlc29sdXRpb24iLCJvblJlcG9zaXRpb24iLCJvblZpc2liaWxpdHlDaGFuZ2UiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwidXNlRWZmZWN0Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsInJvb3RTY3JvbGxQYXJlbnQiLCJ0aWNraW5nIiwicHJldmlvdXNJc0luVmlldyIsImhhbmRsZVNjcm9sbCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzSW5WaWV3IiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckVsZW1lbnRSZWYiLCJjbG9zZSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25TZWxlY3RPcHRpb24iLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwidXNlU3RhdGUiLCJ1cGRhdGVTZWxlY3RlZE9wdGlvbiIsInVzZUNhbGxiYWNrIiwib3B0aW9uIiwicm9vdEVsZW0iLCJzZXRBdHRyaWJ1dGUiLCJrZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiIsImFsbE9wdGlvbnMiLCJmbGF0TWFwIiwiZ3JvdXAiLCJvcHRpb25zIiwiZmlyc3RNYXRjaGluZ09wdGlvbiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbiIsInVwZGF0ZSIsInRleHROb2RlQ29udGFpbmluZ1F1ZXJ5IiwicmVtb3ZlQXR0cmlidXRlIiwidXNlTGF5b3V0RWZmZWN0IiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyQ29tbWFuZCIsInJlZiIsImN1cnJlbnQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsIktFWV9BUlJPV19ET1dOX0NPTU1BTkQiLCJwYXlsb2FkIiwiZXZlbnQiLCJzZWxlY3RlZEluZGV4IiwiZmluZEluZGV4IiwibmV3U2VsZWN0ZWRJbmRleCIsIm5ld1NlbGVjdGVkT3B0aW9uIiwiZGlzcGF0Y2hDb21tYW5kIiwiaW5kZXgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsIktFWV9BUlJPV19VUF9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiS0VZX1RBQl9DT01NQU5EIiwiZmluZCIsIktFWV9FTlRFUl9DT01NQU5EIiwibGlzdEl0ZW1Qcm9wcyIsInVzZU1lbW8iLCJhbmNob3JFbGVtIiwic2V0UmVzb2x1dGlvbiIsImNsYXNzTmFtZSIsInVzZVJlZiIsImNyZWF0ZUVsZW1lbnQiLCJwb3NpdGlvbk1lbnUiLCJjb250YWluZXJEaXYiLCJWRVJUSUNBTF9PRkZTRVQiLCJtZW51RWxlIiwiZmlyc3RDaGlsZCIsIndpZHRoIiwiZ2V0UmVjdCIsImxlZnQiLCJyYXdUb3AiLCJzY3JvbGxZIiwic2Nyb2xsWCIsIm1lbnVSZWN0IiwibWVudUhlaWdodCIsIm1lbnVXaWR0aCIsInJvb3RFbGVtZW50UmVjdCIsInJpZ2h0Iiwid291bGRHb09mZkJvdHRvbU9mU2NyZWVuIiwid291bGRHb09mZlRvcE9mU2NyZWVuIiwibWFyZ2luIiwiaXNDb25uZWN0ZWQiLCJkaXNwbGF5IiwiYXBwZW5kIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBd01nQkEsV0FBVztlQUFYQTs7SUFMSEMseUNBQXlDO2VBQXpDQTs7SUFqRkdDLGVBQWU7ZUFBZkE7O0lBZ0NBQyxxQkFBcUI7ZUFBckJBOztJQW9UQUMsZ0JBQWdCO2VBQWhCQTs7O3dDQWxjMEI7dUJBQ1o7eUJBV3ZCO3VCQUM0RTtBQVduRixNQUFNQyxZQUFZO0FBYWxCLE1BQU1DLHlCQUF5QixDQUFDQztJQUM5QixNQUFNQyx5QkFBeUJDLFNBQVNDLGNBQWMsQ0FBQztJQUN2RCxJQUFJLENBQUNGLHdCQUF3QjtJQUU3QixNQUFNRyxnQkFBZ0JILHVCQUF1QkkscUJBQXFCO0lBRWxFLElBQUlELGNBQWNFLEdBQUcsR0FBR0YsY0FBY0csTUFBTSxHQUFHQyxPQUFPQyxXQUFXLEVBQUU7UUFDakVSLHVC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
@@ -273,4 +273,4 @@ function LexicalTypeaheadMenuPlugin({ anchorClassName, anchorElem, groupsWithOpt
273
273
  });
274
274
  }
275
275
 
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51J1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgTWVudVRleHRNYXRjaCwgVHJpZ2dlckZuIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB7IExleGljYWxNZW51LCB1c2VNZW51QW5jaG9yUmVmIH0gZnJvbSAnLi9MZXhpY2FsTWVudSdcblxuZXhwb3J0IGNvbnN0IFBVTkNUVUFUSU9OID0gJ1xcXFwuLFxcXFwrXFxcXCpcXFxcP1xcXFwkXFxcXEBcXFxcfCN7fVxcXFwoXFxcXClcXFxcXlxcXFwtXFxcXFtcXFxcXVxcXFxcXFxcLyElXFwnXCJ+PTw+Xzo7J1xuXG5mdW5jdGlvbiBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb246IFJhbmdlU2VsZWN0aW9uKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgaWYgKGFuY2hvci50eXBlICE9PSAndGV4dCcpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gIGlmICghYW5jaG9yTm9kZS5pc1NpbXBsZVRleHQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yT2Zmc2V0ID0gYW5jaG9yLm9mZnNldFxuICByZXR1cm4gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIGFuY2hvck9mZnNldClcbn1cblxuZnVuY3Rpb24gdHJ5VG9Qb3NpdGlvblJhbmdlKGxlYWRPZmZzZXQ6IG51bWJlciwgcmFuZ2U6IFJhbmdlLCBlZGl0b3JXaW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICBjb25zdCBkb21TZWxlY3Rpb24gPSBlZGl0b3JXaW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgaWYgKGRvbVNlbGVjdGlvbiA9PT0gbnVsbCB8fCAhZG9tU2VsZWN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGRvbVNlbGVjdGlvbi5hbmNob3JOb2RlXG4gIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gbGVhZE9mZnNldFxuICBjb25zdCBlbmRPZmZzZXQgPSBkb21TZWxlY3Rpb24uYW5jaG9yT2Zmc2V0XG5cbiAgaWYgKGFuY2hvck5vZGUgPT0gbnVsbCB8fCBlbmRPZmZzZXQgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdHJ5IHtcbiAgICByYW5nZS5zZXRTdGFydChhbmNob3JOb2RlLCBzdGFydE9mZnNldClcbiAgICAvLyBpZiBlbmRPZmZzZXQgaXMgMCwgcG9zaXRpb25pbmcgdGhlIHJhbmdlIGZvciB3aGVuIHlvdSBjbGljayB0aGUgcGx1cyBidXR0b24gdG8gb3BlbiB0aGUgc2xhc2ggbWVudSB3aWxsIGZpYWxcbiAgICByYW5nZS5zZXRFbmQoYW5jaG9yTm9kZSwgZW5kT2Zmc2V0ID4gMSA/IGVuZE9mZnNldCA6IDEpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yOiBMZXhpY2FsRWRpdG9yKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCB0ZXh0ID0gbnVsbFxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0ZXh0ID0gZ2V0VGV4dFVwVG9BbmNob3Ioc2VsZWN0aW9uKVxuICB9KVxuICByZXR1cm4gdGV4dFxufVxuXG5mdW5jdGlvbiBpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yOiBMZXhpY2FsRWRpdG9yLCBvZmZzZXQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICBpZiAob2Zmc2V0ICE9PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICBjb25zdCBhbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yXG4gICAgICBjb25zdCBhbmNob3JOb2RlID0gYW5jaG9yLmdldE5vZGUoKVxuICAgICAgY29uc3QgcHJldlNpYmxpbmcgPSBhbmNob3JOb2RlLmdldFByZXZpb3VzU2libGluZygpXG4gICAgICByZXR1cm4gJGlzVGV4dE5vZGUocHJldlNpYmxpbmcpICYmIHByZXZTaWJsaW5nLmlzVGV4dEVudGl0eSgpXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9KVxufVxuXG5mdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgaWYgKFJlYWN0LnN0YXJ0VHJhbnNpdGlvbikge1xuICAgIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjaylcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygpXG4gIH1cbn1cblxuLy8gR290IGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQyNTQzOTA4LzIwMTM1ODBcbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBpbmNsdWRlSGlkZGVuOiBib29sZWFuLFxuKTogSFRNTEJvZHlFbGVtZW50IHwgSFRNTEVsZW1lbnQge1xuICBsZXQgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpXG4gIGNvbnN0IGV4Y2x1ZGVTdGF0aWNQYXJlbnQgPSBzdHlsZS5wb3NpdGlvbiA9PT0gJ2Fic29sdXRlJ1xuICBjb25zdCBvdmVyZmxvd1JlZ2V4ID0gaW5jbHVkZUhpZGRlbiA/IC8oYXV0b3xzY3JvbGx8aGlkZGVuKS8gOiAvKGF1dG98c2Nyb2xsKS9cbiAgaWYgKHN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbiAgfVxuICBmb3IgKGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQ7IChwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCk7ICkge1xuICAgIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpXG4gICAgaWYgKGV4Y2x1ZGVTdGF0aWNQYXJlbnQgJiYgc3R5bGUucG9zaXRpb24gPT09ICdzdGF0aWMnKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAob3ZlcmZsb3dSZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93ICsgc3R5bGUub3ZlcmZsb3dZICsgc3R5bGUub3ZlcmZsb3dYKSkge1xuICAgICAgcmV0dXJuIHBhcmVudFxuICAgIH1cbiAgfVxuICByZXR1cm4gZG9jdW1lbnQuYm9keVxufVxuXG5leHBvcnQgeyB1c2VEeW5hbWljUG9zaXRpb25pbmcgfSBmcm9tICcuL0xleGljYWxNZW51J1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRNZW51UGx1Z2luUHJvcHMgPSB7XG4gIGFuY2hvckNsYXNzTmFtZT86IHN0cmluZ1xuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudFxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIG9uT3Blbj86IChyZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbikgPT4gdm9pZFxuICBvblF1ZXJ5Q2hhbmdlOiAobWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcpID0+IHZvaWRcbiAgb25TZWxlY3RPcHRpb246IChcbiAgICBvcHRpb246IFNsYXNoTWVudU9wdGlvbixcbiAgICB0ZXh0Tm9kZUNvbnRhaW5pbmdRdWVyeTogVGV4dE5vZGUgfCBudWxsLFxuICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICBtYXRjaGluZ1N0cmluZzogc3RyaW5nLFxuICApID0+IHZvaWRcbiAgdHJpZ2dlckZuOiBUcmlnZ2VyRm5cbn1cblxuZXhwb3J0IGNvbnN0IEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgbm9kZTogUGFyYWdyYXBoTm9kZVxufT4gPSBjcmVhdGVDb21tYW5kKCdFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EJylcblxuZXhwb3J0IGZ1bmN0aW9uIExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luKHtcbiAgYW5jaG9yQ2xhc3NOYW1lLFxuICBhbmNob3JFbGVtLFxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvbkNsb3NlLFxuICBvbk9wZW4sXG4gIG9uUXVlcnlDaGFuZ2UsXG4gIG9uU2VsZWN0T3B0aW9uLFxuICB0cmlnZ2VyRm4sXG59OiBUeXBlYWhlYWRNZW51UGx1Z2luUHJvcHMpOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBbcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbl0gPSB1c2VTdGF0ZTxNZW51UmVzb2x1dGlvbiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFuY2hvckVsZW1lbnRSZWYgPSB1c2VNZW51QW5jaG9yUmVmKGFuY2hvckVsZW0sIHJlc29sdXRpb24sIHNldFJlc29sdXRpb24sIGFuY2hvckNsYXNzTmFtZSlcblxuICBjb25zdCBjbG9zZVR5cGVhaGVhZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgaWYgKG9uQ2xvc2UgIT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBvbkNsb3NlKClcbiAgICB9XG4gIH0sIFtvbkNsb3NlLCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvcGVuVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soXG4gICAgKHJlczogTWVudVJlc29sdXRpb24pID0+IHtcbiAgICAgIHNldFJlc29sdXRpb24ocmVzKVxuICAgICAgaWYgKG9uT3BlbiAhPSBudWxsICYmIHJlc29sdXRpb24gPT09IG51bGwpIHtcbiAgICAgICAgb25PcGVuKHJlcylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk9wZW4sIHJlc29sdXRpb25dLFxuICApXG5cbiAgLy8gVGhpcyBpcyBtYWlubHkgdXNlZCBmb3IgdGhlIEFkZEJsb2NrSGFuZGxlUGx1Z2luLCBzbyB0aGF0IHRoZSBzbGFzaCBtZW51IGNhbiBiZSBvcGVuZWQgZnJvbSB0aGVyZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCxcbiAgICAgICAgKHsgbm9kZSB9KSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaDogTWVudVRleHRNYXRjaCA9IHtcbiAgICAgICAgICAgICAgbGVhZE9mZnNldDogMCxcbiAgICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmc6ICcnLFxuICAgICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogJycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBlZGl0b3JXaW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCBvcGVuVHlwZWFoZWFkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZUxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvcldpbmRvdyA9IGVkaXRvci5fd2luZG93ID8/IHdpbmRvd1xuICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgICBjb25zdCB0ZXh0ID0gZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoKGVkaXRvcilcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikgfHxcbiAgICAgICAgICAhc2VsZWN0aW9uLmlzQ29sbGFwc2VkKCkgfHxcbiAgICAgICAgICB0ZXh0ID09PSBudWxsIHx8XG4gICAgICAgICAgcmFuZ2UgPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2xvc2VUeXBlYWhlYWQoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0cmlnZ2VyRm4oeyBlZGl0b3IsIHF1ZXJ5OiB0ZXh0IH0pXG4gICAgICAgIG9uUXVlcnlDaGFuZ2UobWF0Y2ggPyBtYXRjaC5tYXRjaGluZ1N0cmluZyA6IG51bGwpXG5cbiAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsICYmICFpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yLCBtYXRjaC5sZWFkT2Zmc2V0KSkge1xuICAgICAgICAgIGNvbnN0IGlzUmFuZ2VQb3NpdGlvbmVkID0gdHJ5VG9Qb3NpdGlvblJhbmdlKG1hdGNoLmxlYWRPZmZzZXQsIHJhbmdlLCBlZGl0b3JXaW5kb3cpXG4gICAgICAgICAgaWYgKGlzUmFuZ2VQb3NpdGlvbmVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT5cbiAgICAgICAgICAgICAgb3BlblR5cGVhaGVhZCh7XG4gICAgICAgICAgICAgICAgZ2V0UmVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2xvc2VUeXBlYWhlYWQoKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCByZW1vdmVVcGRhdGVMaXN0ZW5lciA9IGVkaXRvci5yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKHVwZGF0ZUxpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlbW92ZVVwZGF0ZUxpc3RlbmVyKClcbiAgICB9XG4gIH0sIFtlZGl0b3IsIHRyaWdnZXJGbiwgb25RdWVyeUNoYW5nZSwgcmVzb2x1dGlvbiwgY2xvc2VUeXBlYWhlYWQsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHJldHVybiByZXNvbHV0aW9uID09PSBudWxsIHx8IGVkaXRvciA9PT0gbnVsbCA/IG51bGwgOiAoXG4gICAgPExleGljYWxNZW51XG4gICAgICBhbmNob3JFbGVtZW50UmVmPXthbmNob3JFbGVtZW50UmVmfVxuICAgICAgY2xvc2U9e2Nsb3NlVHlwZWFoZWFkfVxuICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICBncm91cHNXaXRoT3B0aW9ucz17Z3JvdXBzV2l0aE9wdGlvbnN9XG4gICAgICBtZW51UmVuZGVyRm49e21lbnVSZW5kZXJGbn1cbiAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgIHJlc29sdXRpb249e3Jlc29sdXRpb259XG4gICAgICBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnlcbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24sIE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9XG4iXSwibmFtZXMiOlsiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwiTWVudVRleHRNYXRjaCIsIlBVTkNUVUFUSU9OIiwiVHJpZ2dlckZuIiwiZ2V0U2Nyb2xsUGFyZW50IiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiZ2V0VGV4dFVwVG9BbmNob3IiLCJzZWxlY3Rpb24iLCJhbmNob3IiLCJ0eXBlIiwiYW5jaG9yTm9kZSIsImdldE5vZGUiLCJpc1NpbXBsZVRleHQiLCJhbmNob3JPZmZzZXQiLCJvZmZzZXQiLCJnZXRUZXh0Q29udGVudCIsInNsaWNlIiwidHJ5VG9Qb3NpdGlvblJhbmdlIiwibGVhZE9mZnNldCIsInJhbmdlIiwiZWRpdG9yV2luZG93IiwiZG9tU2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwiaXNDb2xsYXBzZWQiLCJzdGFydE9mZnNldCIsImVuZE9mZnNldCIsInNldFN0YXJ0Iiwic2V0RW5kIiwiZXJyb3IiLCJnZXRRdWVyeVRleHRGb3JTZWFyY2giLCJlZGl0b3IiLCJ0ZXh0IiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5IiwicHJldlNpYmxpbmciLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNUZXh0Tm9kZSIsImlzVGV4dEVudGl0eSIsInN0YXJ0VHJhbnNpdGlvbiIsImNhbGxiYWNrIiwiUmVhY3QiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckNsYXNzTmFtZSIsImFuY2hvckVsZW0iLCJncm91cHNXaXRoT3B0aW9ucyIsIm1lbnVSZW5kZXJGbiIsIm9uQ2xvc2UiLCJvbk9wZW4iLCJvblF1ZXJ5Q2hhbmdlIiwib25TZWxlY3RPcHRpb24iLCJ0cmlnZ2VyRm4iLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicmVzb2x1dGlvbiIsInNldFJlc29sdXRpb24iLCJ1c2VTdGF0ZSIsImFuY2hvckVsZW1lbnRSZWYiLCJ1c2VNZW51QW5jaG9yUmVmIiwiY2xvc2VUeXBlYWhlYWQiLCJ1c2VDYWxsYmFjayIsIm9wZW5UeXBlYWhlYWQiLCJyZXMiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwibm9kZSIsIm1hdGNoIiwibWF0Y2hpbmdTdHJpbmciLCJyZXBsYWNlYWJsZVN0cmluZyIsIl93aW5kb3ciLCJ3aW5kb3ciLCJjcmVhdGVSYW5nZSIsImlzUmFuZ2VQb3NpdGlvbmVkIiwiZ2V0UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwidXBkYXRlTGlzdGVuZXIiLCJxdWVyeSIsInJlbW92ZVVwZGF0ZUxpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsIkxleGljYWxNZW51IiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBZ0phQSx5QkFBeUI7ZUFBekJBOztJQUlHQywwQkFBMEI7ZUFBMUJBOztJQXFJdUJDLGFBQWE7ZUFBYkEsa0NBQWE7O0lBOVB2Q0MsV0FBVztlQUFYQTs7SUE4UHlDQyxTQUFTO2VBQVRBLDhCQUFTOztJQWxML0NDLGVBQWU7ZUFBZkE7O0lBc0JQQyxxQkFBcUI7ZUFBckJBLGtDQUFxQjs7O3dDQXBIWTt1QkFDWjt5QkFPdkI7K0RBQzBDO3FDQU1SOzZCQUNLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdkMsTUFBTUgsY0FBYztBQUUzQixTQUFTSSxrQkFBa0JDLFNBQXlCO0lBQ2xELE1BQU1DLFNBQVNELFVBQVVDLE1BQU07SUFDL0IsSUFBSUEs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
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgTGV4aWNhbENvbW1hbmQsXG4gIExleGljYWxFZGl0b3IsXG4gIFBhcmFncmFwaE5vZGUsXG4gIFJhbmdlU2VsZWN0aW9uLFxuICBUZXh0Tm9kZSxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgJGlzVGV4dE5vZGUsXG4gIENPTU1BTkRfUFJJT1JJVFlfTE9XLFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24gfSBmcm9tICcuL0xleGljYWxNZW51J1xuaW1wb3J0IHR5cGUgeyBTbGFzaE1lbnVHcm91cCwgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgTWVudVRleHRNYXRjaCwgVHJpZ2dlckZuIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB7IExleGljYWxNZW51LCB1c2VNZW51QW5jaG9yUmVmIH0gZnJvbSAnLi9MZXhpY2FsTWVudSdcblxuZXhwb3J0IGNvbnN0IFBVTkNUVUFUSU9OID0gJ1xcXFwuLFxcXFwrXFxcXCpcXFxcP1xcXFwkXFxcXEBcXFxcfCN7fVxcXFwoXFxcXClcXFxcXlxcXFwtXFxcXFtcXFxcXVxcXFxcXFxcLyElXFwnXCJ+PTw+Xzo7J1xuXG5mdW5jdGlvbiBnZXRUZXh0VXBUb0FuY2hvcihzZWxlY3Rpb246IFJhbmdlU2VsZWN0aW9uKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IGFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JcbiAgaWYgKGFuY2hvci50eXBlICE9PSAndGV4dCcpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGFuY2hvck5vZGUgPSBhbmNob3IuZ2V0Tm9kZSgpXG4gIGlmICghYW5jaG9yTm9kZS5pc1NpbXBsZVRleHQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yT2Zmc2V0ID0gYW5jaG9yLm9mZnNldFxuICByZXR1cm4gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIGFuY2hvck9mZnNldClcbn1cblxuZnVuY3Rpb24gdHJ5VG9Qb3NpdGlvblJhbmdlKGxlYWRPZmZzZXQ6IG51bWJlciwgcmFuZ2U6IFJhbmdlLCBlZGl0b3JXaW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICBjb25zdCBkb21TZWxlY3Rpb24gPSBlZGl0b3JXaW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgaWYgKGRvbVNlbGVjdGlvbiA9PT0gbnVsbCB8fCAhZG9tU2VsZWN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGRvbVNlbGVjdGlvbi5hbmNob3JOb2RlXG4gIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gbGVhZE9mZnNldFxuICBjb25zdCBlbmRPZmZzZXQgPSBkb21TZWxlY3Rpb24uYW5jaG9yT2Zmc2V0XG5cbiAgaWYgKGFuY2hvck5vZGUgPT0gbnVsbCB8fCBlbmRPZmZzZXQgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdHJ5IHtcbiAgICByYW5nZS5zZXRTdGFydChhbmNob3JOb2RlLCBzdGFydE9mZnNldClcbiAgICAvLyBpZiBlbmRPZmZzZXQgaXMgMCwgcG9zaXRpb25pbmcgdGhlIHJhbmdlIGZvciB3aGVuIHlvdSBjbGljayB0aGUgcGx1cyBidXR0b24gdG8gb3BlbiB0aGUgc2xhc2ggbWVudSB3aWxsIGZpYWxcbiAgICByYW5nZS5zZXRFbmQoYW5jaG9yTm9kZSwgZW5kT2Zmc2V0ID4gMSA/IGVuZE9mZnNldCA6IDEpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiBnZXRRdWVyeVRleHRGb3JTZWFyY2goZWRpdG9yOiBMZXhpY2FsRWRpdG9yKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCB0ZXh0ID0gbnVsbFxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0ZXh0ID0gZ2V0VGV4dFVwVG9BbmNob3Ioc2VsZWN0aW9uKVxuICB9KVxuICByZXR1cm4gdGV4dFxufVxuXG5mdW5jdGlvbiBpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yOiBMZXhpY2FsRWRpdG9yLCBvZmZzZXQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICBpZiAob2Zmc2V0ICE9PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICBjb25zdCBhbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yXG4gICAgICBjb25zdCBhbmNob3JOb2RlID0gYW5jaG9yLmdldE5vZGUoKVxuICAgICAgY29uc3QgcHJldlNpYmxpbmcgPSBhbmNob3JOb2RlLmdldFByZXZpb3VzU2libGluZygpXG4gICAgICByZXR1cm4gJGlzVGV4dE5vZGUocHJldlNpYmxpbmcpICYmIHByZXZTaWJsaW5nLmlzVGV4dEVudGl0eSgpXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9KVxufVxuXG5mdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgaWYgKFJlYWN0LnN0YXJ0VHJhbnNpdGlvbikge1xuICAgIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbihjYWxsYmFjaylcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygpXG4gIH1cbn1cblxuLy8gR290IGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQyNTQzOTA4LzIwMTM1ODBcbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBpbmNsdWRlSGlkZGVuOiBib29sZWFuLFxuKTogSFRNTEJvZHlFbGVtZW50IHwgSFRNTEVsZW1lbnQge1xuICBsZXQgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpXG4gIGNvbnN0IGV4Y2x1ZGVTdGF0aWNQYXJlbnQgPSBzdHlsZS5wb3NpdGlvbiA9PT0gJ2Fic29sdXRlJ1xuICBjb25zdCBvdmVyZmxvd1JlZ2V4ID0gaW5jbHVkZUhpZGRlbiA/IC8oYXV0b3xzY3JvbGx8aGlkZGVuKS8gOiAvKGF1dG98c2Nyb2xsKS9cbiAgaWYgKHN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmJvZHlcbiAgfVxuICBmb3IgKGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQ7IChwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCk7ICkge1xuICAgIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpXG4gICAgaWYgKGV4Y2x1ZGVTdGF0aWNQYXJlbnQgJiYgc3R5bGUucG9zaXRpb24gPT09ICdzdGF0aWMnKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAob3ZlcmZsb3dSZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93ICsgc3R5bGUub3ZlcmZsb3dZICsgc3R5bGUub3ZlcmZsb3dYKSkge1xuICAgICAgcmV0dXJuIHBhcmVudFxuICAgIH1cbiAgfVxuICByZXR1cm4gZG9jdW1lbnQuYm9keVxufVxuXG5leHBvcnQgeyB1c2VEeW5hbWljUG9zaXRpb25pbmcgfSBmcm9tICcuL0xleGljYWxNZW51J1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRNZW51UGx1Z2luUHJvcHMgPSB7XG4gIGFuY2hvckNsYXNzTmFtZT86IHN0cmluZ1xuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudFxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIG9uT3Blbj86IChyZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbikgPT4gdm9pZFxuICBvblF1ZXJ5Q2hhbmdlOiAobWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcpID0+IHZvaWRcbiAgb25TZWxlY3RPcHRpb246IChcbiAgICBvcHRpb246IFNsYXNoTWVudU9wdGlvbixcbiAgICB0ZXh0Tm9kZUNvbnRhaW5pbmdRdWVyeTogVGV4dE5vZGUgfCBudWxsLFxuICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICBtYXRjaGluZ1N0cmluZzogc3RyaW5nLFxuICApID0+IHZvaWRcbiAgdHJpZ2dlckZuOiBUcmlnZ2VyRm5cbn1cblxuZXhwb3J0IGNvbnN0IEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgbm9kZTogUGFyYWdyYXBoTm9kZVxufT4gPSBjcmVhdGVDb21tYW5kKCdFTkFCTEVfU0xBU0hfTUVOVV9DT01NQU5EJylcblxuZXhwb3J0IGZ1bmN0aW9uIExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luKHtcbiAgYW5jaG9yQ2xhc3NOYW1lLFxuICBhbmNob3JFbGVtLFxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvbkNsb3NlLFxuICBvbk9wZW4sXG4gIG9uUXVlcnlDaGFuZ2UsXG4gIG9uU2VsZWN0T3B0aW9uLFxuICB0cmlnZ2VyRm4sXG59OiBUeXBlYWhlYWRNZW51UGx1Z2luUHJvcHMpOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBbcmVzb2x1dGlvbiwgc2V0UmVzb2x1dGlvbl0gPSB1c2VTdGF0ZTxNZW51UmVzb2x1dGlvbiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFuY2hvckVsZW1lbnRSZWYgPSB1c2VNZW51QW5jaG9yUmVmKGFuY2hvckVsZW0sIHJlc29sdXRpb24sIHNldFJlc29sdXRpb24sIGFuY2hvckNsYXNzTmFtZSlcblxuICBjb25zdCBjbG9zZVR5cGVhaGVhZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgaWYgKG9uQ2xvc2UgIT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBvbkNsb3NlKClcbiAgICB9XG4gIH0sIFtvbkNsb3NlLCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvcGVuVHlwZWFoZWFkID0gdXNlQ2FsbGJhY2soXG4gICAgKHJlczogTWVudVJlc29sdXRpb24pID0+IHtcbiAgICAgIHNldFJlc29sdXRpb24ocmVzKVxuICAgICAgaWYgKG9uT3BlbiAhPSBudWxsICYmIHJlc29sdXRpb24gPT09IG51bGwpIHtcbiAgICAgICAgb25PcGVuKHJlcylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbk9wZW4sIHJlc29sdXRpb25dLFxuICApXG5cbiAgLy8gVGhpcyBpcyBtYWlubHkgdXNlZCBmb3IgdGhlIEFkZEJsb2NrSGFuZGxlUGx1Z2luLCBzbyB0aGF0IHRoZSBzbGFzaCBtZW51IGNhbiBiZSBvcGVuZWQgZnJvbSB0aGVyZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCxcbiAgICAgICAgKHsgbm9kZSB9KSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaDogTWVudVRleHRNYXRjaCA9IHtcbiAgICAgICAgICAgICAgbGVhZE9mZnNldDogMCxcbiAgICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmc6ICcnLFxuICAgICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogJycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwgJiYgIWlzU2VsZWN0aW9uT25FbnRpdHlCb3VuZGFyeShlZGl0b3IsIG1hdGNoLmxlYWRPZmZzZXQpKSB7XG4gICAgICAgICAgICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWRpdG9yV2luZG93ID0gZWRpdG9yLl93aW5kb3cgPz8gd2luZG93XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBlZGl0b3JXaW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNSYW5nZVBvc2l0aW9uZWQgPSB0cnlUb1Bvc2l0aW9uUmFuZ2UobWF0Y2gubGVhZE9mZnNldCwgcmFuZ2UsIGVkaXRvcldpbmRvdylcbiAgICAgICAgICAgICAgICBpZiAoaXNSYW5nZVBvc2l0aW9uZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PlxuICAgICAgICAgICAgICAgICAgICBvcGVuVHlwZWFoZWFkKHtcbiAgICAgICAgICAgICAgICAgICAgICBnZXRSZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCBvcGVuVHlwZWFoZWFkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZUxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvcldpbmRvdyA9IGVkaXRvci5fd2luZG93ID8/IHdpbmRvd1xuICAgICAgICBjb25zdCByYW5nZSA9IGVkaXRvcldpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgICBjb25zdCB0ZXh0ID0gZ2V0UXVlcnlUZXh0Rm9yU2VhcmNoKGVkaXRvcilcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikgfHxcbiAgICAgICAgICAhc2VsZWN0aW9uLmlzQ29sbGFwc2VkKCkgfHxcbiAgICAgICAgICB0ZXh0ID09PSBudWxsIHx8XG4gICAgICAgICAgcmFuZ2UgPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2xvc2VUeXBlYWhlYWQoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0cmlnZ2VyRm4oeyBlZGl0b3IsIHF1ZXJ5OiB0ZXh0IH0pXG4gICAgICAgIG9uUXVlcnlDaGFuZ2UobWF0Y2ggPyBtYXRjaC5tYXRjaGluZ1N0cmluZyA6IG51bGwpXG5cbiAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsICYmICFpc1NlbGVjdGlvbk9uRW50aXR5Qm91bmRhcnkoZWRpdG9yLCBtYXRjaC5sZWFkT2Zmc2V0KSkge1xuICAgICAgICAgIGNvbnN0IGlzUmFuZ2VQb3NpdGlvbmVkID0gdHJ5VG9Qb3NpdGlvblJhbmdlKG1hdGNoLmxlYWRPZmZzZXQsIHJhbmdlLCBlZGl0b3JXaW5kb3cpXG4gICAgICAgICAgaWYgKGlzUmFuZ2VQb3NpdGlvbmVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT5cbiAgICAgICAgICAgICAgb3BlblR5cGVhaGVhZCh7XG4gICAgICAgICAgICAgICAgZ2V0UmVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2xvc2VUeXBlYWhlYWQoKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCByZW1vdmVVcGRhdGVMaXN0ZW5lciA9IGVkaXRvci5yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKHVwZGF0ZUxpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlbW92ZVVwZGF0ZUxpc3RlbmVyKClcbiAgICB9XG4gIH0sIFtlZGl0b3IsIHRyaWdnZXJGbiwgb25RdWVyeUNoYW5nZSwgcmVzb2x1dGlvbiwgY2xvc2VUeXBlYWhlYWQsIG9wZW5UeXBlYWhlYWRdKVxuXG4gIHJldHVybiByZXNvbHV0aW9uID09PSBudWxsIHx8IGVkaXRvciA9PT0gbnVsbCA/IG51bGwgOiAoXG4gICAgPExleGljYWxNZW51XG4gICAgICBhbmNob3JFbGVtZW50UmVmPXthbmNob3JFbGVtZW50UmVmfVxuICAgICAgY2xvc2U9e2Nsb3NlVHlwZWFoZWFkfVxuICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICBncm91cHNXaXRoT3B0aW9ucz17Z3JvdXBzV2l0aE9wdGlvbnN9XG4gICAgICBtZW51UmVuZGVyRm49e21lbnVSZW5kZXJGbn1cbiAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgIHJlc29sdXRpb249e3Jlc29sdXRpb259XG4gICAgICBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnlcbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCB7IE1lbnVSZW5kZXJGbiwgTWVudVJlc29sdXRpb24sIE1lbnVUZXh0TWF0Y2gsIFRyaWdnZXJGbiB9XG4iXSwibmFtZXMiOlsiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsIkxleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luIiwiTWVudVRleHRNYXRjaCIsIlBVTkNUVUFUSU9OIiwiVHJpZ2dlckZuIiwiZ2V0U2Nyb2xsUGFyZW50IiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiZ2V0VGV4dFVwVG9BbmNob3IiLCJzZWxlY3Rpb24iLCJhbmNob3IiLCJ0eXBlIiwiYW5jaG9yTm9kZSIsImdldE5vZGUiLCJpc1NpbXBsZVRleHQiLCJhbmNob3JPZmZzZXQiLCJvZmZzZXQiLCJnZXRUZXh0Q29udGVudCIsInNsaWNlIiwidHJ5VG9Qb3NpdGlvblJhbmdlIiwibGVhZE9mZnNldCIsInJhbmdlIiwiZWRpdG9yV2luZG93IiwiZG9tU2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwiaXNDb2xsYXBzZWQiLCJzdGFydE9mZnNldCIsImVuZE9mZnNldCIsInNldFN0YXJ0Iiwic2V0RW5kIiwiZXJyb3IiLCJnZXRRdWVyeVRleHRGb3JTZWFyY2giLCJlZGl0b3IiLCJ0ZXh0IiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiaXNTZWxlY3Rpb25PbkVudGl0eUJvdW5kYXJ5IiwicHJldlNpYmxpbmciLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNUZXh0Tm9kZSIsImlzVGV4dEVudGl0eSIsInN0YXJ0VHJhbnNpdGlvbiIsImNhbGxiYWNrIiwiUmVhY3QiLCJlbGVtZW50IiwiaW5jbHVkZUhpZGRlbiIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckNsYXNzTmFtZSIsImFuY2hvckVsZW0iLCJncm91cHNXaXRoT3B0aW9ucyIsIm1lbnVSZW5kZXJGbiIsIm9uQ2xvc2UiLCJvbk9wZW4iLCJvblF1ZXJ5Q2hhbmdlIiwib25TZWxlY3RPcHRpb24iLCJ0cmlnZ2VyRm4iLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicmVzb2x1dGlvbiIsInNldFJlc29sdXRpb24iLCJ1c2VTdGF0ZSIsImFuY2hvckVsZW1lbnRSZWYiLCJ1c2VNZW51QW5jaG9yUmVmIiwiY2xvc2VUeXBlYWhlYWQiLCJ1c2VDYWxsYmFjayIsIm9wZW5UeXBlYWhlYWQiLCJyZXMiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwibm9kZSIsIm1hdGNoIiwibWF0Y2hpbmdTdHJpbmciLCJyZXBsYWNlYWJsZVN0cmluZyIsIl93aW5kb3ciLCJ3aW5kb3ciLCJjcmVhdGVSYW5nZSIsImlzUmFuZ2VQb3NpdGlvbmVkIiwiZ2V0UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwidXBkYXRlTGlzdGVuZXIiLCJxdWVyeSIsInJlbW92ZVVwZGF0ZUxpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsIkxleGljYWxNZW51IiwiY2xvc2UiLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFnSmFBLHlCQUF5QjtlQUF6QkE7O0lBSUdDLDBCQUEwQjtlQUExQkE7O0lBcUl1QkMsYUFBYTtlQUFiQSxrQ0FBYTs7SUE5UHZDQyxXQUFXO2VBQVhBOztJQThQeUNDLFNBQVM7ZUFBVEEsOEJBQVM7O0lBbEwvQ0MsZUFBZTtlQUFmQTs7SUFzQlBDLHFCQUFxQjtlQUFyQkEsa0NBQXFCOzs7d0NBcEhZO3VCQUNaO3lCQU92QjsrREFDMEM7cUNBTVI7NkJBQ0s7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2QyxNQUFNSCxjQUFjO0FBRTNCLFNBQVNJLGtCQUFrQkMsU0FBeUI7SUFDbEQsTUFBTUMsU0FBU0QsVUFBVUMsTUFBTTtJQUMvQixJQUFJQSxPQUFPQyxJQUFJLEtBQUssUUFBUTtRQUMxQixPQUFPO0lBQ1Q7SUFDQSxNQUFNQyxhQUFhRixPQUFPRyxPQUFPO0lBQ2pDLElBQUksQ0FBQ0QsV0FBV0UsWUFBWSxJQUFJO1FBQzlCLE9BQU87SUFDVDtJQUNBLE1BQU1DLGVBQWVMLE9BQU9NLE1BQU07SUFDbEMsT0FBT0osV0FBV0ssY0FBYyxHQUFHQyxLQUFLLENBQUMsR0FBR0g7QUFDOUM7QUFFQSxTQUFTSSxtQkFBbUJDLFVBQWtCLEVBQUVDLEtBQVksRUFBRUMsWUFBb0I7SUFDaEYsTUFBTUMsZUFBZUQsYUFBYUUsWUFBWTtJQUM5QyxJQUFJRCxpQkFBaUIsUUFB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
@@ -54,4 +54,4 @@ class SlashMenuGroup {
54
54
  options;
55
55
  }
56
56
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgaTE4biB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNsYXNzIFNsYXNoTWVudU9wdGlvbiB7XG4gIC8vIEljb24gZm9yIGRpc3BsYXlcbiAgSWNvbjogKCkgPT4gUHJvbWlzZTxSZWFjdC5GQz5cblxuICBkaXNwbGF5TmFtZT86ICgoeyBpMThuIH06IHsgaTE4bjogaTE4biB9KSA9PiBzdHJpbmcpIHwgc3RyaW5nXG4gIC8vIFVzZWQgZm9yIGNsYXNzIG5hbWVzIGFuZCwgaWYgZGlzcGxheU5hbWUgaXMgbm90IHByb3ZpZGVkLCBmb3IgZGlzcGxheS5cbiAga2V5OiBzdHJpbmdcbiAgLy8gVEJEXG4gIGtleWJvYXJkU2hvcnRjdXQ/OiBzdHJpbmdcbiAgLy8gRm9yIGV4dHJhIHNlYXJjaGluZy5cbiAga2V5d29yZHM6IEFycmF5PHN0cmluZz5cbiAgLy8gV2hhdCBoYXBwZW5zIHdoZW4geW91IHNlbGVjdCB0aGlzIG9wdGlvbj9cbiAgb25TZWxlY3Q6ICh7IGVkaXRvciwgcXVlcnlTdHJpbmcgfTogeyBlZGl0b3I6IExleGljYWxFZGl0b3I7IHF1ZXJ5U3RyaW5nOiBzdHJpbmcgfSkgPT4gdm9pZFxuXG4gIHJlZj86IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIEljb246ICgpID0+IFByb21pc2U8UmVhY3QuRkM+XG4gICAgICBkaXNwbGF5TmFtZT86ICgoeyBpMThuIH06IHsgaTE4bjogaTE4biB9KSA9PiBzdHJpbmcpIHwgc3RyaW5nXG4gICAgICBrZXlib2FyZFNob3J0Y3V0Pzogc3RyaW5nXG4gICAgICBrZXl3b3Jkcz86IEFycmF5PHN0cmluZz5cbiAgICAgIG9uU2VsZWN0OiAoeyBlZGl0b3IsIHF1ZXJ5U3RyaW5nIH06IHsgZWRpdG9yOiBMZXhpY2FsRWRpdG9yOyBxdWVyeVN0cmluZzogc3RyaW5nIH0pID0+IHZvaWRcbiAgICB9LFxuICApIHtcbiAgICB0aGlzLmtleSA9IGtleVxuICAgIHRoaXMucmVmID0geyBjdXJyZW50OiBudWxsIH1cbiAgICB0aGlzLnNldFJlZkVsZW1lbnQgPSB0aGlzLnNldFJlZkVsZW1lbnQuYmluZCh0aGlzKVxuXG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IG9wdGlvbnMuZGlzcGxheU5hbWVcbiAgICB0aGlzLmtleXdvcmRzID0gb3B0aW9ucy5rZXl3b3JkcyB8fCBbXVxuICAgIHRoaXMuSWNvbiA9IG9wdGlvbnMuSWNvblxuICAgIHRoaXMua2V5Ym9hcmRTaG9ydGN1dCA9IG9wdGlvbnMua2V5Ym9hcmRTaG9ydGN1dFxuICAgIHRoaXMub25TZWxlY3QgPSBvcHRpb25zLm9uU2VsZWN0LmJpbmQodGhpcylcbiAgfVxuXG4gIHNldFJlZkVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgdGhpcy5yZWYgPSB7IGN1cnJlbnQ6IGVsZW1lbnQgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTbGFzaE1lbnVHcm91cCB7XG4gIC8vIFVzZWQgZm9yIGNsYXNzIG5hbWVzIGFuZCwgaWYgZGlzcGxheU5hbWUgaXMgbm90IHByb3ZpZGVkLCBmb3IgZGlzcGxheS5cbiAgZGlzcGxheU5hbWU/OiAoKHsgaTE4biB9OiB7IGkxOG46IGkxOG4gfSkgPT4gc3RyaW5nKSB8IHN0cmluZ1xuICBrZXk6IHN0cmluZ1xuICBvcHRpb25zOiBBcnJheTxTbGFzaE1lbnVPcHRpb24+XG59XG4iXSwibmFtZXMiOlsiU2xhc2hNZW51R3JvdXAiLCJTbGFzaE1lbnVPcHRpb24iLCJJY29uIiwiZGlzcGxheU5hbWUiLCJrZXkiLCJrZXlib2FyZFNob3J0Y3V0Iiwia2V5d29yZHMiLCJvblNlbGVjdCIsInJlZiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImN1cnJlbnQiLCJzZXRSZWZFbGVtZW50IiwiYmluZCIsImVsZW1lbnQiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQStDYUEsY0FBYztlQUFkQTs7SUExQ0FDLGVBQWU7ZUFBZkE7OztBQUFOLE1BQU1BO0lBQ1gsbUJBQW1CO0lBQ25CQyxLQUE2QjtJQUU3QkMsWUFBNkQ7SUFDN0QseUVBQXlFO0lBQ3pFQyxJQUFXO0lBQ1gsTUFBTTtJQUNOQyxpQkFBeUI7SUFDekIsdUJBQXVCO0lBQ3ZCQyxTQUF1QjtJQUN2Qiw0Q0FBNEM7SUFDNUNDLFNBQTJGO0lBRTNGQyxJQUEwQztJQUUxQ0MsWUFDRUwsR0FBVyxFQUNYTSxPQU1DLENBQ0Q7UUFDQSxJQUFJLENBQUNOLEdBQUcsR0FBR0E7UUFDWCxJQUFJLENBQUNJLEdBQUcsR0FBRztZQUFFRyxTQUFTO1FBQUs7UUFDM0IsSUFBSSxDQUFDQyxhQUFhLEdBQUcsSUFBSSxDQUFDQSxhQUFhLENBQUNDLElBQUksQ0FBQyxJQUFJO1FBRWpELElBQUksQ0FBQ1YsV0FBVyxHQUFHTyxRQUFRUCxXQUFXO1FBQ3RDLElBQUksQ0FBQ0csUUFBUSxHQUFHSSxRQUFRSixRQUFRLElBQUksRUFBRTtRQUN0QyxJQUFJLENBQUNKLElBQUksR0FBR1EsUUFBUVIsSUFBSTtRQUN4QixJQUFJLENBQUNHLGdCQUFnQixHQUFHSyxRQUFRTCxnQkFBZ0I7UUFDaEQsSUFBSSxDQUFDRSxRQUFRLEdBQUdHLFFBQVFILFFBQVEsQ0FBQ00sSUFBSSxDQUFDLElBQUk7SUFDNUM7SUFFQUQsY0FBY0UsT0FBMkIsRUFBRTtRQUN6QyxJQUFJLENBQUNOLEdBQUcsR0FBRztZQUFFRyxTQUFTRztRQUFRO0lBQ2hDO0FBQ0Y7QUFFTyxNQUFNZDtJQUNYLHlFQUF5RTtJQUN6RUcsWUFBNkQ7SUFDN0RDLElBQVc7SUFDWE0sUUFBK0I7QUFDakMifQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgaTE4biB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNsYXNzIFNsYXNoTWVudU9wdGlvbiB7XG4gIC8vIEljb24gZm9yIGRpc3BsYXlcbiAgSWNvbjogKCkgPT4gUHJvbWlzZTxSZWFjdC5GQz5cblxuICBkaXNwbGF5TmFtZT86ICgoeyBpMThuIH06IHsgaTE4bjogaTE4biB9KSA9PiBzdHJpbmcpIHwgc3RyaW5nXG4gIC8vIFVzZWQgZm9yIGNsYXNzIG5hbWVzIGFuZCwgaWYgZGlzcGxheU5hbWUgaXMgbm90IHByb3ZpZGVkLCBmb3IgZGlzcGxheS5cbiAga2V5OiBzdHJpbmdcbiAgLy8gVEJEXG4gIGtleWJvYXJkU2hvcnRjdXQ/OiBzdHJpbmdcbiAgLy8gRm9yIGV4dHJhIHNlYXJjaGluZy5cbiAga2V5d29yZHM6IEFycmF5PHN0cmluZz5cbiAgLy8gV2hhdCBoYXBwZW5zIHdoZW4geW91IHNlbGVjdCB0aGlzIG9wdGlvbj9cbiAgb25TZWxlY3Q6ICh7IGVkaXRvciwgcXVlcnlTdHJpbmcgfTogeyBlZGl0b3I6IExleGljYWxFZGl0b3I7IHF1ZXJ5U3RyaW5nOiBzdHJpbmcgfSkgPT4gdm9pZFxuXG4gIHJlZj86IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIEljb246ICgpID0+IFByb21pc2U8UmVhY3QuRkM+XG4gICAgICBkaXNwbGF5TmFtZT86ICgoeyBpMThuIH06IHsgaTE4bjogaTE4biB9KSA9PiBzdHJpbmcpIHwgc3RyaW5nXG4gICAgICBrZXlib2FyZFNob3J0Y3V0Pzogc3RyaW5nXG4gICAgICBrZXl3b3Jkcz86IEFycmF5PHN0cmluZz5cbiAgICAgIG9uU2VsZWN0OiAoeyBlZGl0b3IsIHF1ZXJ5U3RyaW5nIH06IHsgZWRpdG9yOiBMZXhpY2FsRWRpdG9yOyBxdWVyeVN0cmluZzogc3RyaW5nIH0pID0+IHZvaWRcbiAgICB9LFxuICApIHtcbiAgICB0aGlzLmtleSA9IGtleVxuICAgIHRoaXMucmVmID0geyBjdXJyZW50OiBudWxsIH1cbiAgICB0aGlzLnNldFJlZkVsZW1lbnQgPSB0aGlzLnNldFJlZkVsZW1lbnQuYmluZCh0aGlzKVxuXG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IG9wdGlvbnMuZGlzcGxheU5hbWVcbiAgICB0aGlzLmtleXdvcmRzID0gb3B0aW9ucy5rZXl3b3JkcyB8fCBbXVxuICAgIHRoaXMuSWNvbiA9IG9wdGlvbnMuSWNvblxuICAgIHRoaXMua2V5Ym9hcmRTaG9ydGN1dCA9IG9wdGlvbnMua2V5Ym9hcmRTaG9ydGN1dFxuICAgIHRoaXMub25TZWxlY3QgPSBvcHRpb25zLm9uU2VsZWN0LmJpbmQodGhpcylcbiAgfVxuXG4gIHNldFJlZkVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgdGhpcy5yZWYgPSB7IGN1cnJlbnQ6IGVsZW1lbnQgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTbGFzaE1lbnVHcm91cCB7XG4gIC8vIFVzZWQgZm9yIGNsYXNzIG5hbWVzIGFuZCwgaWYgZGlzcGxheU5hbWUgaXMgbm90IHByb3ZpZGVkLCBmb3IgZGlzcGxheS5cbiAgZGlzcGxheU5hbWU/OiAoKHsgaTE4biB9OiB7IGkxOG46IGkxOG4gfSkgPT4gc3RyaW5nKSB8IHN0cmluZ1xuICBrZXk6IHN0cmluZ1xuICBvcHRpb25zOiBBcnJheTxTbGFzaE1lbnVPcHRpb24+XG59XG4iXSwibmFtZXMiOlsiU2xhc2hNZW51R3JvdXAiLCJTbGFzaE1lbnVPcHRpb24iLCJJY29uIiwiZGlzcGxheU5hbWUiLCJrZXkiLCJrZXlib2FyZFNob3J0Y3V0Iiwia2V5d29yZHMiLCJvblNlbGVjdCIsInJlZiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImN1cnJlbnQiLCJzZXRSZWZFbGVtZW50IiwiYmluZCIsImVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBK0NhQSxjQUFjO2VBQWRBOztJQTFDQUMsZUFBZTtlQUFmQTs7O0FBQU4sTUFBTUE7SUFDWCxtQkFBbUI7SUFDbkJDLEtBQTZCO0lBRTdCQyxZQUE2RDtJQUM3RCx5RUFBeUU7SUFDekVDLElBQVc7SUFDWCxNQUFNO0lBQ05DLGlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkJDLFNBQXVCO0lBQ3ZCLDRDQUE0QztJQUM1Q0MsU0FBMkY7SUFFM0ZDLElBQTBDO0lBRTFDQyxZQUNFTCxHQUFXLEVBQ1hNLE9BTUMsQ0FDRDtRQUNBLElBQUksQ0FBQ04sR0FBRyxHQUFHQTtRQUNYLElBQUksQ0FBQ0ksR0FBRyxHQUFHO1lBQUVHLFNBQVM7UUFBSztRQUMzQixJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNBLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDLElBQUk7UUFFakQsSUFBSSxDQUFDVixXQUFXLEdBQUdPLFFBQVFQLFdBQVc7UUFDdEMsSUFBSSxDQUFDRyxRQUFRLEdBQUdJLFFBQVFKLFFBQVEsSUFBSSxFQUFFO1FBQ3RDLElBQUksQ0FBQ0osSUFBSSxHQUFHUSxRQUFRUixJQUFJO1FBQ3hCLElBQUksQ0FBQ0csZ0JBQWdCLEdBQUdLLFFBQVFMLGdCQUFnQjtRQUNoRCxJQUFJLENBQUNFLFFBQVEsR0FBR0csUUFBUUgsUUFBUSxDQUFDTSxJQUFJLENBQUMsSUFBSTtJQUM1QztJQUVBRCxjQUFjRSxPQUEyQixFQUFFO1FBQ3pDLElBQUksQ0FBQ04sR0FBRyxHQUFHO1lBQUVHLFNBQVNHO1FBQVE7SUFDaEM7QUFDRjtBQUVPLE1BQU1kO0lBQ1gseUVBQXlFO0lBQ3pFRyxZQUE2RDtJQUM3REMsSUFBVztJQUNYTSxRQUErQjtBQUNqQyJ9
@@ -225,4 +225,4 @@ function SlashMenuPlugin({ anchorElem = document.body }) {
225
225
  }));
226
226
  }
227
227
 
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAsIFNsYXNoTWVudU9wdGlvbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCB7IHVzZU1lbnVUcmlnZ2VyTWF0Y2ggfSBmcm9tICcuL3VzZU1lbnVUcmlnZ2VyTWF0Y2gnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdzbGFzaC1tZW51LXBvcHVwJ1xuXG5mdW5jdGlvbiBTbGFzaE1lbnVJdGVtKHtcbiAgaXNTZWxlY3RlZCxcbiAgb25DbGljayxcbiAgb25Nb3VzZUVudGVyLFxuICBvcHRpb24sXG59OiB7XG4gIGluZGV4OiBudW1iZXJcbiAgaXNTZWxlY3RlZDogYm9vbGVhblxuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIG9uTW91c2VFbnRlcjogKCkgPT4gdm9pZFxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufSkge1xuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICBjb25zdCBMYXp5SWNvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBvcHRpb24/Lkljb25cbiAgICAgID8gUmVhY3QubGF6eSgoKSA9PlxuICAgICAgICAgIG9wdGlvbi5JY29uKCkudGhlbigocmVzb2x2ZWRJY29uKSA9PiAoe1xuICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRJY29uLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtvcHRpb25dKVxuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1zZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaWQ9e2Jhc2VDbGFzcyArICdfX2l0ZW0tJyArIG9wdGlvbi5rZXl9XG4gICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJ9XG4gICAgICByZWY9e29wdGlvbi5zZXRSZWZFbGVtZW50fVxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7TGF6eUljb24gJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPExhenlJY29uIC8+XG4gICAgICAgIDwvUmVhY3QuU3VzcGVuc2U+XG4gICAgICApfVxuXG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2l0ZW0tdGV4dGB9Pnt0aXRsZX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNsYXNoTWVudVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtxdWVyeVN0cmluZywgc2V0UXVlcnlTdHJpbmddID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcbiAgY29uc3QgeyBlZGl0b3JDb25maWcgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlNsYXNoTWVudVBsdWdpbiIsImJhc2VDbGFzcyIsIlNsYXNoTWVudUl0ZW0iLCJpc1NlbGVjdGVkIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9wdGlvbiIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImNsYXNzTmFtZSIsImtleSIsInRpdGxlIiwiZGlzcGxheU5hbWUiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJMYXp5SWNvbiIsInVzZU1lbW8iLCJJY29uIiwiUmVhY3QiLCJsYXp5IiwidGhlbiIsInJlc29sdmVkSWNvbiIsImRlZmF1bHQiLCJidXR0b24iLCJhcmlhLXNlbGVjdGVkIiwiaWQiLCJyZWYiLCJzZXRSZWZFbGVtZW50Iiwicm9sZSIsInRhYkluZGV4IiwidHlwZSIsIlN1c3BlbnNlIiwic3BhbiIsImFuY2hvckVsZW0iLCJkb2N1bWVudCIsImJvZHkiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsInVzZVN0YXRlIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwidXNlTWVudVRyaWdnZXJNYXRjaCIsIm1pbkxlbmd0aCIsImdldER5bmFtaWNPcHRpb25zIiwidXNlQ2FsbGJhY2siLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsIm1lbnVSZW5kZXJGbiIsImFuY2hvckVsZW1lbnRSZWYiLCJzZWxlY3RPcHRpb25BbmRDbGVhblVwIiwic2VsZWN0ZWRPcHRpb25LZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleSIsImN1cnJlbnQiLCJSZWFjdERPTSIsImNyZWF0ZVBvcnRhbCIsImRpdiIsImdyb3VwVGl0bGUiLCJvaSIsImluZGV4Iiwib25RdWVyeUNoYW5nZSIsInRyaWdnZXJGbiJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFpRmdCQTs7O2VBQUFBOzs7d0NBOUUwQjsrREFDSztrRUFFckI7OEJBQ0s7c0NBSVE7NENBQ0k7UUFDcEM7cUNBQzZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEMsTUFBTUMsWUFBWTtBQUVsQixTQUFTQyxjQUFjLEVBQ3JCQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsWUFBWSxFQUNaQyxNQUFNLEVBT1A7SUFDQyxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxJQUFBQSw0QkFBYyxFQUFDO0lBRWhDLElBQUlDLFlBQVksQ0FBQyxFQUFFUixVQUFVLE9BQU8sRUFBRUEsVUFBVSxPQUFPLEVBQUVLLE9BQU9JLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLElBQUlQLFlBQVk7UUFDZE0sYUFBYSxDQUFDLENBQUMsRUFBRVIsVUFBVSxnQkFBZ0IsQ0FBQztJQUM5QztJQUVBLElBQUlVLFFBQVFMLE9BQU9JLEdBQUc7SUFDdEIsSUFBSUosT0FBT00sV0FBVyxFQUFFO1FBQ3RCRCxRQUNFLE9BQU9MLE9BQU9NLFdB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
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgVGV4dE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAsIFNsYXNoTWVudU9wdGlvbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiB9IGZyb20gJy4vTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCB7IHVzZU1lbnVUcmlnZ2VyTWF0Y2ggfSBmcm9tICcuL3VzZU1lbnVUcmlnZ2VyTWF0Y2gnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdzbGFzaC1tZW51LXBvcHVwJ1xuXG5mdW5jdGlvbiBTbGFzaE1lbnVJdGVtKHtcbiAgaXNTZWxlY3RlZCxcbiAgb25DbGljayxcbiAgb25Nb3VzZUVudGVyLFxuICBvcHRpb24sXG59OiB7XG4gIGluZGV4OiBudW1iZXJcbiAgaXNTZWxlY3RlZDogYm9vbGVhblxuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIG9uTW91c2VFbnRlcjogKCkgPT4gdm9pZFxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufSkge1xuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGxldCBjbGFzc05hbWUgPSBgJHtiYXNlQ2xhc3N9X19pdGVtICR7YmFzZUNsYXNzfV9faXRlbS0ke29wdGlvbi5rZXl9YFxuICBpZiAoaXNTZWxlY3RlZCkge1xuICAgIGNsYXNzTmFtZSArPSBgICR7YmFzZUNsYXNzfV9faXRlbS0tc2VsZWN0ZWRgXG4gIH1cblxuICBsZXQgdGl0bGUgPSBvcHRpb24ua2V5XG4gIGlmIChvcHRpb24uZGlzcGxheU5hbWUpIHtcbiAgICB0aXRsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9uLmRpc3BsYXlOYW1lID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmRpc3BsYXlOYW1lKHsgaTE4biB9KSA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICB9XG4gIC8vIENyb3AgdGl0bGUgdG8gbWF4LiA1MCBjaGFyYWN0ZXJzXG4gIGlmICh0aXRsZS5sZW5ndGggPiAyNSkge1xuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDI1KSArICcuLi4nXG4gIH1cblxuICBjb25zdCBMYXp5SWNvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBvcHRpb24/Lkljb25cbiAgICAgID8gUmVhY3QubGF6eSgoKSA9PlxuICAgICAgICAgIG9wdGlvbi5JY29uKCkudGhlbigocmVzb2x2ZWRJY29uKSA9PiAoe1xuICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRJY29uLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtvcHRpb25dKVxuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1zZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaWQ9e2Jhc2VDbGFzcyArICdfX2l0ZW0tJyArIG9wdGlvbi5rZXl9XG4gICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgb25Nb3VzZUVudGVyPXtvbk1vdXNlRW50ZXJ9XG4gICAgICByZWY9e29wdGlvbi5zZXRSZWZFbGVtZW50fVxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7TGF6eUljb24gJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPExhenlJY29uIC8+XG4gICAgICAgIDwvUmVhY3QuU3VzcGVuc2U+XG4gICAgICApfVxuXG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2l0ZW0tdGV4dGB9Pnt0aXRsZX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNsYXNoTWVudVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtxdWVyeVN0cmluZywgc2V0UXVlcnlTdHJpbmddID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcbiAgY29uc3QgeyBlZGl0b3JDb25maWcgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKCdmaWVsZHMnKVxuXG4gIGNvbnN0IGNoZWNrRm9yVHJpZ2dlck1hdGNoID0gdXNlTWVudVRyaWdnZXJNYXRjaCgnLycsIHtcbiAgICBtaW5MZW5ndGg6IDAsXG4gIH0pXG5cbiAgY29uc3QgZ2V0RHluYW1pY09wdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbGV0IGdyb3VwV2l0aE9wdGlvbnM6IEFycmF5PFNsYXNoTWVudUdyb3VwPiA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGR5bmFtaWNPcHRpb24gb2YgZWRpdG9yQ29uZmlnLmZlYXR1cmVzLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucykge1xuICAgICAgY29uc3QgZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMgPSBkeW5hbWljT3B0aW9uKHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgIH0pXG4gICAgICBncm91cFdpdGhPcHRpb25zID0gZ3JvdXBXaXRoT3B0aW9ucy5jb25jYXQoZHluYW1pY0dyb3VwV2l0aE9wdGlvbnMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwV2l0aE9wdGlvbnNcbiAgfSwgW2VkaXRvciwgcXVlcnlTdHJpbmcsIGVkaXRvckNvbmZpZz8uZmVhdHVyZXNdKVxuXG4gIGNvbnN0IGdyb3VwczogU2xhc2hNZW51R3JvdXBbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBncm91cHNXaXRoT3B0aW9uczogU2xhc2hNZW51R3JvdXBbXSA9IFtdXG4gICAgZm9yIChjb25zdCBncm91cFdpdGhPcHRpb24gb2YgZWRpdG9yQ29uZmlnPy5mZWF0dXJlcy5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMgPz8gW10pIHtcbiAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXBXaXRoT3B0aW9uKVxuICAgIH1cblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgLy8gRmlsdGVyIGN1cnJlbnQgZ3JvdXBzIGZpcnN0XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gZ3JvdXAub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGxldCBvcHRpb25UaXRsZSA9IG9wdGlvbi5rZXlcbiAgICAgICAgICBpZiAob3B0aW9uLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgICBvcHRpb25UaXRsZSA9XG4gICAgICAgICAgICAgIHR5cGVvZiBvcHRpb24uZGlzcGxheU5hbWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IG9wdGlvbi5kaXNwbGF5TmFtZSh7IGkxOG4gfSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbi5kaXNwbGF5TmFtZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHF1ZXJ5U3RyaW5nLCAnZ2knKS5leGVjKG9wdGlvblRpdGxlKSB8fCBvcHRpb24ua2V5d29yZHMgIT0gbnVsbFxuICAgICAgICAgICAgPyBvcHRpb24ua2V5d29yZHMuc29tZSgoa2V5d29yZCkgPT4gbmV3IFJlZ0V4cChxdWVyeVN0cmluZywgJ2dpJykuZXhlYyhrZXl3b3JkKSlcbiAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuXG4gICAgICBncm91cHNXaXRoT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwICE9IG51bGwpXG5cbiAgICAgIC8vIE5vdyBhZGQgZHluYW1pYyBncm91cHNcbiAgICAgIGNvbnN0IGR5bmFtaWNPcHRpb25Hcm91cHMgPSBnZXREeW5hbWljT3B0aW9ucygpXG5cbiAgICAgIC8vIG1lcmdlIGR5bmFtaWMgb3B0aW9ucyBpbnRvIGdyb3Vwc1xuICAgICAgZm9yIChjb25zdCBkeW5hbWljR3JvdXAgb2YgZHluYW1pY09wdGlvbkdyb3Vwcykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBncm91cCB3aXRoIHRoZSBzYW1lIG5hbWUgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmluZCgoZ3JvdXApID0+IGdyb3VwLmtleSA9PT0gZHluYW1pY0dyb3VwLmtleSlcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4uZHluYW1pY0dyb3VwLFxuICAgICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAua2V5ICE9PSBkeW5hbWljR3JvdXAua2V5KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKGdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQoZ3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBncm91cHNXaXRoT3B0aW9ucy5wdXNoKGdyb3VwKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHNXaXRoT3B0aW9uc1xuICB9LCBbZ2V0RHluYW1pY09wdGlvbnMsIHF1ZXJ5U3RyaW5nLCBlZGl0b3JDb25maWc/LmZlYXR1cmVzLCBpMThuXSlcblxuICBjb25zdCBvblNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgICBub2RlVG9SZW1vdmU6IFRleHROb2RlIHwgbnVsbCxcbiAgICAgIGNsb3NlTWVudTogKCkgPT4gdm9pZCxcbiAgICAgIG1hdGNoaW5nU3RyaW5nOiBzdHJpbmcsXG4gICAgKSA9PiB7XG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgaWYgKG5vZGVUb1JlbW92ZSkge1xuICAgICAgICAgIG5vZGVUb1JlbW92ZS5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uLm9uU2VsZWN0KHsgZWRpdG9yLCBxdWVyeVN0cmluZzogbWF0Y2hpbmdTdHJpbmcgfSlcbiAgICAgICAgY2xvc2VNZW51KClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPExleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luXG4gICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zPXtncm91cHN9XG4gICAgICAgIG1lbnVSZW5kZXJGbj17KFxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYsXG4gICAgICAgICAgeyBzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgc2V0U2VsZWN0ZWRPcHRpb25LZXkgfSxcbiAgICAgICAgKSA9PlxuICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCAmJiBncm91cHMubGVuZ3RoXG4gICAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgICAgICAgICAgICAgIHtncm91cHMubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBUaXRsZSA9IGdyb3VwLmtleVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBncm91cFRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBncm91cC5kaXNwbGF5TmFtZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRpc3BsYXlOYW1lKHsgaTE4biB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRpc3BsYXlOYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXAgJHtiYXNlQ2xhc3N9X19ncm91cC0ke2dyb3VwLmtleX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtncm91cC5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwLXRpdGxlYH0+e2dyb3VwVGl0bGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbiwgb2k6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2xhc2hNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtvaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZE9wdGlvbktleSA9PT0gb3B0aW9uLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXkob3B0aW9uLmtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPXtvcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIH1cbiAgICAgICAgb25RdWVyeUNoYW5nZT17c2V0UXVlcnlTdHJpbmd9XG4gICAgICAgIG9uU2VsZWN0T3B0aW9uPXtvblNlbGVjdE9wdGlvbn1cbiAgICAgICAgdHJpZ2dlckZuPXtjaGVja0ZvclRyaWdnZXJNYXRjaH1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlNsYXNoTWVudVBsdWdpbiIsImJhc2VDbGFzcyIsIlNsYXNoTWVudUl0ZW0iLCJpc1NlbGVjdGVkIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9wdGlvbiIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImNsYXNzTmFtZSIsImtleSIsInRpdGxlIiwiZGlzcGxheU5hbWUiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJMYXp5SWNvbiIsInVzZU1lbW8iLCJJY29uIiwiUmVhY3QiLCJsYXp5IiwidGhlbiIsInJlc29sdmVkSWNvbiIsImRlZmF1bHQiLCJidXR0b24iLCJhcmlhLXNlbGVjdGVkIiwiaWQiLCJyZWYiLCJzZXRSZWZFbGVtZW50Iiwicm9sZSIsInRhYkluZGV4IiwidHlwZSIsIlN1c3BlbnNlIiwic3BhbiIsImFuY2hvckVsZW0iLCJkb2N1bWVudCIsImJvZHkiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwicXVlcnlTdHJpbmciLCJzZXRRdWVyeVN0cmluZyIsInVzZVN0YXRlIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNoZWNrRm9yVHJpZ2dlck1hdGNoIiwidXNlTWVudVRyaWdnZXJNYXRjaCIsIm1pbkxlbmd0aCIsImdldER5bmFtaWNPcHRpb25zIiwidXNlQ2FsbGJhY2siLCJncm91cFdpdGhPcHRpb25zIiwiZHluYW1pY09wdGlvbiIsImZlYXR1cmVzIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJkeW5hbWljR3JvdXBXaXRoT3B0aW9ucyIsImNvbmNhdCIsImdyb3VwcyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZ3JvdXBXaXRoT3B0aW9uIiwicHVzaCIsIm1hcCIsImdyb3VwIiwiZmlsdGVyZWRPcHRpb25zIiwib3B0aW9ucyIsImZpbHRlciIsIm9wdGlvblRpdGxlIiwiUmVnRXhwIiwiZXhlYyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJkeW5hbWljT3B0aW9uR3JvdXBzIiwiZHluYW1pY0dyb3VwIiwiZmluZCIsIm9uU2VsZWN0T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iLCJub2RlVG9SZW1vdmUiLCJjbG9zZU1lbnUiLCJtYXRjaGluZ1N0cmluZyIsInVwZGF0ZSIsInJlbW92ZSIsIm9uU2VsZWN0IiwiRnJhZ21lbnQiLCJMZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbiIsIm1lbnVSZW5kZXJGbiIsImFuY2hvckVsZW1lbnRSZWYiLCJzZWxlY3RPcHRpb25BbmRDbGVhblVwIiwic2VsZWN0ZWRPcHRpb25LZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleSIsImN1cnJlbnQiLCJSZWFjdERPTSIsImNyZWF0ZVBvcnRhbCIsImRpdiIsImdyb3VwVGl0bGUiLCJvaSIsImluZGV4Iiwib25RdWVyeUNoYW5nZSIsInRyaWdnZXJGbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQWlGZ0JBOzs7ZUFBQUE7Ozt3Q0E5RTBCOytEQUNLO2tFQUVyQjs4QkFDSztzQ0FJUTs0Q0FDSTtRQUNwQztxQ0FDNkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwQyxNQUFNQyxZQUFZO0FBRWxCLFNBQVNDLGNBQWMsRUFDckJDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLE1BQU0sRUFPUDtJQUNDLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7SUFFaEMsSUFBSUMsWUFBWSxDQUFDLEVBQUVSLFVBQVUsT0FBTyxFQUFFQSxVQUFVLE9BQU8sRUFBRUssT0FBT0ksR0FBRyxDQUFDLENBQUM7SUFDckUsSUFBSVAsWUFBWTtRQUNkTSxhQUFhLENBQUMsQ0FBQyxFQUFFUixVQUFVLGdCQUFnQixDQUFDO0lBQzlDO0lBRUEsSUFBSVUsUUFBUUwsT0FBT0ksR0FBRztJQUN0QixJQUFJSixPQUFPTSxXQUFXLEVBQUU7UUFDdEJELFFBQ0UsT0FBT0wsT0FBT00sV0FBVyxLQUFLLGFBQWFOLE9BQU9NLFdBQVcsQ0FBQztZQUFFTDtRQUFLLEtBQUtELE9BQU9NLFdBQVc7SUFDaEc7SUFDQSxtQ0FBbUM7SUFDbkMsSUFBSUQsTUFBTUUsTUFBTSxHQUFHLElBQUk7UUFDckJGLFFBQVFBLE1BQU1HLFNBQVMsQ0FBQyxHQUFHLE1BQU07SUFDbkM7SUFFQSxNQUFNQyxXQUFXQyxJQUFBQSxjQUFPLEVBQUM7UUFDdkIsT0FBT1YsUUFBUVcscUJBQ1hDLE9BQU1DLElBQUksQ0FBQyxJQUNUYixPQUFPVyxJQUFJLEdBQUdHLElBQUksQ0FBQyxDQUFDQyxlQUFrQixDQUFBO29CQUNwQ0MsU0FBU0Q7Z0JBQ1gsQ0FBQSxNQUVGO0lBQ04sR0FBRztRQUFDZjtLQUFPO0lBRVgscUJBQ0UscUJBQUNpQjtRQUNDQyxpQkFBZXJCO1FBQ2ZNLFdBQVdBO1FBQ1hnQixJQUFJeEIsWUFBWSxZQUFZSyxPQUFPSSxHQUFHO1FBQ3RDQSxLQUFLSixPQUFPSSxHQUFHO1FBQ2ZOLFNBQVNBO1FBQ1RDLGNBQWNBO1FBQ2RxQixLQUFLcEIsT0FBT3FCLGFBQWE7UUFDekJDLE1BQUs7UUFDTEMsVUFBVSxDQUFDO1FBQ1hDLE1BQUs7T0FFSmYsMEJBQ0MscUJBQUNHLE9BQU1hLFFBQVEsc0JBQ2IscUJBQUNoQixnQ0FJTCxxQkFBQ2lCO1FBQUt2QixXQUFXLENBQUMsRUFBRVIsVUFBVSxXQUFXLENBQUM7T0FBR1U7QUFHbkQ7QUFFTyxTQUFTWCxnQkFBZ0IsRUFDOUJpQyxhQUFhQyxTQUFTQyxJQUFJLEVBRzNCO0lBQ0MsTUFBTSxDQUFDQyxPQUFPLEdBQUdDLElBQUFBLGlEQUF5QjtJQUMxQyxNQUFNLENBQUNDLGFBQWFDLGVBQWUsR0FBR0MsSUFBQUEsZUFBUSxFQUFnQjtJQUM5RCxNQUFNLEVBQUVDLFlBQVksRUFBRSxHQUFHQyxJQUFBQSw0Q0FBc0I7SUFDL0MsTUFBTSxFQUFFbkMsSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7SUFFaEMsTUFBTW1DLHVCQUF1QkMsSUFBQUEsd0NBQW1CLEVBQUMsS0FBSztRQUNwREMsV0FBVztJQUNiO0lBRUEsTUFBTUMsb0JBQW9CQyxJQUFBQSxrQkFBVyxFQUFDO1FBQ3BDLElBQUlDLG1CQUEwQyxFQUFFO1FBRWhELEtBQUssTUFBTUMsaUJBQWlCUixhQUFhUyxRQUFRLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFFO1lBQzFFLE1BQU1DLDBCQUEwQkosY0FBYztnQkFDNUNiO2dCQUNBRTtZQUNGO1lBQ0FVLG1CQUFtQkEsaUJBQWlCTSxNQUFNLENBQUNEO1FBQzdDO1FBRUEsT0FBT0w7SUFDVCxHQUFHO1FBQUNaO1FBQVFFO1FBQWFHLGNBQWNTO0tBQVM7SUFFaEQsTUFBTUssU0FBMkJ2QyxJQUFBQSxjQUFPLEVBQUM7UUFDdkMsSUFBSXdDLG9CQUFzQyxFQUFFO1FBQzVDLEtBQUssTUFBTUMsbUJBQW1CaEIsY0FBY1MsU0FBU0MsVUFBVUsscUJBQXFCLEVBQUUsQ0FBRTtZQUN0RkEsa0JBQWtCRSxJQUFJLENBQUNEO1FBQ3pCO1FBRUEsSUFBSW5CLGFBQWE7WUFDZiw4QkFBOEI7WUFDOUJrQixvQkFBb0JBLGtCQUFrQkcsR0FBRyxDQUFDLENBQUNDO2dCQUN6QyxNQUFNQyxrQkFBa0JELE1BQU1FLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDLENBQUN6RDtvQkFDNUMsSUFBSTBELGNBQWMxRCxPQUFPSSxHQUFHO29CQUM1QixJQUFJSixPQUFPTSxXQUFXLEVBQUU7d0JBQ3RCb0QsY0FDRSxPQUFPMUQsT0FBT00sV0FBVyxLQUFLLGFBQzFCTixPQUFPTSxXQUFXLENBQUM7NEJBQUVMO3dCQUFLLEtBQzFCRCxPQUFPTSxXQUFXO29CQUMxQjtvQkFFQSxPQUFPLElBQUlxRCxPQUFPM0IsYUFBYSxNQUFNNEIsSUFBSSxDQUFDRixnQkFBZ0IxRCxPQUFPNkQsUUFBUSxJQUFJLE9BQ3pFN0QsT0FBTzZELFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLFVBQVksSUFBSUosT0FBTzNCLGFBQWEsTUFBTTRCLElBQUksQ0FBQ0csWUFDckU7Z0JBQ047Z0JBQ0EsSUFBSVIsZ0JBQWdCaEQsTUFBTSxFQUFFO29CQUMxQixPQUFPO3dCQUNMLEdBQUcrQyxLQUFLO3dCQUNSRSxTQUFTRDtvQkFDWDtnQkFDRjtnQkFDQSxPQUFPO1lBQ1Q7WUFFQUwsb0JBQW9CQSxrQkFBa0JPLE1BQU0sQ0FBQyxDQUFDSCxRQUFVQSxTQUFTO1lBRWpFLHlCQUF5QjtZQUN6QixNQUFNVSxzQkFBc0J4QjtZQUU1QixvQ0FBb0M7WUFDcEMsS0FBSyxNQUFNeUIsZ0JBQWdCRCxvQkFBcUI7Z0JBQzlDLHlEQUF5RDtnQkFDekQsSUFBSVYsUUFBUUosa0JBQWtCZ0IsSUFBSSxDQUFDLENBQUNaLFFBQVVBLE1BQU1sRCxHQUFHLEtBQUs2RCxhQUFhN0QsR0FBRztnQkFDNUUsSUFBSSxDQUFDa0QsT0FBTztvQkFDVkEsUUFBUTt3QkFDTixHQUFHVyxZQUFZO3dCQUNmVCxTQUFTLEVBQUU7b0JBQ2I7Z0JBQ0YsT0FBTztvQkFDTE4sb0JBQW9CQSxrQkFBa0JPLE1BQU0sQ0FBQyxDQUFDSCxRQUFVQSxNQUFNbEQsR0FBRyxLQUFLNkQsYUFBYTdELEdBQUc7Z0JBQ3hGO2dCQUVBLHlGQUF5RjtnQkFDekYsSUFBSWtELE9BQU9FLFNBQVNqRCxRQUFRO29CQUMxQitDLE1BQU1FLE9BQU8sR0FBR0YsTUFBTUUsT0FBTyxDQUFDUixNQUFNLENBQUNNLE1BQU1FLE9BQU87Z0JBQ3BEO2dCQUNBTixrQkFBa0JFLElBQUksQ0FBQ0U7WUFDekI7UUFDRjtRQUVBLE9BQU9KO0lBQ1QsR0FBRztRQUFDVjtRQUFtQlI7UUFBYUcsY0FBY1M7UUFBVTNDO0tBQUs7SUFFakUsTUFBTWtFLGlCQUFpQjFCLElBQUFBLGtCQUFXLEVBQ2hDLENBQ0UyQixnQkFDQUMsY0FDQUMsV0FDQUM7UUFFQXpDLE9BQU8wQyxNQUFNLENBQUM7WUFDWixJQUFJSCxjQUFjO2dCQUNoQkEsYUFBYUksTUFBTTtZQUNyQjtZQUNBTCxlQUFlTSxRQUFRLENBQUM7Z0JBQUU1QztnQkFBUUUsYUFBYXVDO1lBQWU7WUFDOUREO1FBQ0Y7SUFDRixHQUNBO1FBQUN4QztLQUFPO0lBR1YscUJBQ0UscUJBQUNsQixPQUFNK0QsUUFBUSxzQkFDYixxQkFBQ0Msc0RBQTBCO1FBQ3pCakQsWUFBWUE7UUFDWnVCLG1CQUFtQkQ7UUFDbkI0QixjQUFjLENBQ1pDLGtCQUNBLEVBQUVDLHNCQUFzQixFQUFFQyxpQkFBaUIsRUFBRUMsb0JBQW9CLEVBQUUsR0FFbkVILGlCQUFpQkksT0FBTyxJQUFJakMsT0FBTzFDLE1BQU0saUJBQ3JDNEUsVUFBU0MsWUFBWSxlQUNuQixxQkFBQ0M7Z0JBQUlsRixXQUFXUjtlQUNic0QsT0FBT0ksR0FBRyxDQUFDLENBQUNDO2dCQUNYLElBQUlnQyxhQUFhaEMsTUFBTWxELEdBQUc7Z0JBQzFCLElBQUlrRCxNQUFNaEQsV0FBVyxFQUFFO29CQUNyQmdGLGFBQ0UsT0FBT2hDLE1BQU1oRCxXQUFXLEtBQUssYUFDekJnRCxNQUFNaEQsV0FBVyxDQUFDO3dCQUFFTDtvQkFBSyxLQUN6QnFELE1BQU1oRCxXQUFXO2dCQUN6QjtnQkFFQSxxQkFDRSxxQkFBQytFO29CQUNDbEYsV0FBVyxDQUFDLEVBQUVSLFVBQVUsUUFBUSxFQUFFQSxVQUFVLFFBQVEsRUFBRTJELE1BQU1sRCxHQUFHLENBQUMsQ0FBQztvQkFDakVBLEtBQUtrRCxNQUFNbEQsR0FBRztpQ0FFZCxxQkFBQ2lGO29CQUFJbEYsV0FBVyxDQUFDLEVBQUVSLFVBQVUsYUFBYSxDQUFDO21CQUFHMkYsYUFDN0NoQyxNQUFNRSxPQUFPLENBQUNILEdBQUcsQ0FBQyxDQUFDckQsUUFBUXVGLG1CQUMxQixxQkFBQzNGO3dCQUNDNEYsT0FBT0Q7d0JBQ1AxRixZQUFZbUYsc0JBQXNCaEYsT0FBT0ksR0FBRzt3QkFDNUNBLEtBQUtKLE9BQU9JLEdBQUc7d0JBQ2ZOLFNBQVM7NEJBQ1BtRixxQkFBcUJqRixPQUFPSSxHQUFHOzRCQUMvQjJFLHVCQUF1Qi9FO3dCQUN6Qjt3QkFDQUQsY0FBYzs0QkFDWmtGLHFCQUFxQmpGLE9BQU9JLEdBQUc7d0JBQ2pDO3dCQUNBSixRQUFRQTs7WUFLbEIsS0FFRjhFLGlCQUFpQkksT0FBTyxJQUUxQjtRQUVOTyxlQUFleEQ7UUFDZmtDLGdCQUFnQkE7UUFDaEJ1QixXQUFXckQ7O0FBSW5CIn0=
@@ -38,4 +38,4 @@ function useMenuTriggerMatch(/**
38
38
  ]);
39
39
  }
40
40
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/OicgK1xuICAgICAgICAgIHZhbGlkQ2hhcnMgK1xuICAgICAgICAgICcpezAsJyArXG4gICAgICAgICAgbWF4TGVuZ3RoICtcbiAgICAgICAgICAnfSknICtcbiAgICAgICAgICAnKSQnLFxuICAgICAgKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUeXBlYWhlYWRUcmlnZ2VyUmVnZXguZXhlYyhxdWVyeSlcbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlID0gbWF0Y2hbMV1cblxuICAgICAgICAvKipcbiAgICAgICAgICogbWF0Y2hpbmdTdHJpbmcgaXMgb25seSB0aGUgdGV4dCBBRlRFUiB0aGUgdHJpZ2dlciB0ZXh0LiAoU28gZXZlcnl0aGluZyBhZnRlciB0aGUgLylcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cblxuICAgICAgICBpZiAobWF0Y2hpbmdTdHJpbmcubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWFkT2Zmc2V0OiBtYXRjaC5pbmRleCArIG1heWJlTGVhZGluZ1doaXRlc3BhY2UubGVuZ3RoLFxuICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmcsXG4gICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogbWF0Y2hbMl0sIC8vIHJlcGxhY2VhYmxlU3RyaW5nIGlzIHRoZSB0cmlnZ2VyIHRleHQgKyB0aGUgbWF0Y2hpbmcgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgW21heExlbmd0aCwgbWluTGVuZ3RoLCB0cmlnZ2VyXSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJ0cmlnZ2VyIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwidXNlQ2FsbGJhY2siLCJxdWVyeSIsInZhbGlkQ2hhcnMiLCJQVU5DVFVBVElPTiIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImxlYWRPZmZzZXQiLCJpbmRleCIsInJlcGxhY2VhYmxlU3RyaW5nIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQXdCZ0JBOzs7ZUFBQUE7Ozt1QkF0Qlk7NENBRUE7QUFvQnJCLFNBQVNBLG9CQUNkOztHQUVDLEdBQ0RDLE9BQWUsRUFDZixFQUFFQyxZQUFZLEVBQUUsRUFBRUMsWUFBWSxDQUFDLEVBQThDO0lBRTdFLE9BQU9DLElBQUFBLGtCQUFXLEVBQ2hCLENBQUMsRUFBRUMsS0FBSyxFQUFFO1FBQ1IsTUFBTUMsYUFBYSxPQUFPTCxVQUFVTSx1Q0FBVyxHQUFHO1FBQ2xELE1BQU1DLHdCQUF3QixJQUFJQyxPQUNoQyxpQkFDRSxNQUNBUixVQUNBLE1BQ0EsU0FDQUssYUFDQSxTQUNBSixZQUNBLE9BQ0E7UUFFSixNQUFNUSxRQUFRRixzQkFBc0JHLElBQUksQ0FBQ047UUFDekMsSUFBSUssVUFBVSxNQUFNO1lBQ2xCLE1BQU1FLHlCQUF5QkYsS0FBSyxDQUFDLEVBQUU7WUFFdkM7O1NBRUMsR0FDRCxNQUFNRyxpQkFBaUJILEtBQUssQ0FBQyxFQUFFO1lBRS9CLElBQUlHLGVBQWVDLE1BQU0sSUFBSVgsV0FBVztnQkFDdEMsT0FBTztvQkFDTFksWUFBWUwsTUFBTU0sS0FBSyxHQUFHSix1QkFBdUJFLE1BQU07b0JBQ3ZERDtvQkFDQUksbUJBQW1CUCxLQUFLLENBQUMsRUFBRTtnQkFDN0I7WUFDRjtRQUNGO1FBQ0EsT0FBTztJQUNULEdBQ0E7UUFBQ1I7UUFBV0M7UUFBV0Y7S0FBUTtBQUVuQyJ9
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L3VzZU1lbnVUcmlnZ2VyTWF0Y2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMZXhpY2FsRWRpdG9yIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUFVOQ1RVQVRJT04gfSBmcm9tICcuL0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luJ1xuXG5leHBvcnQgdHlwZSBUcmlnZ2VyRm4gPSAoe1xuICBlZGl0b3IsXG4gIHF1ZXJ5LFxufToge1xuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgLyoqIFRoZSBxdWVyeSBzdHJpbmcgaXMgdGhlIFBPVEVOVElBTCB0cmlnZ2VyIEFORCB0aGUgdGV4dCBhZnRlciB0aGUgdHJpZ2dlciB0ZXh0LiAqL1xuICBxdWVyeTogc3RyaW5nXG59KSA9PiBNZW51VGV4dE1hdGNoIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBNZW51VGV4dE1hdGNoID0ge1xuICBsZWFkT2Zmc2V0OiBudW1iZXJcbiAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZ1xuICByZXBsYWNlYWJsZVN0cmluZzogc3RyaW5nXG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgdHJpZ2dlciAoZS5nLiAnLycpIGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IGFuZCwgaWYgc28sIHJldHVybnMgdGhlIG1hdGNoaW5nIHN0cmluZyAodGV4dCBhZnRlciB0aGUgdHJpZ2dlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lbnVUcmlnZ2VyTWF0Y2goXG4gIC8qKlxuICAgKiBUZXh0IHdoaWNoIHRyaWdnZXJzIHRoZSBtZW51LiBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgdGV4dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgdHJpZ2dlcjogc3RyaW5nLFxuICB7IG1heExlbmd0aCA9IDc1LCBtaW5MZW5ndGggPSAxIH06IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfSxcbik6IFRyaWdnZXJGbiB7XG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZENoYXJzID0gJ1teJyArIHRyaWdnZXIgKyBQVU5DVFVBVElPTiArICdcXFxcc10nXG4gICAgICBjb25zdCBUeXBlYWhlYWRUcmlnZ2VyUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnKF58XFxcXHN8XFxcXCgpKCcgK1xuICAgICAgICAgICdbJyArXG4gICAgICAgICAgdHJpZ2dlciArXG4gICAgICAgICAgJ10nICtcbiAgICAgICAgICAnKCg/OicgK1xuICAgICAgICAgIHZhbGlkQ2hhcnMgK1xuICAgICAgICAgICcpezAsJyArXG4gICAgICAgICAgbWF4TGVuZ3RoICtcbiAgICAgICAgICAnfSknICtcbiAgICAgICAgICAnKSQnLFxuICAgICAgKVxuICAgICAgY29uc3QgbWF0Y2ggPSBUeXBlYWhlYWRUcmlnZ2VyUmVnZXguZXhlYyhxdWVyeSlcbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtYXliZUxlYWRpbmdXaGl0ZXNwYWNlID0gbWF0Y2hbMV1cblxuICAgICAgICAvKipcbiAgICAgICAgICogbWF0Y2hpbmdTdHJpbmcgaXMgb25seSB0aGUgdGV4dCBBRlRFUiB0aGUgdHJpZ2dlciB0ZXh0LiAoU28gZXZlcnl0aGluZyBhZnRlciB0aGUgLylcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gbWF0Y2hbM11cblxuICAgICAgICBpZiAobWF0Y2hpbmdTdHJpbmcubGVuZ3RoID49IG1pbkxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWFkT2Zmc2V0OiBtYXRjaC5pbmRleCArIG1heWJlTGVhZGluZ1doaXRlc3BhY2UubGVuZ3RoLFxuICAgICAgICAgICAgbWF0Y2hpbmdTdHJpbmcsXG4gICAgICAgICAgICByZXBsYWNlYWJsZVN0cmluZzogbWF0Y2hbMl0sIC8vIHJlcGxhY2VhYmxlU3RyaW5nIGlzIHRoZSB0cmlnZ2VyIHRleHQgKyB0aGUgbWF0Y2hpbmcgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgW21heExlbmd0aCwgbWluTGVuZ3RoLCB0cmlnZ2VyXSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZU1lbnVUcmlnZ2VyTWF0Y2giLCJ0cmlnZ2VyIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwidXNlQ2FsbGJhY2siLCJxdWVyeSIsInZhbGlkQ2hhcnMiLCJQVU5DVFVBVElPTiIsIlR5cGVhaGVhZFRyaWdnZXJSZWdleCIsIlJlZ0V4cCIsIm1hdGNoIiwiZXhlYyIsIm1heWJlTGVhZGluZ1doaXRlc3BhY2UiLCJtYXRjaGluZ1N0cmluZyIsImxlbmd0aCIsImxlYWRPZmZzZXQiLCJpbmRleCIsInJlcGxhY2VhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdCZ0JBOzs7ZUFBQUE7Ozt1QkF0Qlk7NENBRUE7QUFvQnJCLFNBQVNBLG9CQUNkOztHQUVDLEdBQ0RDLE9BQWUsRUFDZixFQUFFQyxZQUFZLEVBQUUsRUFBRUMsWUFBWSxDQUFDLEVBQThDO0lBRTdFLE9BQU9DLElBQUFBLGtCQUFXLEVBQ2hCLENBQUMsRUFBRUMsS0FBSyxFQUFFO1FBQ1IsTUFBTUMsYUFBYSxPQUFPTCxVQUFVTSx1Q0FBVyxHQUFHO1FBQ2xELE1BQU1DLHdCQUF3QixJQUFJQyxPQUNoQyxpQkFDRSxNQUNBUixVQUNBLE1BQ0EsU0FDQUssYUFDQSxTQUNBSixZQUNBLE9BQ0E7UUFFSixNQUFNUSxRQUFRRixzQkFBc0JHLElBQUksQ0FBQ047UUFDekMsSUFBSUssVUFBVSxNQUFNO1lBQ2xCLE1BQU1FLHlCQUF5QkYsS0FBSyxDQUFDLEVBQUU7WUFFdkM7O1NBRUMsR0FDRCxNQUFNRyxpQkFBaUJILEtBQUssQ0FBQyxFQUFFO1lBRS9CLElBQUlHLGVBQWVDLE1BQU0sSUFBSVgsV0FBVztnQkFDdEMsT0FBTztvQkFDTFksWUFBWUwsTUFBTU0sS0FBSyxHQUFHSix1QkFBdUJFLE1BQU07b0JBQ3ZERDtvQkFDQUksbUJBQW1CUCxLQUFLLENBQUMsRUFBRTtnQkFDN0I7WUFDRjtRQUNGO1FBQ0EsT0FBTztJQUNULEdBQ0E7UUFBQ1I7UUFBV0M7UUFBV0Y7S0FBUTtBQUVuQyJ9
@@ -286,4 +286,4 @@ function AddBlockHandlePlugin({ anchorElem = document.body }) {
286
286
  return useAddBlockHandle(editor, anchorElem, editor._editable);
287
287
  }
288
288
 
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7ICRnZXROb2RlQnlLZXksIHR5cGUgTGV4aWNhbEVkaXRvciwgdHlwZSBMZXhpY2FsTm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2d1YXJkJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludCdcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0J1xuaW1wb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4uLy4uL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50J1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2FkZC1ibG9jay1tZW51J1xuXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBldmVudDogTW91c2VFdmVudCxcbiAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbik6IHtcbiAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbn0ge1xuICBjb25zdCBhbmNob3JFbGVtZW50UmVjdCA9IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gIGxldCBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VBZGRCbG9ja0hhbmRsZShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcbiAgY29uc3QgW2hvdmVyZWRFbGVtZW50LCBzZXRIb3ZlcmVkRWxlbWVudF0gPSB1c2VTdGF0ZTx7XG4gICAgZWxlbTogSFRNTEVsZW1lbnRcbiAgICBub2RlOiBMZXhpY2FsTm9kZVxuICB9IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gZXZlbnRcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEJ1ZmZlciA9IDUwXG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQnVmZmVyID0gMjVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRUb3AgPSB0b3AgKyB3aW5kb3cuc2Nyb2xsWVxuICAgICAgICBjb25zdCBhZGp1c3RlZEJvdHRvbSA9IGJvdHRvbSArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhZ2VZIDwgYWRqdXN0ZWRUb3AgLSB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VZID4gYWRqdXN0ZWRCb3R0b20gKyB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYIDwgbGVmdCAtIGhvcml6b250YWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA+IHJpZ2h0ICsgaG9yaXpvbnRhbEJ1ZmZlclxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoaG92ZXJlZEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZW1wdHlCbG9ja0VsZW0gdG8gYmUgZm91bmQgd2hlbiB0aGUgbW91c2UgaXMgaW4gdGhlXG4gICAgICAgIC8vIGJ1ZmZlciB6b25lIGFyb3VuZCB0aGUgc2Nyb2xsZXJFbGVtLlxuICAgICAgICBpZiAocGFnZVggPCBsZWZ0IHx8IHBhZ2VYID4gcmlnaHQpIHtcbiAgICAgICAgICBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBwYWdlWCA8IGxlZnQgPyBwYWdlWCAtIGxlZnQgOiBwYWdlWCAtIHJpZ2h0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiBfZW1wdHlCbG9ja0VsZW0sIGJsb2NrTm9kZSB9ID0gZ2V0QmxvY2tFbGVtZW50KFxuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgIClcbiAgICAgIGlmICghX2VtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKGhvdmVyZWRFbGVtZW50Py5ub2RlICE9PSBibG9ja05vZGUgfHwgaG92ZXJlZEVsZW1lbnQ/LmVsZW0gIT09IF9lbXB0eUJsb2NrRWxlbSkge1xuICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudCh7XG4gICAgICAgICAgZWxlbTogX2VtcHR5QmxvY2tFbGVtLFxuICAgICAgICAgIG5vZGU6IGJsb2NrTm9kZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGlzIG91dHNpZGUgdGhlIGFjdHVhbCBlZGl0b3IsIHdlIG5lZWQgdG8gbGlzdGVuIHRvIHRoZSBkb2N1bWVudFxuICAgIC8vIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHdoZW4gdGhlIG1vdXNlIGlzIG91dHNpZGUgdGhlIGVkaXRvciBhbmQgcmVzcGVjdCBhIGJ1ZmZlciBhcm91bmRcbiAgICAvLyB0aGUgc2Nyb2xsZXJFbGVtIHRvIGF2b2lkIHRoZSBkcmFnZ2FibGVCbG9ja0VsZW0gZGlzYXBwZWFyaW5nIHRvbyBlYXJseS5cbiAgICBkb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Eb2N1bWVudE1vdXNlTW92ZSlcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Eb2N1bWVudE1vdXNlTW92ZSlcbiAgICB9XG4gIH0sIFtzY3JvbGxlckVsZW0sIGFuY2hvckVsZW0sIGVkaXRvciwgaG92ZXJlZEVsZW1lbnRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBob3ZlcmVkRWxlbWVudD8ubm9kZSkge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFRleHRDb250ZW50KCkgIT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPSBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SGFuZGxlUG9zaXRpb24oXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQ/LmVsZW0sXG4gICAgICAgICAgbWVudVJlZi5jdXJyZW50LFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA/IFNQQUNFIDogU1BBQ0UgLSAyMCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLCBob3ZlcmVkRWxlbWVudCwgZWRpdG9yXSlcblxuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgbGV0IGhvdmVyZWRFbGVtZW50VG9Vc2UgPSBob3ZlcmVkRWxlbWVudFxuICAgICAgaWYgKCFob3ZlcmVkRWxlbWVudFRvVXNlPy5ub2RlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAxLiBVcGRhdGUgaG92ZXJlZEVsZW1lbnQubm9kZSB0byBhIG5ldyBwYXJhZ3JhcGggbm9kZSBpZiB0aGUgaG92ZXJlZEVsZW1lbnQubm9kZSBpcyBub3QgYSBwYXJhZ3JhcGggbm9kZVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VHlwZSgpICE9PSAncGFyYWdyYXBoJyB8fFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGNvbnN0IG5ld1BhcmFncmFwaCA9ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKClcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuaW5zZXJ0QWZ0ZXIobmV3UGFyYWdyYXBoKVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlID0ge1xuICAgICAgICAgICAgICBlbGVtOiBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5ld1BhcmFncmFwaC5nZXRLZXkoKSksXG4gICAgICAgICAgICAgIG5vZGU6IG5ld1BhcmFncmFwaCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KGhvdmVyZWRFbGVtZW50VG9Vc2UpXG4gICAgICAgICAgfSwgMClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gMi4gRm9jdXMgb24gdGhlIG5ldyBwYXJhZ3JhcGggbm9kZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5mb2N1cygpXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgICdzZWxlY3QnIGluIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sIDEpXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIGNhbGxlZCBBRlRFUiB0aGUgZm9jdXNpbmcgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIG5vZGU6IGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSBhcyBQYXJhZ3JhcGhOb2RlLFxuICAgICAgICB9KVxuICAgICAgfSwgMilcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGhvdmVyZWRFbGVtZW50XSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJTUEFDRSIsIkFERF9CTE9DS19NRU5VX0NMQVNTTkFNRSIsIkRvd253YXJkIiwiVXB3YXJkIiwiSW5kZXRlcm1pbmF0ZSIsInByZXZJbmRleCIsIkluZmluaXR5IiwiZ2V0Q3VycmVudEluZGV4Iiwia2V5c0xlbmd0aCIsIk1hdGgiLCJmbG9vciIsImdldEJsb2NrRWxlbWVudCIsImFuY2hvckVsZW0iLCJlZGl0b3IiLCJldmVudCIsInVzZUVkZ2VBc0RlZmF1bHQiLCJob3Jpem9udGFsT2Zmc2V0IiwiYW5jaG9yRWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BMZXZlbE5vZGVLZXlzIiwiZ2V0VG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIlBvaW50IiwieCIsImRvbVJlY3QiLCJSZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsImdldENvbGxhcHNlZE1hcmdpbnMiLCJyZWN0IiwiZ2VuZXJhdGVOZXdSZWN0IiwibGVmdCIsInJpZ2h0IiwicmVhc29uIiwiaXNPbkJvdHRvbVNpZGUiLCJpc09uVG9wU2lkZSIsInJlc3VsdCIsImNvbnRhaW5zIiwiJGdldE5vZGVCeUtleSIsInVzZUFkZEJsb2NrSGFuZGxlIiwiaXNFZGl0YWJsZSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJtZW51UmVmIiwidXNlUmVmIiwiaG92ZXJlZEVsZW1lbnQiLCJzZXRIb3ZlcmVkRWxlbWVudCIsInVzZVN0YXRlIiwidXNlRWZmZWN0Iiwib25Eb2N1bWVudE1vdXNlTW92ZSIsInRhcmdldCIsImlzSFRNTEVsZW1lbnQiLCJkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0iLCJwYWdlWCIsInBhZ2VZIiwiaG9yaXpvbnRhbEJ1ZmZlciIsInZlcnRpY2FsQnVmZmVyIiwiYWRqdXN0ZWRUb3AiLCJ3aW5kb3ciLCJzY3JvbGxZIiwiYWRqdXN0ZWRCb3R0b20iLCJpc09uSGFuZGxlRWxlbWVudCIsIl9lbXB0eUJsb2NrRWxlbSIsIm5vZGUiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3VycmVudCIsImlzRW1wdHlQYXJhZ3JhcGgiLCJnZXRUeXBlIiwiZ2V0VGV4dENvbnRlbnQiLCJzZXRIYW5kbGVQb3NpdGlvbiIsImhhbmRsZUFkZENsaWNrIiwidXNlQ2FsbGJhY2siLCJob3ZlcmVkRWxlbWVudFRvVXNlIiwidXBkYXRlIiwibmV3UGFyYWdyYXBoIiwiJGNyZWF0ZVBhcmFncmFwaE5vZGUiLCJpbnNlcnRBZnRlciIsInNldFRpbWVvdXQiLCJnZXRLZXkiLCJmb2N1cyIsInNlbGVjdCIsImRpc3BhdGNoQ29tbWFuZCIsIkVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZVBvcnRhbCIsIlJlYWN0IiwiRnJhZ21lbnQiLCJidXR0b24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwicmVmIiwidHlwZSIsImRpdiIsImJvZHkiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiX2VkaXRhYmxlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBhcmFncmFwaE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRjcmVhdGVQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB7ICRnZXROb2RlQnlLZXksIHR5cGUgTGV4aWNhbEVkaXRvciwgdHlwZSBMZXhpY2FsTm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2d1YXJkJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludCdcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0J1xuaW1wb3J0IHsgRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCB9IGZyb20gJy4uLy4uL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbidcbmltcG9ydCB7IGdldENvbGxhcHNlZE1hcmdpbnMgfSBmcm9tICcuLi91dGlscy9nZXRDb2xsYXBzZWRNYXJnaW5zJ1xuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxOb2RlS2V5cyB9IGZyb20gJy4uL3V0aWxzL2dldFRvcExldmVsTm9kZUtleXMnXG5pbXBvcnQgeyBpc09uSGFuZGxlRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzT25IYW5kbGVFbGVtZW50J1xuaW1wb3J0IHsgc2V0SGFuZGxlUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9zZXRIYW5kbGVQb3NpdGlvbidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBTUEFDRSA9IC0yNFxuY29uc3QgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FID0gJ2FkZC1ibG9jay1tZW51J1xuXG5jb25zdCBEb3dud2FyZCA9IDFcbmNvbnN0IFVwd2FyZCA9IC0xXG5jb25zdCBJbmRldGVybWluYXRlID0gMFxuXG5sZXQgcHJldkluZGV4ID0gSW5maW5pdHlcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEluZGV4KGtleXNMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChrZXlzTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEluZmluaXR5XG4gIH1cbiAgaWYgKHByZXZJbmRleCA+PSAwICYmIHByZXZJbmRleCA8IGtleXNMZW5ndGgpIHtcbiAgICByZXR1cm4gcHJldkluZGV4XG4gIH1cblxuICByZXR1cm4gTWF0aC5mbG9vcihrZXlzTGVuZ3RoIC8gMilcbn1cblxuZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBldmVudDogTW91c2VFdmVudCxcbiAgdXNlRWRnZUFzRGVmYXVsdCA9IGZhbHNlLFxuICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbik6IHtcbiAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGxcbn0ge1xuICBjb25zdCBhbmNob3JFbGVtZW50UmVjdCA9IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgdG9wTGV2ZWxOb2RlS2V5cyA9IGdldFRvcExldmVsTm9kZUtleXMoZWRpdG9yKVxuXG4gIGxldCBibG9ja0VsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsID0gbnVsbFxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gSW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoaXNPblRvcFNpZGUpIHtcbiAgICAgICAgICBkaXJlY3Rpb24gPSBVcHdhcmRcbiAgICAgICAgfSBlbHNlIGlmIChpc09uQm90dG9tU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IERvd253YXJkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RvcCBzZWFyY2ggYmxvY2sgZWxlbWVudFxuICAgICAgICAgIGRpcmVjdGlvbiA9IEluZmluaXR5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5kZXggKz0gZGlyZWN0aW9uXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VBZGRCbG9ja0hhbmRsZShcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCxcbiAgaXNFZGl0YWJsZTogYm9vbGVhbixcbik6IEpTWC5FbGVtZW50IHtcbiAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcbiAgY29uc3QgW2hvdmVyZWRFbGVtZW50LCBzZXRIb3ZlcmVkRWxlbWVudF0gPSB1c2VTdGF0ZTx7XG4gICAgZWxlbTogSFRNTEVsZW1lbnRcbiAgICBub2RlOiBMZXhpY2FsTm9kZVxuICB9IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgaWYgKCFpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSAwXG4gICAgICAvLyBDYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzY3JvbGxlckVsZW0gYW5kIHRhcmdldCBpZiB0YXJnZXQgaXMgbm90IGluIHNjcm9sbGVyRWxlbVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAmJiAhc2Nyb2xsZXJFbGVtLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3QgeyBib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3AgfSA9IHNjcm9sbGVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBjb25zdCB7IHBhZ2VYLCBwYWdlWSB9ID0gZXZlbnRcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEJ1ZmZlciA9IDUwXG4gICAgICAgIGNvbnN0IHZlcnRpY2FsQnVmZmVyID0gMjVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRUb3AgPSB0b3AgKyB3aW5kb3cuc2Nyb2xsWVxuICAgICAgICBjb25zdCBhZGp1c3RlZEJvdHRvbSA9IGJvdHRvbSArIHdpbmRvdy5zY3JvbGxZXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhZ2VZIDwgYWRqdXN0ZWRUb3AgLSB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VZID4gYWRqdXN0ZWRCb3R0b20gKyB2ZXJ0aWNhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYIDwgbGVmdCAtIGhvcml6b250YWxCdWZmZXIgfHxcbiAgICAgICAgICBwYWdlWCA+IHJpZ2h0ICsgaG9yaXpvbnRhbEJ1ZmZlclxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoaG92ZXJlZEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGFsbG93IHRoZSBfZW1wdHlCbG9ja0VsZW0gdG8gYmUgZm91bmQgd2hlbiB0aGUgbW91c2UgaXMgaW4gdGhlXG4gICAgICAgIC8vIGJ1ZmZlciB6b25lIGFyb3VuZCB0aGUgc2Nyb2xsZXJFbGVtLlxuICAgICAgICBpZiAocGFnZVggPCBsZWZ0IHx8IHBhZ2VYID4gcmlnaHQpIHtcbiAgICAgICAgICBkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0gPSBwYWdlWCA8IGxlZnQgPyBwYWdlWCAtIGxlZnQgOiBwYWdlWCAtIHJpZ2h0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzT25IYW5kbGVFbGVtZW50KHRhcmdldCwgQUREX0JMT0NLX01FTlVfQ0xBU1NOQU1FKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYmxvY2tFbGVtOiBfZW1wdHlCbG9ja0VsZW0sIGJsb2NrTm9kZSB9ID0gZ2V0QmxvY2tFbGVtZW50KFxuICAgICAgICBhbmNob3JFbGVtLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgLWRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSxcbiAgICAgIClcbiAgICAgIGlmICghX2VtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKGhvdmVyZWRFbGVtZW50Py5ub2RlICE9PSBibG9ja05vZGUgfHwgaG92ZXJlZEVsZW1lbnQ/LmVsZW0gIT09IF9lbXB0eUJsb2NrRWxlbSkge1xuICAgICAgICBzZXRIb3ZlcmVkRWxlbWVudCh7XG4gICAgICAgICAgZWxlbTogX2VtcHR5QmxvY2tFbGVtLFxuICAgICAgICAgIG5vZGU6IGJsb2NrTm9kZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGlzIG91dHNpZGUgdGhlIGFjdHVhbCBlZGl0b3IsIHdlIG5lZWQgdG8gbGlzdGVuIHRvIHRoZSBkb2N1bWVudFxuICAgIC8vIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHdoZW4gdGhlIG1vdXNlIGlzIG91dHNpZGUgdGhlIGVkaXRvciBhbmQgcmVzcGVjdCBhIGJ1ZmZlciBhcm91bmRcbiAgICAvLyB0aGUgc2Nyb2xsZXJFbGVtIHRvIGF2b2lkIHRoZSBkcmFnZ2FibGVCbG9ja0VsZW0gZGlzYXBwZWFyaW5nIHRvbyBlYXJseS5cbiAgICBkb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Eb2N1bWVudE1vdXNlTW92ZSlcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Eb2N1bWVudE1vdXNlTW92ZSlcbiAgICB9XG4gIH0sIFtzY3JvbGxlckVsZW0sIGFuY2hvckVsZW0sIGVkaXRvciwgaG92ZXJlZEVsZW1lbnRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiBob3ZlcmVkRWxlbWVudD8ubm9kZSkge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudC5ub2RlLmdldFRleHRDb250ZW50KCkgIT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlzRW1wdHlQYXJhZ3JhcGggPSBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SGFuZGxlUG9zaXRpb24oXG4gICAgICAgICAgaG92ZXJlZEVsZW1lbnQ/LmVsZW0sXG4gICAgICAgICAgbWVudVJlZi5jdXJyZW50LFxuICAgICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgICAgaXNFbXB0eVBhcmFncmFwaCA/IFNQQUNFIDogU1BBQ0UgLSAyMCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFthbmNob3JFbGVtLCBob3ZlcmVkRWxlbWVudCwgZWRpdG9yXSlcblxuICBjb25zdCBoYW5kbGVBZGRDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgbGV0IGhvdmVyZWRFbGVtZW50VG9Vc2UgPSBob3ZlcmVkRWxlbWVudFxuICAgICAgaWYgKCFob3ZlcmVkRWxlbWVudFRvVXNlPy5ub2RlKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAxLiBVcGRhdGUgaG92ZXJlZEVsZW1lbnQubm9kZSB0byBhIG5ldyBwYXJhZ3JhcGggbm9kZSBpZiB0aGUgaG92ZXJlZEVsZW1lbnQubm9kZSBpcyBub3QgYSBwYXJhZ3JhcGggbm9kZVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgbGV0IGlzRW1wdHlQYXJhZ3JhcGggPSB0cnVlXG4gICAgICAgIGlmIChcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuZ2V0VHlwZSgpICE9PSAncGFyYWdyYXBoJyB8fFxuICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5nZXRUZXh0Q29udGVudCgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBpc0VtcHR5UGFyYWdyYXBoID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgIGNvbnN0IG5ld1BhcmFncmFwaCA9ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKClcbiAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUuaW5zZXJ0QWZ0ZXIobmV3UGFyYWdyYXBoKVxuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlID0ge1xuICAgICAgICAgICAgICBlbGVtOiBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5ld1BhcmFncmFwaC5nZXRLZXkoKSksXG4gICAgICAgICAgICAgIG5vZGU6IG5ld1BhcmFncmFwaCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEhvdmVyZWRFbGVtZW50KGhvdmVyZWRFbGVtZW50VG9Vc2UpXG4gICAgICAgICAgfSwgMClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gMi4gRm9jdXMgb24gdGhlIG5ldyBwYXJhZ3JhcGggbm9kZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIGVkaXRvci5mb2N1cygpXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBob3ZlcmVkRWxlbWVudFRvVXNlLm5vZGUgJiZcbiAgICAgICAgICAgICdzZWxlY3QnIGluIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZS5zZWxlY3QoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sIDEpXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIGNhbGxlZCBBRlRFUiB0aGUgZm9jdXNpbmcgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIG5vZGU6IGhvdmVyZWRFbGVtZW50VG9Vc2Uubm9kZSBhcyBQYXJhZ3JhcGhOb2RlLFxuICAgICAgICB9KVxuICAgICAgfSwgMilcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGhvdmVyZWRFbGVtZW50XSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJTUEFDRSIsIkFERF9CTE9DS19NRU5VX0NMQVNTTkFNRSIsIkRvd253YXJkIiwiVXB3YXJkIiwiSW5kZXRlcm1pbmF0ZSIsInByZXZJbmRleCIsIkluZmluaXR5IiwiZ2V0Q3VycmVudEluZGV4Iiwia2V5c0xlbmd0aCIsIk1hdGgiLCJmbG9vciIsImdldEJsb2NrRWxlbWVudCIsImFuY2hvckVsZW0iLCJlZGl0b3IiLCJldmVudCIsInVzZUVkZ2VBc0RlZmF1bHQiLCJob3Jpem9udGFsT2Zmc2V0IiwiYW5jaG9yRWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BMZXZlbE5vZGVLZXlzIiwiZ2V0VG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIlBvaW50IiwieCIsImRvbVJlY3QiLCJSZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsImdldENvbGxhcHNlZE1hcmdpbnMiLCJyZWN0IiwiZ2VuZXJhdGVOZXdSZWN0IiwibGVmdCIsInJpZ2h0IiwicmVhc29uIiwiaXNPbkJvdHRvbVNpZGUiLCJpc09uVG9wU2lkZSIsInJlc3VsdCIsImNvbnRhaW5zIiwiJGdldE5vZGVCeUtleSIsInVzZUFkZEJsb2NrSGFuZGxlIiwiaXNFZGl0YWJsZSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJtZW51UmVmIiwidXNlUmVmIiwiaG92ZXJlZEVsZW1lbnQiLCJzZXRIb3ZlcmVkRWxlbWVudCIsInVzZVN0YXRlIiwidXNlRWZmZWN0Iiwib25Eb2N1bWVudE1vdXNlTW92ZSIsInRhcmdldCIsImlzSFRNTEVsZW1lbnQiLCJkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0iLCJwYWdlWCIsInBhZ2VZIiwiaG9yaXpvbnRhbEJ1ZmZlciIsInZlcnRpY2FsQnVmZmVyIiwiYWRqdXN0ZWRUb3AiLCJ3aW5kb3ciLCJzY3JvbGxZIiwiYWRqdXN0ZWRCb3R0b20iLCJpc09uSGFuZGxlRWxlbWVudCIsIl9lbXB0eUJsb2NrRWxlbSIsIm5vZGUiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3VycmVudCIsImlzRW1wdHlQYXJhZ3JhcGgiLCJnZXRUeXBlIiwiZ2V0VGV4dENvbnRlbnQiLCJzZXRIYW5kbGVQb3NpdGlvbiIsImhhbmRsZUFkZENsaWNrIiwidXNlQ2FsbGJhY2siLCJob3ZlcmVkRWxlbWVudFRvVXNlIiwidXBkYXRlIiwibmV3UGFyYWdyYXBoIiwiJGNyZWF0ZVBhcmFncmFwaE5vZGUiLCJpbnNlcnRBZnRlciIsInNldFRpbWVvdXQiLCJnZXRLZXkiLCJmb2N1cyIsInNlbGVjdCIsImRpc3BhdGNoQ29tbWFuZCIsIkVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZVBvcnRhbCIsIlJlYWN0IiwiRnJhZ21lbnQiLCJidXR0b24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwicmVmIiwidHlwZSIsImRpdiIsImJvZHkiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiX2VkaXRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBOFRnQkE7OztlQUFBQTs7O3dDQTNUMEI7eUJBQ0w7K0RBRWQ7MEJBRU07dUJBRUM7dUJBQ1I7c0JBQ0Q7NENBQ3FCO3FDQUNOO3FDQUNBO21DQUNGO21DQUNBO1FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxRQUFRLENBQUM7QUFDZixNQUFNQywyQkFBMkI7QUFFakMsTUFBTUMsV0FB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
@@ -21,4 +21,4 @@ function debounce(func, wait) {
21
21
  };
22
22
  }
23
23
 
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9kZWJvdW5jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZnVuYzogRnVuY3Rpb24sIHdhaXQ6IG51bWJlcikge1xuICBsZXQgdGltZW91dDogbnVsbCB8IG51bWJlciA9IG51bGxcbiAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGxhdGVyID0gKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICB0aW1lb3V0ID0gbnVsbFxuICAgICAgZnVuYyguLi5hcmdzKVxuICAgIH1cblxuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KVxuICAgIHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChsYXRlciwgd2FpdClcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlYm91bmNlIiwiZnVuYyIsIndhaXQiLCJ0aW1lb3V0IiwiYXJncyIsImxhdGVyIiwiY2xlYXJUaW1lb3V0Iiwid2luZG93Iiwic2V0VGltZW91dCJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxTQUFTQyxJQUFjLEVBQUVDLElBQVk7SUFDbkQsSUFBSUMsVUFBeUI7SUFDN0IsT0FBTyxTQUFVLEdBQUdDLElBQVc7UUFDN0IsTUFBTUMsUUFBUTtZQUNaQyxhQUFhSDtZQUNiQSxVQUFVO1lBQ1ZGLFFBQVFHO1FBQ1Y7UUFFQUUsYUFBYUg7UUFDYkEsVUFBVUksT0FBT0MsVUFBVSxDQUFDSCxPQUFPSDtJQUNyQztBQUNGIn0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9kZWJvdW5jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZnVuYzogRnVuY3Rpb24sIHdhaXQ6IG51bWJlcikge1xuICBsZXQgdGltZW91dDogbnVsbCB8IG51bWJlciA9IG51bGxcbiAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGxhdGVyID0gKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICB0aW1lb3V0ID0gbnVsbFxuICAgICAgZnVuYyguLi5hcmdzKVxuICAgIH1cblxuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KVxuICAgIHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChsYXRlciwgd2FpdClcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlYm91bmNlIiwiZnVuYyIsIndhaXQiLCJ0aW1lb3V0IiwiYXJncyIsImxhdGVyIiwiY2xlYXJUaW1lb3V0Iiwid2luZG93Iiwic2V0VGltZW91dCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFNBQVNDLElBQWMsRUFBRUMsSUFBWTtJQUNuRCxJQUFJQyxVQUF5QjtJQUM3QixPQUFPLFNBQVUsR0FBR0MsSUFBVztRQUM3QixNQUFNQyxRQUFRO1lBQ1pDLGFBQWFIO1lBQ2JBLFVBQVU7WUFDVkYsUUFBUUc7UUFDVjtRQUVBRSxhQUFhSDtRQUNiQSxVQUFVSSxPQUFPQyxVQUFVLENBQUNILE9BQU9IO0lBQ3JDO0FBQ0YifQ==
@@ -21,4 +21,4 @@ function getBoundingClientRectWithoutTransform(elem) {
21
21
  return rect;
22
22
  }
23
23
 
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXRCb3VuZGluZ1JlY3RXaXRob3V0VHJhbnNmb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGVsZW06IEhUTUxFbGVtZW50KTogRE9NUmVjdCB7XG4gIGNvbnN0IHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgLy8gRXh0cmFjdCB0aGUgdHJhbnNsYXRpb24gdmFsdWUgZnJvbSB0aGUgdHJhbnNmb3JtIHN0eWxlXG4gIGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKS5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2Zvcm0nKVxuICBpZiAoIXRyYW5zZm9ybVZhbHVlIHx8IHRyYW5zZm9ybVZhbHVlID09PSAnbm9uZScpIHtcbiAgICByZXR1cm4gcmVjdFxuICB9XG5cbiAgY29uc3QgbGFzdE51bWJlck9mVHJhbnNmb3JtVmFsdWUgPSB0cmFuc2Zvcm1WYWx1ZS5zcGxpdCgnLCcpLnBvcCgpXG4gIHJlY3QueSA9IHJlY3QueSAtIE51bWJlcihsYXN0TnVtYmVyT2ZUcmFuc2Zvcm1WYWx1ZS5yZXBsYWNlKCcpJywgJycpKVxuXG4gIC8vIFJldHVybiB0aGUgb3JpZ2luYWwgYm91bmRpbmcgcmVjdCBpZiBubyB0cmFuc2xhdGlvbiBpcyBhcHBsaWVkXG4gIHJldHVybiByZWN0XG59XG4iXSwibmFtZXMiOlsiZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSIsImVsZW0iLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidHJhbnNmb3JtVmFsdWUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsImxhc3ROdW1iZXJPZlRyYW5zZm9ybVZhbHVlIiwic3BsaXQiLCJwb3AiLCJ5IiwiTnVtYmVyIiwicmVwbGFjZSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxzQ0FBc0NDLElBQWlCO0lBQ3JFLE1BQU1DLE9BQU9ELEtBQUtFLHFCQUFxQjtJQUV2Qyx5REFBeUQ7SUFDekQsTUFBTUMsaUJBQWlCQyxpQkFBaUJKLE1BQU1LLGdCQUFnQixDQUFDO0lBQy9ELElBQUksQ0FBQ0Ysa0JBQWtCQSxtQkFBbUIsUUFBUTtRQUNoRCxPQUFPRjtJQUNUO0lBRUEsTUFBTUssNkJBQTZCSCxlQUFlSSxLQUFLLENBQUMsS0FBS0MsR0FBRztJQUNoRVAsS0FBS1EsQ0FBQyxHQUFHUixLQUFLUSxDQUFDLEdBQUdDLE9BQU9KLDJCQUEyQkssT0FBTyxDQUFDLEtBQUs7SUFFakUsaUVBQWlFO0lBQ2pFLE9BQU9WO0FBQ1QifQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXRCb3VuZGluZ1JlY3RXaXRob3V0VHJhbnNmb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGVsZW06IEhUTUxFbGVtZW50KTogRE9NUmVjdCB7XG4gIGNvbnN0IHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgLy8gRXh0cmFjdCB0aGUgdHJhbnNsYXRpb24gdmFsdWUgZnJvbSB0aGUgdHJhbnNmb3JtIHN0eWxlXG4gIGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKS5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2Zvcm0nKVxuICBpZiAoIXRyYW5zZm9ybVZhbHVlIHx8IHRyYW5zZm9ybVZhbHVlID09PSAnbm9uZScpIHtcbiAgICByZXR1cm4gcmVjdFxuICB9XG5cbiAgY29uc3QgbGFzdE51bWJlck9mVHJhbnNmb3JtVmFsdWUgPSB0cmFuc2Zvcm1WYWx1ZS5zcGxpdCgnLCcpLnBvcCgpXG4gIHJlY3QueSA9IHJlY3QueSAtIE51bWJlcihsYXN0TnVtYmVyT2ZUcmFuc2Zvcm1WYWx1ZS5yZXBsYWNlKCcpJywgJycpKVxuXG4gIC8vIFJldHVybiB0aGUgb3JpZ2luYWwgYm91bmRpbmcgcmVjdCBpZiBubyB0cmFuc2xhdGlvbiBpcyBhcHBsaWVkXG4gIHJldHVybiByZWN0XG59XG4iXSwibmFtZXMiOlsiZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSIsImVsZW0iLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidHJhbnNmb3JtVmFsdWUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsImxhc3ROdW1iZXJPZlRyYW5zZm9ybVZhbHVlIiwic3BsaXQiLCJwb3AiLCJ5IiwiTnVtYmVyIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHNDQUFzQ0MsSUFBaUI7SUFDckUsTUFBTUMsT0FBT0QsS0FBS0UscUJBQXFCO0lBRXZDLHlEQUF5RDtJQUN6RCxNQUFNQyxpQkFBaUJDLGlCQUFpQkosTUFBTUssZ0JBQWdCLENBQUM7SUFDL0QsSUFBSSxDQUFDRixrQkFBa0JBLG1CQUFtQixRQUFRO1FBQ2hELE9BQU9GO0lBQ1Q7SUFFQSxNQUFNSyw2QkFBNkJILGVBQWVJLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQ2hFUCxLQUFLUSxDQUFDLEdBQUdSLEtBQUtRLENBQUMsR0FBR0MsT0FBT0osMkJBQTJCSyxPQUFPLENBQUMsS0FBSztJQUVqRSxpRUFBaUU7SUFDakUsT0FBT1Y7QUFDVCJ9