@comet/cms-admin 9.0.0-beta.3 → 9.0.0-beta.4

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 (178) hide show
  1. package/lib/blocks/PixelImageBlock.d.ts.map +1 -1
  2. package/lib/blocks/PixelImageBlock.fragment.d.ts +2 -0
  3. package/lib/blocks/PixelImageBlock.fragment.d.ts.map +1 -0
  4. package/lib/blocks/PixelImageBlock.fragment.generated.d.ts +20 -0
  5. package/lib/blocks/PixelImageBlock.fragment.generated.d.ts.map +1 -0
  6. package/lib/blocks/PixelImageBlock.fragment.generated.js +5 -0
  7. package/lib/blocks/PixelImageBlock.fragment.js +4 -0
  8. package/lib/blocks/PixelImageBlock.js +3 -2
  9. package/lib/blocks/__stories__/RichTextBlock.stories.js +53 -0
  10. package/lib/blocks/createLinkBlock.d.ts.map +1 -1
  11. package/lib/blocks/createLinkBlock.js +50 -1
  12. package/lib/blocks/createRichTextBlock.d.ts.map +1 -1
  13. package/lib/blocks/createRichTextBlock.js +56 -20
  14. package/lib/blocks/createSeoBlock.d.ts.map +1 -1
  15. package/lib/blocks/createSeoBlock.js +6 -4
  16. package/lib/blocks/createTextLinkBlock.d.ts.map +1 -1
  17. package/lib/blocks/createTextLinkBlock.js +36 -1
  18. package/lib/blocks/factories/createBlocksBlock.d.ts.map +1 -1
  19. package/lib/blocks/factories/createBlocksBlock.js +70 -13
  20. package/lib/blocks/factories/createColumnsBlock.d.ts.map +1 -1
  21. package/lib/blocks/factories/createColumnsBlock.js +56 -6
  22. package/lib/blocks/factories/createListBlock.d.ts.map +1 -1
  23. package/lib/blocks/factories/createListBlock.js +56 -6
  24. package/lib/blocks/factories/createOneOfBlock.d.ts.map +1 -1
  25. package/lib/blocks/factories/createOneOfBlock.js +62 -5
  26. package/lib/blocks/factories/createOptionalBlock.d.ts.map +1 -1
  27. package/lib/blocks/factories/createOptionalBlock.js +38 -1
  28. package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts.map +1 -1
  29. package/lib/blocks/helpers/composeBlocks/composeBlocks.js +52 -16
  30. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts +2 -1
  31. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts.map +1 -1
  32. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.js +4 -2
  33. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts +2 -1
  34. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts.map +1 -1
  35. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.js +5 -1
  36. package/lib/blocks/helpers/createBlockSkeleton.js +15 -1
  37. package/lib/blocks/helpers/createCompositeBlockTextField.d.ts +2 -1
  38. package/lib/blocks/helpers/createCompositeBlockTextField.d.ts.map +1 -1
  39. package/lib/blocks/helpers/createCompositeBlockTextField.js +20 -2
  40. package/lib/blocks/tipTap/BlockStyleContext.d.ts +3 -0
  41. package/lib/blocks/tipTap/BlockStyleContext.d.ts.map +1 -0
  42. package/lib/blocks/tipTap/BlockStyleContext.js +2 -0
  43. package/lib/blocks/tipTap/InlineStyleContext.d.ts +3 -0
  44. package/lib/blocks/tipTap/InlineStyleContext.d.ts.map +1 -0
  45. package/lib/blocks/tipTap/InlineStyleContext.js +2 -0
  46. package/lib/blocks/tipTap/TipTapLinkDialog.d.ts +10 -0
  47. package/lib/blocks/tipTap/TipTapLinkDialog.d.ts.map +1 -0
  48. package/lib/blocks/tipTap/TipTapLinkDialog.js +105 -0
  49. package/lib/blocks/tipTap/TipTapToolbar.d.ts +12 -0
  50. package/lib/blocks/tipTap/TipTapToolbar.d.ts.map +1 -0
  51. package/lib/blocks/tipTap/TipTapToolbar.js +611 -0
  52. package/lib/blocks/tipTap/__stories__/TipTapRichTextBlock.stories.js +1566 -0
  53. package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts +56 -0
  54. package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts.map +1 -0
  55. package/lib/blocks/tipTap/createTipTapRichTextBlock.js +418 -0
  56. package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts +2 -0
  57. package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts.map +1 -0
  58. package/lib/blocks/tipTap/extensions/BlockStyleHeading.js +57 -0
  59. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts +2 -0
  60. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts.map +1 -0
  61. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.js +56 -0
  62. package/lib/blocks/tipTap/extensions/CmsLink.d.ts +13 -0
  63. package/lib/blocks/tipTap/extensions/CmsLink.d.ts.map +1 -0
  64. package/lib/blocks/tipTap/extensions/CmsLink.js +42 -0
  65. package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts +13 -0
  66. package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts.map +1 -0
  67. package/lib/blocks/tipTap/extensions/InlineStyleMark.js +71 -0
  68. package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts +10 -0
  69. package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts.map +1 -0
  70. package/lib/blocks/tipTap/extensions/NonBreakingSpace.js +57 -0
  71. package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts +10 -0
  72. package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts.map +1 -0
  73. package/lib/blocks/tipTap/extensions/SoftHyphen.js +51 -0
  74. package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts +6 -0
  75. package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts.map +1 -0
  76. package/lib/blocks/tipTap/listLevelMaxHelpers.js +108 -0
  77. package/lib/blocks/types.d.ts +7 -0
  78. package/lib/blocks/types.d.ts.map +1 -1
  79. package/lib/config/CometConfigContext.d.ts +2 -1
  80. package/lib/config/CometConfigContext.d.ts.map +1 -1
  81. package/lib/config/CometConfigContext.js +9 -5
  82. package/lib/contentScope/__stories__/ContentScopeProvider.stories.js +85 -0
  83. package/lib/contentScope/__stories__/ContentScopeSelect.stories.js +655 -0
  84. package/lib/contentScope/noContentScopeFallback/__stories__/NoContentScopeFallback.stories.js +7 -0
  85. package/lib/dam/DamTable.d.ts +5 -1
  86. package/lib/dam/DamTable.d.ts.map +1 -1
  87. package/lib/dam/DamTable.js +5 -1
  88. package/lib/dam/DataGrid/FolderDataGrid.d.ts +1 -1
  89. package/lib/dam/DataGrid/FolderDataGrid.d.ts.map +1 -1
  90. package/lib/dam/DataGrid/FolderDataGrid.js +52 -43
  91. package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts +7 -4
  92. package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts.map +1 -1
  93. package/lib/dam/DataGrid/selection/DamSelectionContext.js +11 -3
  94. package/lib/form/file/FileField.d.ts +15 -12
  95. package/lib/form/file/FileField.d.ts.map +1 -1
  96. package/lib/form/file/FileField.gql.d.ts +2 -0
  97. package/lib/form/file/FileField.gql.d.ts.map +1 -1
  98. package/lib/form/file/FileField.gql.generated.d.ts +40 -0
  99. package/lib/form/file/FileField.gql.generated.d.ts.map +1 -1
  100. package/lib/form/file/FileField.gql.generated.js +2 -1
  101. package/lib/form/file/FileField.gql.js +6 -3
  102. package/lib/form/file/FileField.js +170 -86
  103. package/lib/form/file/FileFieldMenu.d.ts +17 -0
  104. package/lib/form/file/FileFieldMenu.d.ts.map +1 -0
  105. package/lib/form/file/FileFieldMenu.js +91 -0
  106. package/lib/form/file/FileFieldRow.d.ts +12 -0
  107. package/lib/form/file/FileFieldRow.d.ts.map +1 -0
  108. package/lib/form/file/FileFieldRow.js +96 -0
  109. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts +20 -0
  110. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts.map +1 -0
  111. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.js +106 -0
  112. package/lib/form/file/chooseFile/ChooseDamFileDialog.d.ts.map +1 -1
  113. package/lib/form/file/chooseFile/ChooseDamFileDialog.js +34 -89
  114. package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts +9 -0
  115. package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts.map +1 -0
  116. package/lib/form/file/chooseFile/ChooseDamFilesDialog.js +117 -0
  117. package/lib/graphql.generated.d.ts +12 -1
  118. package/lib/graphql.generated.d.ts.map +1 -1
  119. package/lib/index.d.ts +8 -1
  120. package/lib/index.d.ts.map +1 -1
  121. package/lib/index.js +5 -0
  122. package/lib/pages/createEditPageNode.d.ts.map +1 -1
  123. package/lib/pages/createEditPageNode.js +1 -12
  124. package/lib/pages/createUsePage.d.ts +1 -0
  125. package/lib/pages/createUsePage.d.ts.map +1 -1
  126. package/lib/pages/createUsePage.js +135 -6
  127. package/lib/pages/pageTree/PageActions.d.ts.map +1 -1
  128. package/lib/pages/pageTree/PageActions.js +21 -3
  129. package/lib/pages/pageTree/findAvailableSlug.d.ts +11 -0
  130. package/lib/pages/pageTree/findAvailableSlug.d.ts.map +1 -0
  131. package/lib/pages/pageTree/findAvailableSlug.generated.d.ts +16 -0
  132. package/lib/pages/pageTree/findAvailableSlug.generated.d.ts.map +1 -0
  133. package/lib/pages/pageTree/findAvailableSlug.generated.js +5 -0
  134. package/lib/pages/pageTree/findAvailableSlug.js +62 -0
  135. package/lib/pages/pageTree/transformToSlug.d.ts +2 -0
  136. package/lib/pages/pageTree/transformToSlug.d.ts.map +1 -0
  137. package/lib/pages/pageTree/transformToSlug.js +12 -0
  138. package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts.map +1 -1
  139. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts +0 -10
  140. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts.map +1 -1
  141. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.js +0 -1
  142. package/lib/pages/pageTree/useCopyPastePages/sendPages.js +19 -40
  143. package/lib/pages/pageTree/useCopyPastePages.d.ts.map +1 -1
  144. package/lib/pages/pageTree/useCopyPastePages.js +1 -1
  145. package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.d.ts → useProgressDialog.d.ts} +1 -1
  146. package/lib/pages/pageTree/useProgressDialog.d.ts.map +1 -0
  147. package/lib/pages/pageTree/useTranslatePagesAction.d.ts +16 -0
  148. package/lib/pages/pageTree/useTranslatePagesAction.d.ts.map +1 -0
  149. package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts +20 -0
  150. package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts.map +1 -0
  151. package/lib/pages/pageTree/useTranslatePagesAction.generated.js +5 -0
  152. package/lib/pages/pageTree/useTranslatePagesAction.js +339 -0
  153. package/lib/pages/pagesPage/PagesPageActionToolbar.d.ts.map +1 -1
  154. package/lib/pages/pagesPage/PagesPageActionToolbar.js +29 -2
  155. package/lib/pages/pagesPage/PagesPageActionToolbar.sc.d.ts +2 -2
  156. package/lib/translation/AzureAiTranslatorProvider.d.ts +1 -1
  157. package/lib/translation/AzureAiTranslatorProvider.d.ts.map +1 -1
  158. package/lib/translation/AzureAiTranslatorProvider.generated.d.ts +8 -0
  159. package/lib/translation/AzureAiTranslatorProvider.generated.d.ts.map +1 -1
  160. package/lib/translation/AzureAiTranslatorProvider.generated.js +2 -1
  161. package/lib/translation/AzureAiTranslatorProvider.js +31 -2
  162. package/lib/translation/TranslatableInterface.d.ts +4 -0
  163. package/lib/translation/TranslatableInterface.d.ts.map +1 -0
  164. package/lib/translation/TranslatableInterface.js +1 -0
  165. package/lib/translation/TranslateContentMenuItem.d.ts +7 -0
  166. package/lib/translation/TranslateContentMenuItem.d.ts.map +1 -0
  167. package/lib/translation/TranslateContentMenuItem.js +99 -0
  168. package/lib/translation/createDocumentTranslationMethods.d.ts +4 -0
  169. package/lib/translation/createDocumentTranslationMethods.d.ts.map +1 -0
  170. package/lib/translation/createDocumentTranslationMethods.js +62 -0
  171. package/lib/validation/validateJson.d.ts +2 -0
  172. package/lib/validation/validateJson.d.ts.map +1 -0
  173. package/lib/validation/validateJson.js +15 -0
  174. package/package.json +32 -23
  175. package/lib/dashboard/__stories__/DateTime.stories.d.ts +0 -7
  176. package/lib/dashboard/__stories__/DateTime.stories.d.ts.map +0 -1
  177. package/lib/pages/pageTree/useCopyPastePages/ProgressDialog.d.ts.map +0 -1
  178. /package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.js → useProgressDialog.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"createOneOfBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOneOfBlock.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AACjG,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUtE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI1I,UAAU,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACtE,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,KAAK,UAAU,CAAC,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElH,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,OAAO,IAAI;IACnD,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;CACP,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvB,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,OAAO;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC;IAC/C,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EACxD,gGAQG,uBAAuB,CAAC,CAAC,CAAC,EAC7B,WAAW,CACP,KAAK,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAwajG,CAAC"}
1
+ {"version":3,"file":"createOneOfBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOneOfBlock.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AACjG,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUtE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI1I,UAAU,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACtE,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,KAAK,UAAU,CAAC,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElH,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,OAAO,IAAI;IACnD,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;CACP,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvB,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,OAAO;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC;IAC/C,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EACxD,gGAQG,uBAAuB,CAAC,CAAC,CAAC,EAC7B,WAAW,CACP,KAAK,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAsbjG,CAAC"}
@@ -556,7 +556,64 @@ export var createOneOfBlock = function createOneOfBlock(_ref, override) {
556
556
  return [].concat(_toConsumableArray(content), _toConsumableArray((_block$extractTextCon = (_block$extractTextCon2 = block.extractTextContents) === null || _block$extractTextCon2 === void 0 ? void 0 : _block$extractTextCon2.call(block, child.props, options)) !== null && _block$extractTextCon !== void 0 ? _block$extractTextCon : []));
557
557
  }, []);
558
558
  return content;
559
- }
559
+ },
560
+ translateContent: function () {
561
+ var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(state, translate) {
562
+ var translatedAttachedBlocks;
563
+ return _regenerator().w(function (_context5) {
564
+ while (1) switch (_context5.n) {
565
+ case 0:
566
+ _context5.n = 1;
567
+ return Promise.all(state.attachedBlocks.map(/*#__PURE__*/function () {
568
+ var _ref11 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(child) {
569
+ var block, translatedProps, _t7;
570
+ return _regenerator().w(function (_context4) {
571
+ while (1) switch (_context4.n) {
572
+ case 0:
573
+ block = blockForType(child.type);
574
+ if (block) {
575
+ _context4.n = 1;
576
+ break;
577
+ }
578
+ throw new Error("No Block found for type ".concat(child.type));
579
+ case 1:
580
+ if (!block.translateContent) {
581
+ _context4.n = 3;
582
+ break;
583
+ }
584
+ _context4.n = 2;
585
+ return block.translateContent(child.props, translate);
586
+ case 2:
587
+ _t7 = _context4.v;
588
+ _context4.n = 4;
589
+ break;
590
+ case 3:
591
+ _t7 = child.props;
592
+ case 4:
593
+ translatedProps = _t7;
594
+ return _context4.a(2, _objectSpread(_objectSpread({}, child), {}, {
595
+ props: translatedProps
596
+ }));
597
+ }
598
+ }, _callee4);
599
+ }));
600
+ return function (_x7) {
601
+ return _ref11.apply(this, arguments);
602
+ };
603
+ }()));
604
+ case 1:
605
+ translatedAttachedBlocks = _context5.v;
606
+ return _context5.a(2, _objectSpread(_objectSpread({}, state), {}, {
607
+ attachedBlocks: translatedAttachedBlocks
608
+ }));
609
+ }
610
+ }, _callee5);
611
+ }));
612
+ function translateContent(_x5, _x6) {
613
+ return _translateContent.apply(this, arguments);
614
+ }
615
+ return translateContent;
616
+ }()
560
617
  });
561
618
  if (override) {
562
619
  return override(OneOfBlock);
@@ -573,7 +630,7 @@ var ToggleButtonGroup = /*#__PURE__*/styled(MuiToggleButtonGroup, process.env.NO
573
630
  styles: "display:flex"
574
631
  } : {
575
632
  name: "zjik7",
576
- styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStmc0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL2Jsb2Nrcy9mYWN0b3JpZXMvY3JlYXRlT25lT2ZCbG9jay50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCwgUmFkaW9Hcm91cEZpZWxkLCBTZWxlY3RGaWVsZCB9IGZyb20gXCJAY29tZXQvYWRtaW5cIjtcbmltcG9ydCB7IEJveCwgRGl2aWRlciwgVG9nZ2xlQnV0dG9uIGFzIE11aVRvZ2dsZUJ1dHRvbiwgVG9nZ2xlQnV0dG9uR3JvdXAgYXMgTXVpVG9nZ2xlQnV0dG9uR3JvdXAgfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLmlzZXF1YWxcIjtcbmltcG9ydCB7IHR5cGUgRGlzcGF0Y2gsIHR5cGUgUmVhY3ROb2RlLCB0eXBlIFNldFN0YXRlQWN0aW9uLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdHlwZSBNZXNzYWdlRGVzY3JpcHRvciB9IGZyb20gXCJyZWFjdC1pbnRsXCI7XG5cbmltcG9ydCB7IHVzZUNvbnRlbnRTY29wZSB9IGZyb20gXCIuLi8uLi9jb250ZW50U2NvcGUvUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUJsb2NrQWRtaW5Db21wb25lbnRQYXBlciB9IGZyb20gXCIuLi9jb21tb24vQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyXCI7XG5pbXBvcnQgeyBIaWRkZW5JblN1YnJvdXRlIH0gZnJvbSBcIi4uL2NvbW1vbi9IaWRkZW5JblN1YnJvdXRlXCI7XG5pbXBvcnQgeyB1c2VCbG9ja3NDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL0Jsb2Nrc0NvbmZpZ0NvbnRleHRcIjtcbmltcG9ydCB7IEJsb2Nrc0ZpbmFsRm9ybSB9IGZyb20gXCIuLi9mb3JtL0Jsb2Nrc0ZpbmFsRm9ybVwiO1xuaW1wb3J0IHsgY3JlYXRlQmxvY2tTa2VsZXRvbiB9IGZyb20gXCIuLi9oZWxwZXJzL2NyZWF0ZUJsb2NrU2tlbGV0b25cIjtcbmltcG9ydCB7IEhvdmVyUHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvSG92ZXJQcmV2aWV3Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBTZWxlY3RQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSBcIi4uL2lmcmFtZWJyaWRnZS9TZWxlY3RQcmV2aWV3Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBCbG9ja0NhdGVnb3J5LCB0eXBlIEJsb2NrSW50ZXJmYWNlLCB0eXBlIEJsb2NrUHJldmlld1N0YXRlSW50ZXJmYWNlLCB0eXBlIEJsb2NrU3RhdGUsIHR5cGUgQ3VzdG9tQmxvY2tDYXRlZ29yeSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZU5ld1N0YXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBwYXJhbGxlbEFzeW5jRXZlcnkgfSBmcm9tIFwiLi4vdXRpbHMvcGFyYWxsZWxBc3luY0V2ZXJ5XCI7XG5cbmludGVyZmFjZSBPbmVPZkJsb2NrSXRlbTxUIGV4dGVuZHMgQmxvY2tJbnRlcmZhY2UgPSBCbG9ja0ludGVyZmFjZT4ge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwcm9wczogQmxvY2tTdGF0ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrU3RhdGUge1xuICAgIGF0dGFjaGVkQmxvY2tzOiBPbmVPZkJsb2NrSXRlbVtdO1xuICAgIGFjdGl2ZVR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja0ZyYWdtZW50IHtcbiAgICBhdHRhY2hlZEJsb2Nrczoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfVtdO1xuICAgIGFjdGl2ZVR5cGU/OiBzdHJpbmc7XG4gICAgYmxvY2s/OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcHJvcHM6IGFueTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGUgZXh0ZW5kcyBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSB7XG4gICAgYmxvY2s/OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcHJvcHM6IGFueTtcbiAgICB9O1xufVxuXG50eXBlIEFjdGl2ZVR5cGU8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSBDb25maWcgZXh0ZW5kcyBmYWxzZSA/IHsgYWN0aXZlVHlwZTogc3RyaW5nIH0gOiB7IGFjdGl2ZVR5cGU/OiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgT25lT2ZCbG9ja091dHB1dDxDb25maWcgZXh0ZW5kcyBib29sZWFuPiA9IHtcbiAgICBhdHRhY2hlZEJsb2Nrczoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfVtdO1xufSAmIEFjdGl2ZVR5cGU8Q29uZmlnPjtcblxudHlwZSBCbG9ja1R5cGUgPSBzdHJpbmc7XG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9uZU9mQmxvY2tPcHRpb25zPFQgZXh0ZW5kcyBib29sZWFuPiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lPzogUmVhY3ROb2RlO1xuICAgIHN1cHBvcnRlZEJsb2NrczogUmVjb3JkPEJsb2NrVHlwZSwgQmxvY2tJbnRlcmZhY2U+O1xuICAgIGNhdGVnb3J5PzogQmxvY2tDYXRlZ29yeSB8IEN1c3RvbUJsb2NrQ2F0ZWdvcnk7XG4gICAgdmFyaWFudD86IFwic2VsZWN0XCIgfCBcInJhZGlvXCIgfCBcInRvZ2dsZVwiO1xuICAgIGFsbG93RW1wdHk/OiBUO1xuICAgIHRhZ3M/OiBBcnJheTxNZXNzYWdlRGVzY3JpcHRvciB8IHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVPbmVPZkJsb2NrID0gPFQgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbj4oXG4gICAge1xuICAgICAgICBzdXBwb3J0ZWRCbG9ja3MsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lID0gXCJTd2l0Y2hcIixcbiAgICAgICAgY2F0ZWdvcnkgPSBCbG9ja0NhdGVnb3J5Lk90aGVyLFxuICAgICAgICB2YXJpYW50ID0gXCJzZWxlY3RcIixcbiAgICAgICAgYWxsb3dFbXB0eTogcGFzc2VkQWxsb3dFbXB0eSxcbiAgICAgICAgdGFncyxcbiAgICB9OiBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUPixcbiAgICBvdmVycmlkZT86IChcbiAgICAgICAgYmxvY2s6IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPixcbiAgICApID0+IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPixcbik6IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPiA9PiB7XG4gICAgLy8gYWxsb3dFbXB0eSBjYW4ndCBoYXZlIGEgZGVmYXVsdCB0eXBlIGJlY2F1c2UgaXQncyB0eXBlZCBieSBhIGdlbmVyaWNcbiAgICBjb25zdCBhbGxvd0VtcHR5ID0gKHBhc3NlZEFsbG93RW1wdHkgPz8gdHJ1ZSkgc2F0aXNmaWVzIGJvb2xlYW47XG5cbiAgICBmdW5jdGlvbiBibG9ja0ZvclR5cGUodHlwZTogc3RyaW5nKTogQmxvY2tJbnRlcmZhY2UgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZEJsb2Nrc1t0eXBlXSA/PyBudWxsO1xuICAgIH1cbiAgICAvLyBoZWxwZXIgdG8gZ2V0IGNvbW1vbiB2YWx1ZXMgb2YgdGhlIHNlbGVjdGVkIGJsb2NrIGJ5IFN0YXRlXG4gICAgZnVuY3Rpb24gZ2V0QWN0aXZlQmxvY2soczogT25lT2ZCbG9ja1N0YXRlKSB7XG4gICAgICAgIGlmICghcy5hY3RpdmVUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXRlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmxvY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB0eXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZUJsb2NrU3RhdGUgPSBzLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gcy5hY3RpdmVUeXBlKTtcbiAgICAgICAgaWYgKCFhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9IGBDYW4ndCBmaW5kIHJlZmVyZW5jZSB0byBhY3RpdmUgYmxvY2sgb2YgdHlwZSBcIiR7cy5hY3RpdmVUeXBlfVwiLmA7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSArPSBgIFRoaXMgaXMgcHJvYmFibHkgZHVlIHRvIGEgbWlzc2luZyBcIngtaW5jbHVkZS1pbnZpc2libGUtY29udGVudFwiIEhUVFAgaGVhZGVyLiBQbGVhc2UgbWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIGhlYWRlciB3aGVuIGZldGNoaW5nIHRoZSBibG9jay5gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSBhY3RpdmVCbG9ja1N0YXRlID8gYmxvY2tGb3JUeXBlKGFjdGl2ZUJsb2NrU3RhdGUudHlwZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlLFxuICAgICAgICAgICAgYmxvY2ssXG4gICAgICAgICAgICB0eXBlOiBhY3RpdmVCbG9ja1N0YXRlLnR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRUYWdzID0gT2JqZWN0LnZhbHVlcyhzdXBwb3J0ZWRCbG9ja3MpLnJlZHVjZTxBcnJheTxNZXNzYWdlRGVzY3JpcHRvciB8IHN0cmluZz4+KChhY2MsIGJsb2NrKSA9PiB7XG4gICAgICAgIGlmIChibG9jay50YWdzKSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLmFjYywgLi4uYmxvY2sudGFnc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBPbmVPZkJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPSB7XG4gICAgICAgIC4uLmNyZWF0ZUJsb2NrU2tlbGV0b24oKSxcblxuICAgICAgICBuYW1lLFxuXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuXG4gICAgICAgIHRhZ3M6IHRhZ3MgPyB0YWdzIDogY2hpbGRUYWdzLFxuXG4gICAgICAgIGNhdGVnb3J5LFxuXG4gICAgICAgIGRlZmF1bHRWYWx1ZXM6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbGxvd0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2Jsb2NrVHlwZSwgYmxvY2tdID0gT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKVswXTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbeyB0eXBlOiBibG9ja1R5cGUsIHByb3BzOiBibG9jay5kZWZhdWx0VmFsdWVzKCkgfV0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGlucHV0MlN0YXRlOiAoeyBhdHRhY2hlZEJsb2NrcywgYWN0aXZlVHlwZSwgYmxvY2ssIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IE9uZU9mQmxvY2tTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBhY3RpdmVUeXBlICYmIHN1cHBvcnRlZEJsb2Nrc1thY3RpdmVUeXBlXSA/IGFjdGl2ZVR5cGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVua25vd24gYmxvY2sgdHlwZSBcIiR7aXRlbS50eXBlfVwiYCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goeyAuLi5pdGVtLCBwcm9wczogYmxvY2suaW5wdXQyU3RhdGUoaXRlbS5wcm9wcykgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdGUyT3V0cHV0OiAoeyBhdHRhY2hlZEJsb2NrcywgYWN0aXZlVHlwZSwgLi4uYWRkaXRpb25hbEZpZWxkcyB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFkZGl0aW9uYWxGaWVsZHMsXG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IGF0dGFjaGVkQmxvY2tzLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Yy50eXBlfWApOyAvLyBmb3IgVFNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYy50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnN0YXRlMk91dHB1dChjLnByb3BzKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBhY3RpdmVUeXBlLFxuICAgICAgICAgICAgfSBhcyBPbmVPZkJsb2NrT3V0cHV0PFQ+O1xuICAgICAgICB9LFxuXG4gICAgICAgIG91dHB1dDJTdGF0ZTogYXN5bmMgKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IE9uZU9mQmxvY2tTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhdHRhY2hlZEJsb2Nrcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGl0ZW0udHlwZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtpdGVtLnR5cGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3RhdGUuYXR0YWNoZWRCbG9ja3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiBhd2FpdCBibG9jay5vdXRwdXQyU3RhdGUoaXRlbS5wcm9wcywgY29udGV4dCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfSxcblxuICAgICAgICBjcmVhdGVQcmV2aWV3U3RhdGU6IChzdGF0ZSwgcHJldmlld0N0eCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSA9IHN0YXRlO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFkZGl0aW9uYWxGaWVsZHMsXG4gICAgICAgICAgICAgICAgYmxvY2s6IGJsb2NrU3RhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGJsb2NrU3RhdGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJsb2NrPy5jcmVhdGVQcmV2aWV3U3RhdGUoYmxvY2tTdGF0ZS5wcm9wcywgcHJldmlld0N0eCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZG1pbk1ldGE6IHsgcm91dGU6IGAke3ByZXZpZXdDdHgucGFyZW50VXJsfSMke2Jsb2NrU3RhdGUudHlwZX1gIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG5cbiAgICAgICAgaXNWYWxpZDogYXN5bmMgKHN0YXRlKSA9PlxuICAgICAgICAgICAgcGFyYWxsZWxBc3luY0V2ZXJ5KHN0YXRlLmF0dGFjaGVkQmxvY2tzLCBhc3luYyAoYykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGMudHlwZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Yy50eXBlfWApOyAvLyBmb3IgVFNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmlzVmFsaWQoYy5wcm9wcyk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICBhbmNob3JzOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9ja1N0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBibG9jaz8uYW5jaG9ycz8uKGJsb2NrU3RhdGUucHJvcHMpID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlcGVuZGVuY2llczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmRlcGVuZGVuY2llcz8uKGJsb2NrU3RhdGUucHJvcHMpID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dDogKG91dHB1dCwgcmVwbGFjZW1lbnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdPdXRwdXQ6IE9uZU9mQmxvY2tPdXRwdXQ8VD4gPSB7IC4uLm91dHB1dCwgYXR0YWNoZWRCbG9ja3M6IFtdIH07XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgYyBvZiBvdXRwdXQuYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV3T3V0cHV0LmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYmxvY2sucmVwbGFjZURlcGVuZGVuY2llc0luT3V0cHV0KGMucHJvcHMsIHJlcGxhY2VtZW50cyksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXdPdXRwdXQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGVmaW5lc093blBhZGRpbmc6IHRydWUsXG5cbiAgICAgICAgQWRtaW5Db21wb25lbnQ6ICh7IHN0YXRlLCB1cGRhdGVTdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0luUGFwZXIgPSB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIoKTtcblxuICAgICAgICAgICAgY29uc3QgeyBzY29wZSB9ID0gdXNlQ29udGVudFNjb3BlKCk7XG4gICAgICAgICAgICBjb25zdCB7IGlzQmxvY2tTdXBwb3J0ZWQgfSA9IHVzZUJsb2Nrc0NvbmZpZygpO1xuXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzQmxvY2tTdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRTdXBwb3J0ZWRCbG9ja3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhzdXBwb3J0ZWRCbG9ja3MpLmZpbHRlcigoWywgYmxvY2tdKSA9PiBpc0Jsb2NrU3VwcG9ydGVkKGJsb2NrLCBzY29wZSkpLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gc3VwcG9ydGVkQmxvY2tzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IEFycmF5PHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IFJlYWN0Tm9kZSB9PiA9IGFsbG93RW1wdHlcbiAgICAgICAgICAgICAgICAgICAgPyBbeyB2YWx1ZTogXCJub25lXCIsIGxhYmVsOiA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImNvbWV0LmJsb2Nrcy5vbmVPZkJsb2NrLmVtcHR5XCIgZGVmYXVsdE1lc3NhZ2U9XCJOb25lXCIgLz4gfV1cbiAgICAgICAgICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzKS5mb3JFYWNoKChbYmxvY2tUeXBlLCBibG9ja10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYmxvY2suZGlzcGxheU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgICAgICB9LCBbc2NvcGUsIGlzQmxvY2tTdXBwb3J0ZWRdKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQmxvY2tTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgICAgICAgICAoYmxvY2tUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1N0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSBwcmV2U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlID09PSBcIm5vbmVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVuc2VsZWN0LCBubyBibG9jayBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0geyAuLi5wcmV2U3RhdGUsIGFjdGl2ZVR5cGU6IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIGEgYmxvY2sgb2YgdGhlIHNhbWUgdHlwZSBhbHJlYWR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBwcmV2U3RhdGUuYXR0YWNoZWRCbG9ja3MuZmluZCgoYykgPT4gYy50eXBlID09PSBibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGFuIGV4aXN0aW5nIGJsb2NrIHdpdGggc2FtZSB0eXBlLCBzbyBzZWxlY3QgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBubyBleGlzdGluZyBibG9jaywgd2UgbmVlZCB0byBjcmVhdGUgYW5kIHNlbGVjdCBhIG5ldyBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7YmxvY2tUeXBlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SXRlbTogT25lT2ZCbG9ja0l0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFsuLi5wcmV2U3RhdGUuYXR0YWNoZWRCbG9ja3MsIG5ld0l0ZW1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFuIHVwIHRoZSBwcmV2aW91cyBzZWxlY3RlZCBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBwcmV2aW91cyBibG9jayBoYXMgbm8gdmFsdWVzICh2YWx1ZXMgYXJlIGVxdWFsIHRvIGRlZmF1bHQgdmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSByZW1vdmUgdGhlIGJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHByZXZlbnRzIGZyb20gc2F2aW5nIHBvc3NpYmx5IGludmFsaWQgYmxvY2tzIGZvciBpcnJlbGV2YW50IChub3Qgc2VsZWN0ZWQpIGJsb2Nrc1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2socHJldlN0YXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhuZXdTdGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1NlbGVjdGVkQmxvY2suYmxvY2sgJiYgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlICYmIG5ld1NlbGVjdGVkQmxvY2sudHlwZSAhPT0gcHJldmlvdXNTZWxlY3RlZEJsb2NrLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNFcXVhbChwcmV2aW91c1NlbGVjdGVkQmxvY2suYmxvY2suZGVmYXVsdFZhbHVlcygpLCBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUucHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogbmV3U3RhdGUuYXR0YWNoZWRCbG9ja3MuZmlsdGVyKChjKSA9PiBjLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZS50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgY3JlYXRlVXBkYXRlU3ViQmxvY2tzRm4gPSB1c2VDYWxsYmFjayhcbiAgICAgICAgICAgICAgICAoYmxvY2tUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU3ViQmxvY2tzRm46IERpc3BhdGNoPFNldFN0YXRlQWN0aW9uPGFueT4+ID0gKHNldFN0YXRlQWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcCgoYykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy50eXBlID09PSBibG9ja1R5cGUgPyB7IC4uLmMsIHByb3BzOiByZXNvbHZlTmV3U3RhdGUoeyBwcmV2U3RhdGU6IGMucHJvcHMsIHNldFN0YXRlQWN0aW9uIH0pIH0gOiBjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdWJCbG9ja3NGbjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFt1cGRhdGVTdGF0ZV0sXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQmxvY2tUeXBlID0gYWN0aXZlQmxvY2suYmxvY2sgPyBhY3RpdmVCbG9jay5zdGF0ZS50eXBlIDogXCJub25lXCI7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFNlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxIaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nQm90dG9tPXtpc0luUGFwZXIgPyAwIDogM30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJsb2Nrc0ZpbmFsRm9ybTx7IGJsb2NrVHlwZTogc3RyaW5nIH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXsoeyBibG9ja1R5cGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmxvY2tTZWxlY3QoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tUeXBlOiBzZWxlY3RlZEJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYW50ID09PSBcInNlbGVjdFwiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nPXtpc0luUGFwZXIgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgb3B0aW9ucz17b3B0aW9uc30gZnVsbFdpZHRoIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzSW5QYXBlciAmJiBhY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJyYWRpb1wiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBkaXNwbGF5PVwiZmxleFwiIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBwYWRkaW5nPXszfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvR3JvdXBGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgZnVsbFdpZHRoIG9wdGlvbnM9e29wdGlvbnN9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYW50ID09PSBcInRvZ2dsZVwiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nPXtpc0luUGFwZXIgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgZnVsbFdpZHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlucHV0OiB7IHZhbHVlLCBvbkNoYW5nZSB9IH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9nZ2xlQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50LCBibG9ja1R5cGU6IHN0cmluZyB8IG51bGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChibG9ja1R5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZShibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9nZ2xlQnV0dG9uIHZhbHVlPXtvcHRpb24udmFsdWV9IGtleT17b3B0aW9uLnZhbHVlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub2dnbGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uR3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Jsb2Nrc0ZpbmFsRm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8L0hpZGRlbkluU3Vicm91dGU+XG4gICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiBhY3RpdmVCbG9jay5zdGF0ZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyICYmICFhY3RpdmVCbG9jay5ibG9jay5kZWZpbmVzT3duUGFkZGluZyA/IDMgOiAwfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SG92ZXJQcmV2aWV3Q29tcG9uZW50IGtleT17YWN0aXZlQmxvY2sudHlwZX0gY29tcG9uZW50U2x1Zz17YCMke2FjdGl2ZUJsb2NrLnR5cGV9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3RpdmVCbG9jay5ibG9jay5BZG1pbkNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU9e2FjdGl2ZUJsb2NrLnN0YXRlLnByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGU9e2NyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuKGFjdGl2ZUJsb2NrLnN0YXRlLnR5cGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSG92ZXJQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU2VsZWN0UHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZXZpZXdDb250ZW50OiAoc3RhdGUsIGN0eCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGFjdGl2ZUJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICYmIGFjdGl2ZUJsb2NrU3RhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2sucHJldmlld0NvbnRlbnQoYWN0aXZlQmxvY2tTdGF0ZS5wcm9wcywgY3R4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGR5bmFtaWNEaXNwbGF5TmFtZTogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGJsb2NrLCBzdGF0ZTogYmxvY2tTdGF0ZSB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2sgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5keW5hbWljRGlzcGxheU5hbWU/LihibG9ja1N0YXRlLnByb3BzKSA/PyBibG9jay5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGljb246IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suaWNvbj8uKGJsb2NrU3RhdGUucHJvcHMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGV4dHJhY3RUZXh0Q29udGVudHM6IChzdGF0ZSwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPSBvcHRpb25zPy5pbmNsdWRlSW52aXNpYmxlQ29udGVudCA/PyBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHN0YXRlLmF0dGFjaGVkQmxvY2tzLnJlZHVjZTxzdHJpbmdbXT4oKGNvbnRlbnQsIGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Y2hpbGQudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLnR5cGUgIT09IHN0YXRlLmFjdGl2ZVR5cGUgJiYgIWluY2x1ZGVJbnZpc2libGVDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBbLi4uY29udGVudCwgLi4uKGJsb2NrLmV4dHJhY3RUZXh0Q29udGVudHM/LihjaGlsZC5wcm9wcywgb3B0aW9ucykgPz8gW10pXTtcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */",
633
+ styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZnQnNEIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlQ29udGVudDogYXN5bmMgKHN0YXRlLCB0cmFuc2xhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjaGlsZC50eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFByb3BzID0gYmxvY2sudHJhbnNsYXRlQ29udGVudCA/IGF3YWl0IGJsb2NrLnRyYW5zbGF0ZUNvbnRlbnQoY2hpbGQucHJvcHMsIHRyYW5zbGF0ZSkgOiBjaGlsZC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uY2hpbGQsIHByb3BzOiB0cmFuc2xhdGVkUHJvcHMgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgYXR0YWNoZWRCbG9ja3M6IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */",
577
634
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
578
635
  });
579
636
  var ToggleButton = /*#__PURE__*/styled(MuiToggleButton, process.env.NODE_ENV === "production" ? {
@@ -581,7 +638,7 @@ var ToggleButton = /*#__PURE__*/styled(MuiToggleButton, process.env.NODE_ENV ===
581
638
  } : {
582
639
  target: "en4ucky0",
583
640
  label: "ToggleButton"
584
- })("flex:1;color:", function (_ref11) {
585
- var theme = _ref11.theme;
641
+ })("flex:1;color:", function (_ref12) {
642
+ var theme = _ref12.theme;
586
643
  return theme.palette.text.primary;
587
- }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1nQjRDIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICByZXR1cm4gb3ZlcnJpZGUoT25lT2ZCbG9jayk7XG4gICAgfVxuICAgIHJldHVybiBPbmVPZkJsb2NrO1xufTtcblxuY29uc3QgVG9nZ2xlQnV0dG9uR3JvdXAgPSBzdHlsZWQoTXVpVG9nZ2xlQnV0dG9uR3JvdXApYFxuICAgIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5jb25zdCBUb2dnbGVCdXR0b24gPSBzdHlsZWQoTXVpVG9nZ2xlQnV0dG9uKWBcbiAgICBmbGV4OiAxO1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbmA7XG4iXX0= */"));
644
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWloQjRDIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlQ29udGVudDogYXN5bmMgKHN0YXRlLCB0cmFuc2xhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjaGlsZC50eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFByb3BzID0gYmxvY2sudHJhbnNsYXRlQ29udGVudCA/IGF3YWl0IGJsb2NrLnRyYW5zbGF0ZUNvbnRlbnQoY2hpbGQucHJvcHMsIHRyYW5zbGF0ZSkgOiBjaGlsZC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uY2hpbGQsIHByb3BzOiB0cmFuc2xhdGVkUHJvcHMgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgYXR0YWNoZWRCbG9ja3M6IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */"));
@@ -1 +1 @@
1
- {"version":3,"file":"createOptionalBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOptionalBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAkB,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM1F,MAAM,WAAW,kBAAkB,CAAC,cAAc,SAAS,cAAc;IACrE,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B,CAAC,cAAc,SAAS,cAAc;IACjF,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,cAAc,SAAS,cAAc;IACtE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EACxD,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAA;CAAE,EACxF,QAAQ,CAAC,EAAE,CACP,KAAK,EAAE,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,KACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAiKlG"}
1
+ {"version":3,"file":"createOptionalBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOptionalBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAkB,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM1F,MAAM,WAAW,kBAAkB,CAAC,cAAc,SAAS,cAAc;IACrE,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B,CAAC,cAAc,SAAS,cAAc;IACjF,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,cAAc,SAAS,cAAc;IACtE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EACxD,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAA;CAAE,EACxF,QAAQ,CAAC,EAAE,CACP,KAAK,EAAE,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,KACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAyKlG"}
@@ -207,7 +207,44 @@ export function createOptionalBlock(decoratedBlock, options, override) {
207
207
  return (_decoratedBlock$extra = (_decoratedBlock$extra2 = decoratedBlock.extractTextContents) === null || _decoratedBlock$extra2 === void 0 ? void 0 : _decoratedBlock$extra2.call(decoratedBlock, state.block, options)) !== null && _decoratedBlock$extra !== void 0 ? _decoratedBlock$extra : [];
208
208
  }
209
209
  return [];
210
- }
210
+ },
211
+ translateContent: function () {
212
+ var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(state, translate) {
213
+ var translatedBlock, _t6;
214
+ return _regenerator().w(function (_context3) {
215
+ while (1) switch (_context3.n) {
216
+ case 0:
217
+ if (!(state.block === undefined)) {
218
+ _context3.n = 1;
219
+ break;
220
+ }
221
+ return _context3.a(2, state);
222
+ case 1:
223
+ if (!decoratedBlock.translateContent) {
224
+ _context3.n = 3;
225
+ break;
226
+ }
227
+ _context3.n = 2;
228
+ return decoratedBlock.translateContent(state.block, translate);
229
+ case 2:
230
+ _t6 = _context3.v;
231
+ _context3.n = 4;
232
+ break;
233
+ case 3:
234
+ _t6 = state.block;
235
+ case 4:
236
+ translatedBlock = _t6;
237
+ return _context3.a(2, _objectSpread(_objectSpread({}, state), {}, {
238
+ block: translatedBlock
239
+ }));
240
+ }
241
+ }, _callee3);
242
+ }));
243
+ function translateContent(_x4, _x5) {
244
+ return _translateContent.apply(this, arguments);
245
+ }
246
+ return translateContent;
247
+ }()
211
248
  });
212
249
  if (override) {
213
250
  return override(OptionalBlock);
@@ -1 +1 @@
1
- {"version":3,"file":"composeBlocks.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/composeBlocks.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAmB,cAAc,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAIjG,OAAO,KAAK,EACR,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,UAAU,EAEb,MAAM,SAAS,CAAC;AAKjB,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,qBAAqB,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAQhJ,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IAC5D,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,GAAG,EAAE;QACD,mBAAmB,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC9I,eAAe,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtI,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3E,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC;CACL,CAAC;AAIF,wBAAgB,aAAa,CAAC,CAAC,SAAS,qBAAqB,EAAE,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAmNtG"}
1
+ {"version":3,"file":"composeBlocks.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/composeBlocks.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAmB,cAAc,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAIjG,OAAO,KAAK,EACR,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,UAAU,EAEb,MAAM,SAAS,CAAC;AAKjB,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,qBAAqB,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAQhJ,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IAC5D,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,GAAG,EAAE;QACD,mBAAmB,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC9I,eAAe,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtI,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3E,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC;CACL,CAAC;AAIF,wBAAgB,aAAa,CAAC,CAAC,SAAS,qBAAqB,EAAE,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CA8NtG"}
@@ -268,22 +268,58 @@ export function composeBlocks(compositeBlocks) {
268
268
  return Object.values(contentsPerBlock).reduce(function (contents, blockContents) {
269
269
  return [].concat(_toConsumableArray(contents), _toConsumableArray(blockContents));
270
270
  }, []);
271
- }
271
+ },
272
+ translateContent: function () {
273
+ var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(state, translate) {
274
+ var translatedState;
275
+ return _regenerator().w(function (_context3) {
276
+ while (1) switch (_context3.n) {
277
+ case 0:
278
+ _context3.n = 1;
279
+ return applyToCompositeBlocksAsync(compositeBlocks, /*#__PURE__*/function () {
280
+ var _ref31 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref30, attr) {
281
+ var _ref32, block, options, extractedData;
282
+ return _regenerator().w(function (_context2) {
283
+ while (1) switch (_context2.n) {
284
+ case 0:
285
+ _ref32 = _slicedToArray(_ref30, 2), block = _ref32[0], options = _ref32[1];
286
+ extractedData = extractData([block, options], attr, state);
287
+ return _context2.a(2, block.translateContent ? block.translateContent(extractedData, translate) : extractedData);
288
+ }
289
+ }, _callee2);
290
+ }));
291
+ return function (_x4, _x5) {
292
+ return _ref31.apply(this, arguments);
293
+ };
294
+ }(), {
295
+ flatten: true
296
+ });
297
+ case 1:
298
+ translatedState = _context3.v;
299
+ return _context3.a(2, _objectSpread(_objectSpread({}, state), translatedState));
300
+ }
301
+ }, _callee3);
302
+ }));
303
+ function translateContent(_x2, _x3) {
304
+ return _translateContent.apply(this, arguments);
305
+ }
306
+ return translateContent;
307
+ }()
272
308
  },
273
309
  api: {
274
310
  adminComponentProps: adminComponentProps,
275
311
  adminComponents: function adminComponents(props) {
276
- return applyToCompositeBlocks(compositeBlocks, function (_ref30, attr) {
277
- var _ref31 = _slicedToArray(_ref30, 1),
278
- block = _ref31[0];
312
+ return applyToCompositeBlocks(compositeBlocks, function (_ref33, attr) {
313
+ var _ref34 = _slicedToArray(_ref33, 1),
314
+ block = _ref34[0];
279
315
  return /*#__PURE__*/_jsx(block.AdminComponent, _objectSpread({}, adminComponentProps(props)[attr]));
280
316
  });
281
317
  },
282
318
  previews: function previews(state, ctx) {
283
- return applyToCompositeBlocks(compositeBlocks, function (_ref32, attr) {
284
- var _ref33 = _slicedToArray(_ref32, 2),
285
- block = _ref33[0],
286
- options = _ref33[1];
319
+ return applyToCompositeBlocks(compositeBlocks, function (_ref35, attr) {
320
+ var _ref36 = _slicedToArray(_ref35, 2),
321
+ block = _ref36[0],
322
+ options = _ref36[1];
287
323
  if (isBlockInterface(block)) {
288
324
  var extractedData = extractData([block, options], attr, state);
289
325
  return /*#__PURE__*/_jsx(BlockPreviewContent, {
@@ -297,10 +333,10 @@ export function composeBlocks(compositeBlocks) {
297
333
  });
298
334
  },
299
335
  childBlockCounts: function childBlockCounts(state) {
300
- return applyToCompositeBlocks(compositeBlocks, function (_ref34, attr) {
301
- var _ref35 = _slicedToArray(_ref34, 2),
302
- block = _ref35[0],
303
- options = _ref35[1];
336
+ return applyToCompositeBlocks(compositeBlocks, function (_ref37, attr) {
337
+ var _ref38 = _slicedToArray(_ref37, 2),
338
+ block = _ref38[0],
339
+ options = _ref38[1];
304
340
  if (isBlockInterface(block)) {
305
341
  var _block$childBlockCoun, _block$childBlockCoun2;
306
342
  var extractedData = extractData([block, options], attr, state);
@@ -312,10 +348,10 @@ export function composeBlocks(compositeBlocks) {
312
348
  },
313
349
  // A map of isValid-fns for each block, the partial state is bound to the fn, so it takes no arguments
314
350
  isValids: function isValids(state) {
315
- return applyToCompositeBlocks(compositeBlocks, function (_ref36, attr) {
316
- var _ref37 = _slicedToArray(_ref36, 2),
317
- block = _ref37[0],
318
- options = _ref37[1];
351
+ return applyToCompositeBlocks(compositeBlocks, function (_ref39, attr) {
352
+ var _ref40 = _slicedToArray(_ref39, 2),
353
+ block = _ref40[0],
354
+ options = _ref40[1];
319
355
  var extractedData = extractData([block, options], attr, state);
320
356
  return function () {
321
357
  var _block$isValid;
@@ -4,8 +4,9 @@ interface Options<State> {
4
4
  AdminComponent: BlockAdminComponent<State>;
5
5
  definesOwnPadding?: boolean;
6
6
  extractTextContents?: BlockMethods["extractTextContents"];
7
+ translateContent?: BlockMethods["translateContent"];
7
8
  }
8
- export declare function createCompositeBlockField<State>({ defaultValue, AdminComponent, definesOwnPadding, extractTextContents, }: Options<State>): [AnonymousBlockInterface<State, State, State, State>, {
9
+ export declare function createCompositeBlockField<State>({ defaultValue, AdminComponent, definesOwnPadding, extractTextContents, translateContent, }: Options<State>): [AnonymousBlockInterface<State, State, State, State>, {
9
10
  flatten: false;
10
11
  }];
11
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"createCompositeBlockField.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/createCompositeBlockField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9F,UAAU,OAAO,CAAC,KAAK;IACnB,YAAY,EAAE,KAAK,CAAC;IACpB,cAAc,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC;CAC7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,EAC7C,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACtB,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,CAW5F"}
1
+ {"version":3,"file":"createCompositeBlockField.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/createCompositeBlockField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9F,UAAU,OAAO,CAAC,KAAK;IACnB,YAAY,EAAE,KAAK,CAAC;IACpB,cAAc,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAC1D,gBAAgB,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CACvD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,EAC7C,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACnB,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,CAY5F"}
@@ -3,12 +3,14 @@ export function createCompositeBlockField(_ref) {
3
3
  var defaultValue = _ref.defaultValue,
4
4
  AdminComponent = _ref.AdminComponent,
5
5
  definesOwnPadding = _ref.definesOwnPadding,
6
- extractTextContents = _ref.extractTextContents;
6
+ extractTextContents = _ref.extractTextContents,
7
+ translateContent = _ref.translateContent;
7
8
  return [createSettingsAnonymousBlock({
8
9
  defaultValues: defaultValue,
9
10
  AdminComponent: AdminComponent,
10
11
  definesOwnPadding: definesOwnPadding,
11
- extractTextContents: extractTextContents
12
+ extractTextContents: extractTextContents,
13
+ translateContent: translateContent
12
14
  }), {
13
15
  flatten: false
14
16
  }];
@@ -5,7 +5,8 @@ interface Options<State> {
5
5
  isValid?: (values: State) => boolean | Promise<boolean>;
6
6
  definesOwnPadding?: boolean;
7
7
  extractTextContents?: BlockMethods["extractTextContents"];
8
+ translateContent?: BlockMethods["translateContent"];
8
9
  }
9
- export declare function createSettingsAnonymousBlock<State>({ defaultValues, AdminComponent, isValid, definesOwnPadding, extractTextContents, }: Options<State>): AnonymousBlockInterface<State, State, State, State>;
10
+ export declare function createSettingsAnonymousBlock<State>({ defaultValues, AdminComponent, isValid, definesOwnPadding, extractTextContents, translateContent, }: Options<State>): AnonymousBlockInterface<State, State, State, State>;
10
11
  export {};
11
12
  //# sourceMappingURL=createSettingsBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSettingsBlock.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/createSettingsBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9F,UAAU,OAAO,CAAC,KAAK;IACnB,aAAa,EAAE,KAAK,CAAC;IACrB,cAAc,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC;CAC7D;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,EAChD,aAAa,EACb,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,mBAAmB,GACtB,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CA0BtE"}
1
+ {"version":3,"file":"createSettingsBlock.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/createSettingsBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9F,UAAU,OAAO,CAAC,KAAK;IACnB,aAAa,EAAE,KAAK,CAAC;IACrB,cAAc,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAC1D,gBAAgB,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CACvD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,EAChD,aAAa,EACb,cAAc,EACd,OAAO,EACP,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACnB,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CA6BtE"}
@@ -20,7 +20,8 @@ export function createSettingsAnonymousBlock(_ref) {
20
20
  AdminComponent = _ref.AdminComponent,
21
21
  isValid = _ref.isValid,
22
22
  definesOwnPadding = _ref.definesOwnPadding,
23
- extractTextContents = _ref.extractTextContents;
23
+ extractTextContents = _ref.extractTextContents,
24
+ translateContent = _ref.translateContent;
24
25
  var AnonymousSettingsBlock = _objectSpread(_objectSpread({}, createBlockSkeleton()), {}, {
25
26
  defaultValues: function defaultValues() {
26
27
  return _defaultValues;
@@ -57,6 +58,9 @@ export function createSettingsAnonymousBlock(_ref) {
57
58
  if (extractTextContents) {
58
59
  AnonymousSettingsBlock.extractTextContents = extractTextContents;
59
60
  }
61
+ if (translateContent) {
62
+ AnonymousSettingsBlock.translateContent = translateContent;
63
+ }
60
64
  return AnonymousSettingsBlock;
61
65
  }
62
66
  function copy(value) {