@kontur.candy/tools 2.129.0 → 2.131.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +6 -6
  3. package/distr/Common/AsyncUtils.js +1 -30
  4. package/distr/Common/CandyApiClient/CandyApiClient.js +56 -39
  5. package/distr/Common/CandyApiClient/CandyApiClientContext.js +1 -33
  6. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +0 -4
  7. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +0 -4
  8. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +1 -29
  9. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +0 -4
  10. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +1 -35
  11. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +1 -35
  12. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +1 -37
  13. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +1 -29
  14. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +1 -34
  15. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +1 -28
  16. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +0 -4
  17. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +1 -33
  18. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +1 -29
  19. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +1 -6
  20. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +0 -4
  21. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestResponse.js +0 -4
  22. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +22 -38
  23. package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -5
  24. package/distr/Common/CandyApiClient/IsBuffer.js +1 -29
  25. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +0 -4
  26. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +0 -4
  27. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +0 -4
  28. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +0 -4
  29. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +0 -4
  30. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +1 -6
  31. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +0 -4
  32. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +0 -4
  33. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +11 -0
  34. package/distr/Common/CandyApiClient/Types/DraftFullId.js +0 -4
  35. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +0 -4
  36. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +1 -6
  37. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +0 -4
  38. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +0 -4
  39. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +1 -6
  40. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +0 -4
  41. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +0 -4
  42. package/distr/Common/CandyApiClient/Types/Guid.js +0 -4
  43. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +1 -6
  44. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +0 -4
  45. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +0 -4
  46. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +1 -6
  47. package/distr/Common/CommonConstants/SectionNames.js +1 -28
  48. package/distr/Common/Comparers.js +8 -30
  49. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +1 -29
  50. package/distr/Common/EndPoints.js +1 -34
  51. package/distr/Common/Errors.js +3 -71
  52. package/distr/Common/FormActionHandlers/ContextualActionNames.js +1 -30
  53. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +0 -4
  54. package/distr/Common/Funcs.js +1 -29
  55. package/distr/Common/GFV.js +0 -4
  56. package/distr/Common/Hooks/UseLocalStorage.js +42 -0
  57. package/distr/Common/HttpClient/AuthenticationMode.js +1 -32
  58. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +12 -0
  59. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +1 -29
  60. package/distr/Common/HttpClient/FetchImplementation/Fetch.js +0 -4
  61. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +1 -30
  62. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +3 -31
  63. package/distr/Common/HttpClient/HttpClient.js +12 -56
  64. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +0 -4
  65. package/distr/Common/HttpClient/IHttpClient.js +0 -4
  66. package/distr/Common/IndentString.js +18 -0
  67. package/distr/Common/IntRangeUtils.js +1 -31
  68. package/distr/Common/IterableUtils.js +23 -38
  69. package/distr/Common/KCLangRuntimeUtils.js +3 -38
  70. package/distr/Common/ModelPath/BuildIterationSequence.js +3 -31
  71. package/distr/Common/ModelPath/EachCurrentCollision.js +1 -6
  72. package/distr/Common/ModelPath/IEquatable.js +0 -4
  73. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +30 -0
  74. package/distr/Common/ModelPath/Map/Map2.js +103 -0
  75. package/distr/Common/ModelPath/Map/ModelPathMap.js +30 -0
  76. package/distr/Common/ModelPath/ModelPath.js +206 -206
  77. package/distr/Common/ModelPath/ModelPathBuilder.js +11 -40
  78. package/distr/Common/ModelPath/ModelPathHelper.js +13 -0
  79. package/distr/Common/ModelPath/PathMatcher.js +8 -37
  80. package/distr/Common/ModelPath/PathSplitHelper.js +26 -0
  81. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +40 -0
  82. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +40 -0
  83. package/distr/Common/ModelPath/Set/ModelPathSet.js +40 -0
  84. package/distr/Common/ModelPath/Set/Set2.js +60 -0
  85. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +1 -34
  86. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +0 -4
  87. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +1 -29
  88. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +1 -34
  89. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +1 -38
  90. package/distr/Common/NidusClient/INidusClient.js +1 -30
  91. package/distr/Common/NidusClient/NidusClientContext.js +1 -38
  92. package/distr/Common/NidusClient/NidusClientImpl.js +1 -34
  93. package/distr/Common/PathConstants.js +3 -31
  94. package/distr/Common/TypingUtils.js +6 -50
  95. package/distr/Common/UUID.js +1 -30
  96. package/distr/Common/UseAsyncEffect.js +1 -31
  97. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +3 -36
  98. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +1 -29
  99. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +1 -30
  100. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +3 -36
  101. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +3 -36
  102. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +1 -29
  103. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +3 -34
  104. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +1 -28
  105. package/distr/Tools/src/BuildTasks/FSTask.js +3 -30
  106. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +3 -32
  107. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +1 -37
  108. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +1 -34
  109. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +3 -31
  110. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +1 -29
  111. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +1 -31
  112. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +3 -36
  113. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +3 -37
  114. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +2 -37
  115. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +2 -34
  116. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +1 -5
  117. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +1 -5
  118. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +3 -33
  119. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +1 -28
  120. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +3 -30
  121. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +1 -34
  122. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +1 -45
  123. package/distr/Tools/src/BuildTasks/ReadFormSource.js +4 -39
  124. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +3 -33
  125. package/distr/Tools/src/BuildTasks/Version.js +1 -32
  126. package/distr/Tools/src/BuildTasks/WriteFormMeta.js +3 -31
  127. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +1 -30
  128. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +7 -34
  129. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +3 -33
  130. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +1 -34
  131. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +1 -29
  132. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +6 -37
  133. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +6 -47
  134. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +26 -43
  135. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +6 -40
  136. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +6 -38
  137. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +6 -37
  138. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +6 -39
  139. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +6 -37
  140. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +6 -39
  141. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +3 -36
  142. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +3 -36
  143. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +12 -37
  144. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +3 -31
  145. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +5 -35
  146. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +4 -36
  147. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +3 -31
  148. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +0 -4
  149. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +0 -4
  150. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +2 -42
  151. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +3 -36
  152. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +1 -29
  153. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +0 -4
  154. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +1 -30
  155. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +1 -29
  156. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +1 -29
  157. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +1 -30
  158. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +0 -4
  159. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +1 -28
  160. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +3 -31
  161. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +1 -28
  162. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +3 -31
  163. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +6 -40
  164. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}.calc.js +1 -30
  165. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/setKppValue.js +1 -29
  166. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +1 -34
  167. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +6 -37
  168. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/kppValue.js +1 -29
  169. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +1 -28
  170. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +1 -30
  171. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +1 -28
  172. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +3 -32
  173. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +1 -32
  174. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +1 -29
  175. package/distr/Tools/src/CandyCLI.js +3 -31
  176. package/distr/Tools/src/CheckNodeJsVersion.js +3 -33
  177. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +4 -35
  178. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +1 -34
  179. package/distr/Tools/src/Commons/ErrorUntyped.js +0 -4
  180. package/distr/Tools/src/Commons/EventObject.js +2 -44
  181. package/distr/Tools/src/Commons/ExecUtils.js +1 -29
  182. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +1 -29
  183. package/distr/Tools/src/Commons/FormGlobsUtils.js +3 -36
  184. package/distr/Tools/src/Commons/FsUtils.js +3 -34
  185. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +1 -32
  186. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +2 -33
  187. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +1 -34
  188. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +1 -34
  189. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +0 -4
  190. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +1 -34
  191. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +1 -34
  192. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +2 -34
  193. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +1 -34
  194. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +1 -36
  195. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +1 -34
  196. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +1 -34
  197. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +1 -34
  198. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +1 -34
  199. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +0 -4
  200. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +1 -34
  201. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +1 -34
  202. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +3 -57
  203. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +1 -28
  204. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +3 -36
  205. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +1 -34
  206. package/distr/Tools/src/Commons/Locks/Lock.js +3 -36
  207. package/distr/Tools/src/Commons/Locks/LockHandle.js +1 -34
  208. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +3 -36
  209. package/distr/Tools/src/Commons/Logging/ELKLogger.js +3 -33
  210. package/distr/Tools/src/Commons/Logging/ILogger.js +1 -36
  211. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +1 -41
  212. package/distr/Tools/src/Commons/Logging/Logger.js +3 -36
  213. package/distr/Tools/src/Commons/Logging/StaticLogger.js +1 -38
  214. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +1 -30
  215. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +6 -53
  216. package/distr/Tools/src/Commons/PathPattern.js +1 -34
  217. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +1 -34
  218. package/distr/Tools/src/Commons/TasksCore/BuildTask.js +0 -4
  219. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +3 -89
  220. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +3 -36
  221. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +1 -34
  222. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +3 -36
  223. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +3 -36
  224. package/distr/Tools/src/Commons/TasksCore/Observe.js +1 -28
  225. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +1 -34
  226. package/distr/Tools/src/Commons/TimingUtils.js +1 -29
  227. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +55 -48
  228. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +8 -36
  229. package/distr/Tools/src/GenerateReadMe.js +1 -31
  230. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
  231. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  232. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  233. package/distr/Tools/src/Options/CandyToolOptions.js +1 -28
  234. package/distr/Tools/src/ReadFarmConfig.js +3 -31
  235. package/distr/Tools/src/SelfUpdate.js +4 -36
  236. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1000 -2036
  237. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  238. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +366 -361
  239. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  240. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +1 -5
  241. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +1 -5
  242. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +1 -5
  243. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +1 -5
  244. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +1 -5
  245. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +1 -5
  246. package/package.json +9 -8
  247. package/distr/Common/ModelPath/AbsoluteModelPathSet.js +0 -95
  248. package/distr/Common/ModelPath/ModelPathMap.js +0 -160
  249. package/distr/Common/ModelPath/ModelPathSet.js +0 -99
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -13,17 +15,6 @@ var _FsUtils = require("../Commons/FsUtils");
13
15
 
14
16
  var _EngineVersionUtils = require("./EngineVersionUtils");
15
17
 
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- (function () {
19
- var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
20
- enterModule && enterModule(module);
21
- })();
22
-
23
- var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
24
- return a;
25
- };
26
-
27
18
  async function writeFormMeta(resourcesPath, formName, engineSources, resourcesHash, themes, buildCache, buildCacheOptions) {
28
19
  await (0, _fsExtra.ensureDir)(_path.default.join(resourcesPath, "metas"));
29
20
  const formMetaContent = {
@@ -42,23 +33,4 @@ async function writeFormMeta(resourcesPath, formName, engineSources, resourcesHa
42
33
  await buildCache.setContent(buildCacheOptions.generatorVersion, buildCacheOptions.gfv, buildCacheOptions.depsHash, resourcesPath, _path.default.join("metas", `${formName}.metas.json`), content);
43
34
  }
44
35
  }
45
-
46
- ;
47
-
48
- (function () {
49
- var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
50
-
51
- if (!reactHotLoader) {
52
- return;
53
- }
54
-
55
- reactHotLoader.register(writeFormMeta, "writeFormMeta", "C:\\buildAgent\\work\\8df8f1edd755969c\\Tools\\src\\BuildTasks\\WriteFormMeta.ts");
56
- })();
57
-
58
- ;
59
-
60
- (function () {
61
- var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
62
- leaveModule && leaveModule(module);
63
- })();
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL1dyaXRlRm9ybU1ldGEudHMiXSwibmFtZXMiOlsid3JpdGVGb3JtTWV0YSIsInJlc291cmNlc1BhdGgiLCJmb3JtTmFtZSIsImVuZ2luZVNvdXJjZXMiLCJyZXNvdXJjZXNIYXNoIiwidGhlbWVzIiwiYnVpbGRDYWNoZSIsImJ1aWxkQ2FjaGVPcHRpb25zIiwicGF0aCIsImpvaW4iLCJmb3JtTWV0YUNvbnRlbnQiLCJlbmdpbmVOYW1lIiwidHlwZSIsIkVuZ2luZVZlcnNpb25VdGlscyIsImVuZ2luZVZlcnNpb25Ub05hbWUiLCJ2ZXJzaW9uIiwidW5kZWZpbmVkIiwiY29udGVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZXRDb250ZW50IiwiZ2VuZXJhdG9yVmVyc2lvbiIsImdmdiIsImRlcHNIYXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRUE7O0FBRUE7O0FBSUE7Ozs7Ozs7Ozs7Ozs7QUFRTyxlQUFlQSxhQUFmLENBQ0hDLGFBREcsRUFFSEMsUUFGRyxFQUdIQyxhQUhHLEVBSUhDLGFBSkcsRUFLSEMsTUFMRyxFQU1IQyxVQU5HLEVBT0hDLGlCQVBHLEVBUVU7QUFDYixRQUFNLHdCQUFVQyxjQUFLQyxJQUFMLENBQVVSLGFBQVYsRUFBeUIsT0FBekIsQ0FBVixDQUFOO0FBQ0EsUUFBTVMsZUFBZ0MsR0FBRztBQUNyQ0MsSUFBQUEsVUFBVSxFQUNOUixhQUFhLENBQUNTLElBQWQsS0FBdUIsb0JBQXZCLEdBQ00sT0FETixHQUVNQyx1Q0FBbUJDLG1CQUFuQixDQUF1Q1gsYUFBYSxDQUFDWSxPQUFyRCxDQUoyQjtBQUtyQ1gsSUFBQUEsYUFBYSxFQUFFQTtBQUxzQixHQUF6Qzs7QUFPQSxNQUFJQyxNQUFNLElBQUlXLFNBQWQsRUFBeUI7QUFDckJOLElBQUFBLGVBQWUsQ0FBQ0wsTUFBaEIsR0FBeUJBLE1BQXpCO0FBQ0g7O0FBQ0QsUUFBTVksT0FBTyxHQUFHQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsZUFBZixFQUFnQ00sU0FBaEMsRUFBMkMsSUFBM0MsQ0FBaEI7QUFDQSxRQUFNLDZCQUFlUixjQUFLQyxJQUFMLENBQVVSLGFBQVYsRUFBeUIsT0FBekIsRUFBbUMsR0FBRUMsUUFBUyxhQUE5QyxDQUFmLEVBQTRFZSxPQUE1RSxFQUFxRixNQUFyRixDQUFOOztBQUNBLE1BQUlYLFVBQVUsSUFBSVUsU0FBZCxJQUEyQlQsaUJBQWlCLElBQUlTLFNBQXBELEVBQStEO0FBQzNELFVBQU1WLFVBQVUsQ0FBQ2MsVUFBWCxDQUNGYixpQkFBaUIsQ0FBQ2MsZ0JBRGhCLEVBRUZkLGlCQUFpQixDQUFDZSxHQUZoQixFQUdGZixpQkFBaUIsQ0FBQ2dCLFFBSGhCLEVBSUZ0QixhQUpFLEVBS0ZPLGNBQUtDLElBQUwsQ0FBVSxPQUFWLEVBQW9CLEdBQUVQLFFBQVMsYUFBL0IsQ0FMRSxFQU1GZSxPQU5FLENBQU47QUFRSDtBQUNKOzs7Ozs7Ozs7OzswQkFoQ3FCakIsYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGVuc3VyZURpciB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyB3cml0ZUZpbGVBc3luYyB9IGZyb20gXCIuLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IEJ1aWxkQ2FjaGUsIEZvcm1CdWlsZENhY2hlT3B0aW9ucyB9IGZyb20gXCIuLi9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vQ2FjaGVBc3NldHNQbHVnaW5cIjtcblxuaW1wb3J0IHsgRW5naW5lU291cmNlIH0gZnJvbSBcIi4vRW5naW5lL0VuZ2luZVNvdXJjZVwiO1xuaW1wb3J0IHsgRW5naW5lVmVyc2lvblV0aWxzIH0gZnJvbSBcIi4vRW5naW5lVmVyc2lvblV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybU1ldGFDb250ZW50IHtcbiAgICB0aGVtZXM/OiBzdHJpbmdbXTtcbiAgICBlbmdpbmVOYW1lOiBzdHJpbmc7XG4gICAgcmVzb3VyY2VzSGFzaDogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVGb3JtTWV0YShcbiAgICByZXNvdXJjZXNQYXRoOiBzdHJpbmcsXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcbiAgICBlbmdpbmVTb3VyY2VzOiBFbmdpbmVTb3VyY2UsXG4gICAgcmVzb3VyY2VzSGFzaDogc3RyaW5nLFxuICAgIHRoZW1lczogdW5kZWZpbmVkIHwgc3RyaW5nW10sXG4gICAgYnVpbGRDYWNoZT86IEJ1aWxkQ2FjaGUsXG4gICAgYnVpbGRDYWNoZU9wdGlvbnM/OiBGb3JtQnVpbGRDYWNoZU9wdGlvbnNcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmpvaW4ocmVzb3VyY2VzUGF0aCwgXCJtZXRhc1wiKSk7XG4gICAgY29uc3QgZm9ybU1ldGFDb250ZW50OiBGb3JtTWV0YUNvbnRlbnQgPSB7XG4gICAgICAgIGVuZ2luZU5hbWU6XG4gICAgICAgICAgICBlbmdpbmVTb3VyY2VzLnR5cGUgPT09IFwiTG9jYWxFbmdpbmVTb3VyY2VzXCJcbiAgICAgICAgICAgICAgICA/IFwibG9jYWxcIlxuICAgICAgICAgICAgICAgIDogRW5naW5lVmVyc2lvblV0aWxzLmVuZ2luZVZlcnNpb25Ub05hbWUoZW5naW5lU291cmNlcy52ZXJzaW9uKSxcbiAgICAgICAgcmVzb3VyY2VzSGFzaDogcmVzb3VyY2VzSGFzaCxcbiAgICB9O1xuICAgIGlmICh0aGVtZXMgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvcm1NZXRhQ29udGVudC50aGVtZXMgPSB0aGVtZXM7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShmb3JtTWV0YUNvbnRlbnQsIHVuZGVmaW5lZCwgXCIgIFwiKTtcbiAgICBhd2FpdCB3cml0ZUZpbGVBc3luYyhwYXRoLmpvaW4ocmVzb3VyY2VzUGF0aCwgXCJtZXRhc1wiLCBgJHtmb3JtTmFtZX0ubWV0YXMuanNvbmApLCBjb250ZW50LCBcInV0ZjhcIik7XG4gICAgaWYgKGJ1aWxkQ2FjaGUgIT0gdW5kZWZpbmVkICYmIGJ1aWxkQ2FjaGVPcHRpb25zICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBhd2FpdCBidWlsZENhY2hlLnNldENvbnRlbnQoXG4gICAgICAgICAgICBidWlsZENhY2hlT3B0aW9ucy5nZW5lcmF0b3JWZXJzaW9uLFxuICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnMuZ2Z2LFxuICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnMuZGVwc0hhc2gsXG4gICAgICAgICAgICByZXNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgcGF0aC5qb2luKFwibWV0YXNcIiwgYCR7Zm9ybU5hbWV9Lm1ldGFzLmpzb25gKSxcbiAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL1dyaXRlRm9ybU1ldGEudHMiXSwibmFtZXMiOlsid3JpdGVGb3JtTWV0YSIsInJlc291cmNlc1BhdGgiLCJmb3JtTmFtZSIsImVuZ2luZVNvdXJjZXMiLCJyZXNvdXJjZXNIYXNoIiwidGhlbWVzIiwiYnVpbGRDYWNoZSIsImJ1aWxkQ2FjaGVPcHRpb25zIiwicGF0aCIsImpvaW4iLCJmb3JtTWV0YUNvbnRlbnQiLCJlbmdpbmVOYW1lIiwidHlwZSIsIkVuZ2luZVZlcnNpb25VdGlscyIsImVuZ2luZVZlcnNpb25Ub05hbWUiLCJ2ZXJzaW9uIiwidW5kZWZpbmVkIiwiY29udGVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZXRDb250ZW50IiwiZ2VuZXJhdG9yVmVyc2lvbiIsImdmdiIsImRlcHNIYXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQTs7QUFJQTs7QUFRTyxlQUFlQSxhQUFmLENBQ0hDLGFBREcsRUFFSEMsUUFGRyxFQUdIQyxhQUhHLEVBSUhDLGFBSkcsRUFLSEMsTUFMRyxFQU1IQyxVQU5HLEVBT0hDLGlCQVBHLEVBUVU7QUFDYixRQUFNLHdCQUFVQyxjQUFLQyxJQUFMLENBQVVSLGFBQVYsRUFBeUIsT0FBekIsQ0FBVixDQUFOO0FBQ0EsUUFBTVMsZUFBZ0MsR0FBRztBQUNyQ0MsSUFBQUEsVUFBVSxFQUNOUixhQUFhLENBQUNTLElBQWQsS0FBdUIsb0JBQXZCLEdBQ00sT0FETixHQUVNQyx1Q0FBbUJDLG1CQUFuQixDQUF1Q1gsYUFBYSxDQUFDWSxPQUFyRCxDQUoyQjtBQUtyQ1gsSUFBQUEsYUFBYSxFQUFFQTtBQUxzQixHQUF6Qzs7QUFPQSxNQUFJQyxNQUFNLElBQUlXLFNBQWQsRUFBeUI7QUFDckJOLElBQUFBLGVBQWUsQ0FBQ0wsTUFBaEIsR0FBeUJBLE1BQXpCO0FBQ0g7O0FBQ0QsUUFBTVksT0FBTyxHQUFHQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsZUFBZixFQUFnQ00sU0FBaEMsRUFBMkMsSUFBM0MsQ0FBaEI7QUFDQSxRQUFNLDZCQUFlUixjQUFLQyxJQUFMLENBQVVSLGFBQVYsRUFBeUIsT0FBekIsRUFBbUMsR0FBRUMsUUFBUyxhQUE5QyxDQUFmLEVBQTRFZSxPQUE1RSxFQUFxRixNQUFyRixDQUFOOztBQUNBLE1BQUlYLFVBQVUsSUFBSVUsU0FBZCxJQUEyQlQsaUJBQWlCLElBQUlTLFNBQXBELEVBQStEO0FBQzNELFVBQU1WLFVBQVUsQ0FBQ2MsVUFBWCxDQUNGYixpQkFBaUIsQ0FBQ2MsZ0JBRGhCLEVBRUZkLGlCQUFpQixDQUFDZSxHQUZoQixFQUdGZixpQkFBaUIsQ0FBQ2dCLFFBSGhCLEVBSUZ0QixhQUpFLEVBS0ZPLGNBQUtDLElBQUwsQ0FBVSxPQUFWLEVBQW9CLEdBQUVQLFFBQVMsYUFBL0IsQ0FMRSxFQU1GZSxPQU5FLENBQU47QUFRSDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZW5zdXJlRGlyIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5cbmltcG9ydCB7IHdyaXRlRmlsZUFzeW5jIH0gZnJvbSBcIi4uL0NvbW1vbnMvRnNVdGlsc1wiO1xuaW1wb3J0IHsgQnVpbGRDYWNoZSwgRm9ybUJ1aWxkQ2FjaGVPcHRpb25zIH0gZnJvbSBcIi4uL0Zvcm1XZWJwYWNrQ29uZmlndXJhdGlvbi9DYWNoZUFzc2V0c1BsdWdpblwiO1xuXG5pbXBvcnQgeyBFbmdpbmVTb3VyY2UgfSBmcm9tIFwiLi9FbmdpbmUvRW5naW5lU291cmNlXCI7XG5pbXBvcnQgeyBFbmdpbmVWZXJzaW9uVXRpbHMgfSBmcm9tIFwiLi9FbmdpbmVWZXJzaW9uVXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtTWV0YUNvbnRlbnQge1xuICAgIHRoZW1lcz86IHN0cmluZ1tdO1xuICAgIGVuZ2luZU5hbWU6IHN0cmluZztcbiAgICByZXNvdXJjZXNIYXNoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUZvcm1NZXRhKFxuICAgIHJlc291cmNlc1BhdGg6IHN0cmluZyxcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxuICAgIGVuZ2luZVNvdXJjZXM6IEVuZ2luZVNvdXJjZSxcbiAgICByZXNvdXJjZXNIYXNoOiBzdHJpbmcsXG4gICAgdGhlbWVzOiB1bmRlZmluZWQgfCBzdHJpbmdbXSxcbiAgICBidWlsZENhY2hlPzogQnVpbGRDYWNoZSxcbiAgICBidWlsZENhY2hlT3B0aW9ucz86IEZvcm1CdWlsZENhY2hlT3B0aW9uc1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguam9pbihyZXNvdXJjZXNQYXRoLCBcIm1ldGFzXCIpKTtcbiAgICBjb25zdCBmb3JtTWV0YUNvbnRlbnQ6IEZvcm1NZXRhQ29udGVudCA9IHtcbiAgICAgICAgZW5naW5lTmFtZTpcbiAgICAgICAgICAgIGVuZ2luZVNvdXJjZXMudHlwZSA9PT0gXCJMb2NhbEVuZ2luZVNvdXJjZXNcIlxuICAgICAgICAgICAgICAgID8gXCJsb2NhbFwiXG4gICAgICAgICAgICAgICAgOiBFbmdpbmVWZXJzaW9uVXRpbHMuZW5naW5lVmVyc2lvblRvTmFtZShlbmdpbmVTb3VyY2VzLnZlcnNpb24pLFxuICAgICAgICByZXNvdXJjZXNIYXNoOiByZXNvdXJjZXNIYXNoLFxuICAgIH07XG4gICAgaWYgKHRoZW1lcyAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9ybU1ldGFDb250ZW50LnRoZW1lcyA9IHRoZW1lcztcbiAgICB9XG4gICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KGZvcm1NZXRhQ29udGVudCwgdW5kZWZpbmVkLCBcIiAgXCIpO1xuICAgIGF3YWl0IHdyaXRlRmlsZUFzeW5jKHBhdGguam9pbihyZXNvdXJjZXNQYXRoLCBcIm1ldGFzXCIsIGAke2Zvcm1OYW1lfS5tZXRhcy5qc29uYCksIGNvbnRlbnQsIFwidXRmOFwiKTtcbiAgICBpZiAoYnVpbGRDYWNoZSAhPSB1bmRlZmluZWQgJiYgYnVpbGRDYWNoZU9wdGlvbnMgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF3YWl0IGJ1aWxkQ2FjaGUuc2V0Q29udGVudChcbiAgICAgICAgICAgIGJ1aWxkQ2FjaGVPcHRpb25zLmdlbmVyYXRvclZlcnNpb24sXG4gICAgICAgICAgICBidWlsZENhY2hlT3B0aW9ucy5nZnYsXG4gICAgICAgICAgICBidWlsZENhY2hlT3B0aW9ucy5kZXBzSGFzaCxcbiAgICAgICAgICAgIHJlc291cmNlc1BhdGgsXG4gICAgICAgICAgICBwYXRoLmpvaW4oXCJtZXRhc1wiLCBgJHtmb3JtTmFtZX0ubWV0YXMuanNvbmApLFxuICAgICAgICAgICAgY29udGVudFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -5,16 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.BuildCacheMode = void 0;
7
7
  exports.parseBuildCacheMode = parseBuildCacheMode;
8
-
9
- (function () {
10
- var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
11
- enterModule && enterModule(module);
12
- })();
13
-
14
- var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
15
- return a;
16
- };
17
-
18
8
  let BuildCacheMode;
19
9
  exports.BuildCacheMode = BuildCacheMode;
20
10
 
@@ -40,23 +30,4 @@ function parseBuildCacheMode(input) {
40
30
 
41
31
  throw new Error(`Invalid build cache mode value. Available values: . Got: ${input}`);
42
32
  }
43
-
44
- ;
45
-
46
- (function () {
47
- var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
48
-
49
- if (!reactHotLoader) {
50
- return;
51
- }
52
-
53
- reactHotLoader.register(parseBuildCacheMode, "parseBuildCacheMode", "C:\\buildAgent\\work\\8df8f1edd755969c\\Tools\\src\\CLICommands\\BuildForms\\BuildCacheMode.ts");
54
- })();
55
-
56
- ;
57
-
58
- (function () {
59
- var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
60
- leaveModule && leaveModule(module);
61
- })();
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZEZvcm1zL0J1aWxkQ2FjaGVNb2RlLnRzIl0sIm5hbWVzIjpbIkJ1aWxkQ2FjaGVNb2RlIiwicGFyc2VCdWlsZENhY2hlTW9kZSIsImlucHV0Iiwibm9ybWFsaXplZElucHV0IiwidG9Mb3dlckNhc2UiLCJEaXNhYmxlZCIsIlJlYWRPbmx5IiwiVXBkYXRlSWZOZWVkIiwiRm9yY2VVcGRhdGUiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBWUEsYzs7O1dBQUFBLGM7QUFBQUEsRUFBQUEsYyxDQUFBQSxjO0FBQUFBLEVBQUFBLGMsQ0FBQUEsYztBQUFBQSxFQUFBQSxjLENBQUFBLGM7QUFBQUEsRUFBQUEsYyxDQUFBQSxjO0dBQUFBLGMsOEJBQUFBLGM7O0FBT0wsU0FBU0MsbUJBQVQsQ0FBNkJDLEtBQTdCLEVBQTREO0FBQy9ELFFBQU1DLGVBQWUsR0FBR0QsS0FBSyxDQUFDRSxXQUFOLEVBQXhCOztBQUNBLE1BQUlELGVBQWUsS0FBSyxVQUF4QixFQUFvQztBQUNoQyxXQUFPSCxjQUFjLENBQUNLLFFBQXRCO0FBQ0gsR0FGRCxNQUVPLElBQUlGLGVBQWUsS0FBSyxVQUF4QixFQUFvQztBQUN2QyxXQUFPSCxjQUFjLENBQUNNLFFBQXRCO0FBQ0gsR0FGTSxNQUVBLElBQUlILGVBQWUsS0FBSyxRQUF4QixFQUFrQztBQUNyQyxXQUFPSCxjQUFjLENBQUNPLFlBQXRCO0FBQ0gsR0FGTSxNQUVBLElBQUlKLGVBQWUsS0FBSyxjQUF4QixFQUF3QztBQUMzQyxXQUFPSCxjQUFjLENBQUNRLFdBQXRCO0FBQ0g7O0FBQ0QsUUFBTSxJQUFJQyxLQUFKLENBQVcsNERBQTJEUCxLQUFNLEVBQTVFLENBQU47QUFDSDs7Ozs7Ozs7Ozs7MEJBWmVELG1CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQnVpbGRDYWNoZU1vZGUge1xuICAgIERpc2FibGVkLFxuICAgIFJlYWRPbmx5LFxuICAgIFVwZGF0ZUlmTmVlZCxcbiAgICBGb3JjZVVwZGF0ZSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQnVpbGRDYWNoZU1vZGUoaW5wdXQ6IHN0cmluZyk6IEJ1aWxkQ2FjaGVNb2RlIHtcbiAgICBjb25zdCBub3JtYWxpemVkSW5wdXQgPSBpbnB1dC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub3JtYWxpemVkSW5wdXQgPT09IFwiZGlzYWJsZWRcIikge1xuICAgICAgICByZXR1cm4gQnVpbGRDYWNoZU1vZGUuRGlzYWJsZWQ7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkSW5wdXQgPT09IFwicmVhZG9ubHlcIikge1xuICAgICAgICByZXR1cm4gQnVpbGRDYWNoZU1vZGUuUmVhZE9ubHk7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkSW5wdXQgPT09IFwidXBkYXRlXCIpIHtcbiAgICAgICAgcmV0dXJuIEJ1aWxkQ2FjaGVNb2RlLlVwZGF0ZUlmTmVlZDtcbiAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRJbnB1dCA9PT0gXCJmb3JjZS11cGRhdGVcIikge1xuICAgICAgICByZXR1cm4gQnVpbGRDYWNoZU1vZGUuRm9yY2VVcGRhdGU7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBidWlsZCBjYWNoZSBtb2RlIHZhbHVlLiBBdmFpbGFibGUgdmFsdWVzOiAuIEdvdDogJHtpbnB1dH1gKTtcbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZEZvcm1zL0J1aWxkQ2FjaGVNb2RlLnRzIl0sIm5hbWVzIjpbIkJ1aWxkQ2FjaGVNb2RlIiwicGFyc2VCdWlsZENhY2hlTW9kZSIsImlucHV0Iiwibm9ybWFsaXplZElucHV0IiwidG9Mb3dlckNhc2UiLCJEaXNhYmxlZCIsIlJlYWRPbmx5IiwiVXBkYXRlSWZOZWVkIiwiRm9yY2VVcGRhdGUiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztJQUFZQSxjOzs7V0FBQUEsYztBQUFBQSxFQUFBQSxjLENBQUFBLGM7QUFBQUEsRUFBQUEsYyxDQUFBQSxjO0FBQUFBLEVBQUFBLGMsQ0FBQUEsYztBQUFBQSxFQUFBQSxjLENBQUFBLGM7R0FBQUEsYyw4QkFBQUEsYzs7QUFPTCxTQUFTQyxtQkFBVCxDQUE2QkMsS0FBN0IsRUFBNEQ7QUFDL0QsUUFBTUMsZUFBZSxHQUFHRCxLQUFLLENBQUNFLFdBQU4sRUFBeEI7O0FBQ0EsTUFBSUQsZUFBZSxLQUFLLFVBQXhCLEVBQW9DO0FBQ2hDLFdBQU9ILGNBQWMsQ0FBQ0ssUUFBdEI7QUFDSCxHQUZELE1BRU8sSUFBSUYsZUFBZSxLQUFLLFVBQXhCLEVBQW9DO0FBQ3ZDLFdBQU9ILGNBQWMsQ0FBQ00sUUFBdEI7QUFDSCxHQUZNLE1BRUEsSUFBSUgsZUFBZSxLQUFLLFFBQXhCLEVBQWtDO0FBQ3JDLFdBQU9ILGNBQWMsQ0FBQ08sWUFBdEI7QUFDSCxHQUZNLE1BRUEsSUFBSUosZUFBZSxLQUFLLGNBQXhCLEVBQXdDO0FBQzNDLFdBQU9ILGNBQWMsQ0FBQ1EsV0FBdEI7QUFDSDs7QUFDRCxRQUFNLElBQUlDLEtBQUosQ0FBVyw0REFBMkRQLEtBQU0sRUFBNUUsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQnVpbGRDYWNoZU1vZGUge1xuICAgIERpc2FibGVkLFxuICAgIFJlYWRPbmx5LFxuICAgIFVwZGF0ZUlmTmVlZCxcbiAgICBGb3JjZVVwZGF0ZSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQnVpbGRDYWNoZU1vZGUoaW5wdXQ6IHN0cmluZyk6IEJ1aWxkQ2FjaGVNb2RlIHtcbiAgICBjb25zdCBub3JtYWxpemVkSW5wdXQgPSBpbnB1dC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub3JtYWxpemVkSW5wdXQgPT09IFwiZGlzYWJsZWRcIikge1xuICAgICAgICByZXR1cm4gQnVpbGRDYWNoZU1vZGUuRGlzYWJsZWQ7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkSW5wdXQgPT09IFwicmVhZG9ubHlcIikge1xuICAgICAgICByZXR1cm4gQnVpbGRDYWNoZU1vZGUuUmVhZE9ubHk7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkSW5wdXQgPT09IFwidXBkYXRlXCIpIHtcbiAgICAgICAgcmV0dXJuIEJ1aWxkQ2FjaGVNb2RlLlVwZGF0ZUlmTmVlZDtcbiAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRJbnB1dCA9PT0gXCJmb3JjZS11cGRhdGVcIikge1xuICAgICAgICByZXR1cm4gQnVpbGRDYWNoZU1vZGUuRm9yY2VVcGRhdGU7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBidWlsZCBjYWNoZSBtb2RlIHZhbHVlLiBBdmFpbGFibGUgdmFsdWVzOiAuIEdvdDogJHtpbnB1dH1gKTtcbn1cbiJdfQ==
@@ -11,15 +11,6 @@ var _CommonOptionDefintions = require("../CommonOptions/CommonOptionDefintions")
11
11
 
12
12
  var _BuildCacheMode = require("./BuildCacheMode");
13
13
 
14
- (function () {
15
- var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
16
- enterModule && enterModule(module);
17
- })();
18
-
19
- var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
20
- return a;
21
- };
22
-
23
14
  const buildFormsOptionsDefinition = (0, _CommandBasedOptionsParser.commandDefinition)("build", "build", (0, _CommandBasedOptionsParser.optionsDefinition)({
24
15
  alias: "w",
25
16
  name: "watch",
@@ -59,7 +50,7 @@ const buildFormsOptionsDefinition = (0, _CommandBasedOptionsParser.commandDefini
59
50
  parse: input => ({
60
51
  buildCacheMode: (0, _BuildCacheMode.parseBuildCacheMode)(input)
61
52
  }),
62
- description: "Задаёт режим использования кэша сборки. Возможные значения:\n" + " disabled - не использовать кэш\n" + " readonly - использовать кэш для сборки, но не обновляеть его (значение по умолчанию)\n" + " update - использовать кэш для сборки и презаписывать, если не совпадает\n" + " force-update - всегда выполнять сборку и обновить значения в кэше\n" + "Отключается при использовании watch-режима"
53
+ description: "Задаёт режим использования кэша сборки. Возможные значения:\n" + " disabled - не использовать кэш\n" + " readonly - использовать кэш для сборки, но не обновляет его (значение по умолчанию)\n" + " update - использовать кэш для сборки и презаписывать, если не совпадает\n" + " force-update - всегда выполнять сборку и обновить значения в кэше\n" + "Отключается при использовании watch-режима"
63
54
  }, {
64
55
  name: "use-last-stable-version",
65
56
  defaultValue: {
@@ -69,7 +60,7 @@ const buildFormsOptionsDefinition = (0, _CommandBasedOptionsParser.commandDefini
69
60
  useLastStableVersion: input
70
61
  }),
71
62
  doesNotRequireValue: true,
72
- description: "Уставнавливает версию движка в файла `form.json` в последнюю стабильную версию. Аналогичен запуску candy-build с параметром -ge master"
63
+ description: "Устанавливает версию движка в файла `form.json` в последнюю стабильную версию. Аналогичен запуску candy-build с параметром -ge master"
73
64
  }, {
74
65
  name: "use-prerelease-version",
75
66
  defaultValue: {
@@ -78,7 +69,7 @@ const buildFormsOptionsDefinition = (0, _CommandBasedOptionsParser.commandDefini
78
69
  parse: input => ({
79
70
  usePrereleaseVersion: input
80
71
  }),
81
- description: "Уставнавливает версию движка в файла form.json в последнюю предрелизную версию в заданным preid. В файле версии генератора и движка будут установлены в pre:some-preid."
72
+ description: "Устанавливает версию движка в файла form.json в последнюю пререлизную версию в заданным preid. В файле версии генератора и движка будут установлены в pre:some-preid."
82
73
  }, {
83
74
  name: "no-reformat",
84
75
  doesNotRequireValue: true,
@@ -100,7 +91,7 @@ const buildFormsOptionsDefinition = (0, _CommandBasedOptionsParser.commandDefini
100
91
  }),
101
92
  defaultOption: true,
102
93
  multiple: true,
103
- description: "Одна или несколько GFV или GFV-масок для пересобрки. Может содержать значки `?` и `*`."
94
+ description: "Одна или несколько GFV или GFV-масок для пересборки. Может содержать значки `?` и `*`."
104
95
  }, {
105
96
  name: "use-version-from-cache",
106
97
  defaultValue: {
@@ -135,7 +126,7 @@ candy build 1?????
135
126
  \`\`\`
136
127
 
137
128
  \`\`\`
138
- # Собрать форму 104816 и сделить за изменениями
129
+ # Собрать форму 104816 и следить за изменениями
139
130
  candy build 104816 -w
140
131
  \`\`\`
141
132
 
@@ -147,7 +138,7 @@ candy build 104816 --use-prerelease-version bso
147
138
  extendedDetails: `
148
139
  ### Версионирование
149
140
 
150
- При сборке форм, учитывается версия движка и генератора указанные файле form.json. Версии могут указывать не на конкретную версию, а адресовать диапазон в соотвествии с [semver](https://semver.org/lang/ru/).
141
+ При сборке форм, учитывается версия движка и генератора указанные файле form.json. Версии могут указывать не на конкретную версию, а адресовать диапазон в соответствии с [semver](https://semver.org/lang/ru/).
151
142
  В этом случае будет выбрана последняя подходящая версия.
152
143
 
153
144
  Файл form.json должен выглядеть следующим образом:
@@ -171,22 +162,4 @@ candy build 104816 --use-prerelease-version bso
171
162
  `.trim()
172
163
  });
173
164
  exports.buildFormsOptionsDefinition = buildFormsOptionsDefinition;
174
- ;
175
-
176
- (function () {
177
- var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
178
-
179
- if (!reactHotLoader) {
180
- return;
181
- }
182
-
183
- reactHotLoader.register(buildFormsOptionsDefinition, "buildFormsOptionsDefinition", "C:\\buildAgent\\work\\8df8f1edd755969c\\Tools\\src\\CLICommands\\BuildForms\\BuildFormsOptions.ts");
184
- })();
185
-
186
- ;
187
-
188
- (function () {
189
- var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
190
- leaveModule && leaveModule(module);
191
- })();
192
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZEZvcm1zL0J1aWxkRm9ybXNPcHRpb25zLnRzIl0sIm5hbWVzIjpbImJ1aWxkRm9ybXNPcHRpb25zRGVmaW5pdGlvbiIsImFsaWFzIiwibmFtZSIsImRlZmF1bHRWYWx1ZSIsIndhdGNoIiwicGFyc2UiLCJpbnB1dCIsImRvZXNOb3RSZXF1aXJlVmFsdWUiLCJkZXNjcmlwdGlvbiIsImNsZWFuIiwidXBncmFkZUZvcm1Kc29uIiwiYnVpbGRDYWNoZU1vZGUiLCJCdWlsZENhY2hlTW9kZSIsIlJlYWRPbmx5IiwidXNlTGFzdFN0YWJsZVZlcnNpb24iLCJ1c2VQcmVyZWxlYXNlVmVyc2lvbiIsInVuZGVmaW5lZCIsInNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nIiwiZm9ybUdsb2JzIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwidXNlVmVyc2lvbkZyb21DYWNoZSIsImRldk1vZGVPcHRpb24iLCJsb2dWZXJib3NpdHlPcHRpb24iLCJkZXRhaWxlZERlc2NyaXB0aW9uIiwidHJpbSIsImV4YW1wbGVzIiwiZXh0ZW5kZWREZXRhaWxzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRUE7O0FBRUE7Ozs7Ozs7Ozs7O0FBY08sTUFBTUEsMkJBQTJCLEdBQUcsa0RBQ3ZDLE9BRHVDLEVBRXZDLE9BRnVDLEVBR3ZDLGtEQUNJO0FBQ0lDLEVBQUFBLEtBQUssRUFBRSxHQURYO0FBRUlDLEVBQUFBLElBQUksRUFBRSxPQUZWO0FBR0lDLEVBQUFBLFlBQVksRUFBRTtBQUFFQyxJQUFBQSxLQUFLLEVBQUU7QUFBVCxHQUhsQjtBQUlJQyxFQUFBQSxLQUFLLEVBQUVDLEtBQUssS0FBSztBQUFFRixJQUFBQSxLQUFLLEVBQUVFO0FBQVQsR0FBTCxDQUpoQjtBQUtJQyxFQUFBQSxtQkFBbUIsRUFBRSxJQUx6QjtBQU1JQyxFQUFBQSxXQUFXLEVBQ1A7QUFQUixDQURKLEVBVUk7QUFDSU4sRUFB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QUFyQixDQUhYO0FBSUlFLEVBQUFBLFdBQVcsRUFBRSw2REFKakI7QUFLSUQsRUFBQUEsbUJBQW1CLEVBQUU7QUFMekIsQ0FyRUosRUE0RUllLHFDQTVFSixFQTZFSUMsMENBN0VKLENBSHVDLEVBa0Z2QztBQUNJZixFQUFBQSxXQUFXLEVBQ1Asa0RBQ0Esc0ZBSFI7QUFLSWdCLEVBQUFBLG1CQUFtQixFQUFHO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQVQ2QixDQVMzQkMsSUFUMkIsRUFMekI7QUFnQklDLEVBQUFBLFFBQVEsRUFBRztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBcEJrQixDQW9CaEJELElBcEJnQixFQWhCZDtBQXNDSUUsRUFBQUEsZUFBZSxFQUFHO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQXhCeUIsQ0F3QnZCRixJQXhCdUI7QUF0Q3JCLENBbEZ1QyxDQUFwQzs7Ozs7Ozs7Ozs7MEJBQU16QiwyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbW1hbmREZWZpbml0aW9uLCBvcHRpb25zRGVmaW5pdGlvbiB9IGZyb20gXCIuLi8uLi9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlclwiO1xuaW1wb3J0IHsgQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbnNcIjtcbmltcG9ydCB7IGRldk1vZGVPcHRpb24sIGxvZ1ZlcmJvc2l0eU9wdGlvbiB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbkRlZmludGlvbnNcIjtcblxuaW1wb3J0IHsgQnVpbGRDYWNoZU1vZGUsIHBhcnNlQnVpbGRDYWNoZU1vZGUgfSBmcm9tIFwiLi9CdWlsZENhY2hlTW9kZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRm9ybXNPcHRpb25zIGV4dGVuZHMgQ29tbW9uT3B0aW9ucyB7XG4gICAgd2F0Y2g6IGJvb2xlYW47XG4gICAgY2xlYW46IGJvb2xlYW47XG4gICAgZm9ybUdsb2JzOiBzdHJpbmdbXTtcbiAgICB1cGdyYWRlRm9ybUpzb246IGJvb2xlYW47XG4gICAgdXNlTGFzdFN0YWJsZVZlcnNpb246IGJvb2xlYW47XG4gICAgdXNlUHJlcmVsZWFzZVZlcnNpb24/OiBzdHJpbmc7XG4gICAgc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmc6IGJvb2xlYW47XG4gICAgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbjtcbiAgICBidWlsZENhY2hlTW9kZTogQnVpbGRDYWNoZU1vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZEZvcm1zT3B0aW9uc0RlZmluaXRpb24gPSBjb21tYW5kRGVmaW5pdGlvbjxcImJ1aWxkXCIsIEJ1aWxkRm9ybXNPcHRpb25zPihcbiAgICBcImJ1aWxkXCIsXG4gICAgXCJidWlsZFwiLFxuICAgIG9wdGlvbnNEZWZpbml0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAgICBhbGlhczogXCJ3XCIsXG4gICAgICAgICAgICBuYW1lOiBcIndhdGNoXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgd2F0Y2g6IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgd2F0Y2g6IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwiV2F0Y2gt0YDQtdC20LjQvC4g0JLRi9C/0L7Qu9C90Y/QtdGCINGB0LHQvtGA0LrRgyDRhNC+0YDQvCwg0LAg0LfQsNGC0LXQvCDQv9C10YDQtdGB0L7QsdC40YDQsNC10YIg0L/RgNC4INC40LfQvNC10L3QtdC90LjRj9GFLiDQkiDRgtC+0Lwg0YfQuNGB0LvQtSDQtNCy0LjQttC60LAsINCz0LXQvdC10YDQsNGC0L7RgNCwINC4INGB0YLQsNGC0LjRh9C10YHQutC40YUg0YDQtdGB0YPRgNGB0L7Qsi5cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJjbGVhblwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGNsZWFuOiBmYWxzZSB9LFxuICAgICAgICAgICAgcGFyc2U6IGlucHV0ID0+ICh7IGNsZWFuOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICBcItCf0L7Qu9C90L7RgdGC0YzRjiDQvtGH0LjRidCw0LXRgiDRhtC10LvQtdCy0L7QuSDQutCw0YLQsNC70L7QsyDRgNC10YHRg9GA0YHQvtCyLiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0L/RgNC4INC/0L7Qu9C90L7QuSDRgdCx0L7RgNC60LUg0YTQvtGA0Lwg0LTQu9GPINC/0YDQvtC00LDQutGI0LXQvdCwXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidXBncmFkZS1mb3JtLWpzb25cIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyB1cGdyYWRlRm9ybUpzb246IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgdXBncmFkZUZvcm1Kc29uOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCLQpNC+0YDRgdC40YDRg9C10YIg0LjQt9C80LXQvdC10L3QuNC1INGE0L7RgNC80LDRgtCwINGE0LDQudC70LAgZm9ybS5qc29uINC90LAg0L3QvtCy0YvQuVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImJ1aWxkLWNhY2hlXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgYnVpbGRDYWNoZU1vZGU6IEJ1aWxkQ2FjaGVNb2RlLlJlYWRPbmx5IH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBzdHJpbmcpID0+ICh7IGJ1aWxkQ2FjaGVNb2RlOiBwYXJzZUJ1aWxkQ2FjaGVNb2RlKGlucHV0KSB9KSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0JfQsNC00LDRkdGCINGA0LXQttC40Lwg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0LrRjdGI0LAg0YHQsdC+0YDQutC4LiDQktC+0LfQvNC+0LbQvdGL0LUg0LfQvdCw0YfQtdC90LjRjzpcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIGRpc2FibGVkIC0g0L3QtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LrRjdGIXFxuXCIgK1xuICAgICAgICAgICAgICAgIFwiICByZWFkb25seSAtINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutGN0Ygg0LTQu9GPINGB0LHQvtGA0LrQuCwg0L3QviDQvdC1INC+0LHQvdC+0LLQu9GP0LXRgtGMINC10LPQviAo0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjilcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIHVwZGF0ZSAtINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutGN0Ygg0LTQu9GPINGB0LHQvtGA0LrQuCDQuCDQv9GA0LXQt9Cw0L/QuNGB0YvQstCw0YLRjCwg0LXRgdC70Lgg0L3QtSDRgdC+0LLQv9Cw0LTQsNC10YJcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIGZvcmNlLXVwZGF0ZSAtINCy0YHQtdCz0LTQsCDQstGL0L/QvtC70L3Rj9GC0Ywg0YHQsdC+0YDQutGDINC4INC+0LHQvdC+0LLQuNGC0Ywg0LfQvdCw0YfQtdC90LjRjyDQsiDQutGN0YjQtVxcblwiICtcbiAgICAgICAgICAgICAgICBcItCe0YLQutC70Y7Rh9Cw0LXRgtGB0Y8g0L/RgNC4INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC4IHdhdGNoLdGA0LXQttC40LzQsFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZS1sYXN0LXN0YWJsZS12ZXJzaW9uXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgdXNlTGFzdFN0YWJsZVZlcnNpb246IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgdXNlTGFzdFN0YWJsZVZlcnNpb246IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0KPRgdGC0LDQstC90LDQstC70LjQstCw0LXRgiDQstC10YDRgdC40Y4g0LTQstC40LbQutCwINCyINGE0LDQudC70LAgYGZvcm0uanNvbmAg0LIg0L/QvtGB0LvQtdC00L3RjtGOINGB0YLQsNCx0LjQu9GM0L3Rg9GOINCy0LXRgNGB0LjRji4g0JDQvdCw0LvQvtCz0LjRh9C10L0g0LfQsNC/0YPRgdC60YMgY2FuZHktYnVpbGQg0YEg0L/QsNGA0LDQvNC10YLRgNC+0LwgLWdlIG1hc3RlclwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZS1wcmVyZWxlYXNlLXZlcnNpb25cIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyB1c2VQcmVyZWxlYXNlVmVyc2lvbjogdW5kZWZpbmVkIGFzIHVuZGVmaW5lZCB8IHN0cmluZyB9LFxuICAgICAgICAgICAgcGFyc2U6IChpbnB1dDogc3RyaW5nKSA9PiAoeyB1c2VQcmVyZWxlYXNlVmVyc2lvbjogaW5wdXQgfSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICBcItCj0YHRgtCw0LLQvdCw0LLQu9C40LLQsNC10YIg0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCDQsiDRhNCw0LnQu9CwIGZvcm0uanNvbiDQsiDQv9C+0YHQu9C10LTQvdGO0Y4g0L/RgNC10LTRgNC10LvQuNC30L3Rg9GOINCy0LXRgNGB0LjRjiDQsiDQt9Cw0LTQsNC90L3Ri9C8IHByZWlkLiDQkiDRhNCw0LnQu9C1INCy0LXRgNGB0LjQuCDQs9C10L3QtdGA0LDRgtC+0YDQsCDQuCDQtNCy0LjQttC60LAg0LHRg9C00YPRgiDRg9GB0YLQsNC90L7QstC70LXQvdGLINCyIHByZTpzb21lLXByZWlkLlwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIm5vLXJlZm9ybWF0XCIsXG4gICAgICAgICAgICBkb2VzTm90UmVxdWlyZVZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nOiB0cnVlIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBib29sZWFuKSA9PiAoeyBza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZzogaW5wdXQgfSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICBcItCe0YLQu9GO0YfQsNC10YIg0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNC90LjQtSDQs9C10L3QtdGA0LjRgNGD0LXQvNC+0LPQviDQutC+0LTQsC4g0KDQsNCx0L7RgtCw0LXRgiwg0YLQvtC70YzQutC+INC10YHQu9C4INCy0LXRgNGB0LjRjyDQs9C10L3QtdGA0LDRgtC+0YDQsCDQv9C+0LTQtNC10YDQttC40LLQsNC10YIg0Y3RgtGDINC+0L/RhtC40Y4uINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YPRgdC60L7RgNC10L3QuNGPINGB0LHQvtGA0LrQuCDRhNC+0YDQvC4gKGRlZmF1bHQ6IHRydWUpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGFsaWFzOiBcImdcIixcbiAgICAgICAgICAgIG5hbWU6IFwiZ2Z2c1wiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGZvcm1HbG9iczogW10gfSxcbiAgICAgICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZ1tdKSA9PiAoeyBmb3JtR2xvYnM6IGlucHV0IH0pLFxuICAgICAgICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwi0J7QtNC90LAg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQviBHRlYg0LjQu9C4IEdGVi3QvNCw0YHQvtC6INC00LvRjyDQv9C10YDQtdGB0L7QsdGA0LrQuC4g0JzQvtC20LXRgiDRgdC+0LTQtdGA0LbQsNGC0Ywg0LfQvdCw0YfQutC4IGA/YCDQuCBgKmAuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidXNlLXZlcnNpb24tZnJvbS1jYWNoZVwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVzZVZlcnNpb25Gcm9tQ2FjaGU6IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBib29sZWFuKSA9PiAoeyB1c2VWZXJzaW9uRnJvbUNhY2hlOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcItCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQstC10YDRgdC40Y4g0LTQstC40LbQutCwINC4INCz0LXQvdC10YDQsNGC0L7RgNCwINC40Lcg0YTQsNC50LvQvtCy0L7QuSDRgdC40YHRgtC10LzRi1wiLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGV2TW9kZU9wdGlvbixcbiAgICAgICAgbG9nVmVyYm9zaXR5T3B0aW9uXG4gICAgKSxcbiAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCLQktGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINC+0LTQvdC+0Lkg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQuNGFINGE0L7RgNC8LlxcblwiICtcbiAgICAgICAgICAgIFwi0J/QvtC00YDQvtCx0L3QtdC1OiBodHRwczovL2dpdC5za2Jrb250dXIucnUva2UvY2FuZHktdXRpbHMvYmxvYi9uZXctY2FuZHktdG9vbC1jbGkvUkVBRE1FLm1kXCIsXG5cbiAgICAgICAgZGV0YWlsZWREZXNjcmlwdGlvbjogYFxu0J7RgdC90L7QstC90L7QuSDRgdGG0LXQvdCw0YDQuNC5OiDQstGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINGE0L7RgNC8INCyINC60LDRgtCw0LvQvtCzINGBINGA0LXRgdGD0YDRgdCw0LzQuC4g0JTQtdC50YHRgtCy0LjRjywg0LrQvtGC0L7RgNGL0LUg0LLRi9C/0L7Qu9C90Y/QtdGCINC60L7QvNCw0L3QtNCwOlxuXG4qINCf0L7Qu9GD0YfQtdC90LjQtSDQtNCy0LjQttC60LAg0YTQvtGA0Lwg0LLQtdGA0YHQuNC4INGD0LrQsNC30LDQvdC90L7QuSDQsiBcXGBmb3JtLmpzb25cXGAsXG4qINC/0L7Qu9GD0YfQtdC90LjQtSDQs9C10L3QtdGA0LDRgtC+0YDQsCDRhNC+0YDQvCDQstC10YDRgdC40Lgg0YPQutCw0LfQsNC90L3QvtC5INCyIFxcYGZvcm0uanNvblxcYCxcbiog0LPQtdC90LXRgNCw0YbQuNGPINC4INC60L7QvNC/0LjQu9GP0YbQuNGPINGE0L7RgNC80Ysg0LIg0LrQsNGC0LDQu9C+0LMg0YDQtdGB0YPRgNGB0L7Qsixcbiog0YHQvtC30LTQsNC90LjQtSDRhNCw0LnQu9C+0LIgXFxge2dmdn0ubWV0YXMuanNvblxcYCDQuCBcXGBwcmVzZW50YXRpb25zLmpzb25cXGAg0LIg0LrQsNGC0LDQu9C+0LPQtSDRgNC10YHRg9GA0YHQvtCyXG4qINC60L7Qv9C40YDQvtCy0LDQvdC40LUg0LrQvtC90LLQtdGA0YLQtdGA0L7QsiDQsiDQutCw0YLQsNC70L7QsyDRgNC10YHRg9GA0YHQvtCyLFxuKiDQutC+0L/QuNGA0L7QstCw0L3QuNC1INGB0YXQtdC80Ysg0LIg0LrQsNGC0LDQu9C+0LMg0YDQtdGB0YPRgNGB0L7Qsi5cbmAudHJpbSgpLFxuXG4gICAgICAgIGV4YW1wbGVzOiBgXG5cXGBcXGBcXGBcbiMg0KHQsdC+0YDQutCwINGE0L7RgNC80YsgMTA0ODE2XG5jYW5keSBidWlsZCAxMDQ4MTZcblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0KHQsdC+0YDQutCwINCy0YHQtSDRhNC+0YDQvNGLINCz0YDRg9C/0L/RiyAxXG5jYW5keSBidWlsZCAxPz8/Pz9cblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0KHQvtCx0YDQsNGC0Ywg0YTQvtGA0LzRgyAxMDQ4MTYg0Lgg0YHQtNC10LvQuNGC0Ywg0LfQsCDQuNC30LzQtdC90LXQvdC40Y/QvNC4XG5jYW5keSBidWlsZCAxMDQ4MTYgLXdcblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0L7RgdC70LXQtNC90Y7RjiDQv9GA0LXRgNC10LvQuNC30L3Rg9GOINCy0LXRgNGB0LjRjiDQtNCy0LjQttC60LAg0YEgcHJlaWQ9YnNvXG5jYW5keSBidWlsZCAxMDQ4MTYgLS11c2UtcHJlcmVsZWFzZS12ZXJzaW9uIGJzb1xuXFxgXFxgXFxgXG5gLnRyaW0oKSxcblxuICAgICAgICBleHRlbmRlZERldGFpbHM6IGBcbiMjIyDQktC10YDRgdC40L7QvdC40YDQvtCy0LDQvdC40LVcblxu0J/RgNC4INGB0LHQvtGA0LrQtSDRhNC+0YDQvCwg0YPRh9C40YLRi9Cy0LDQtdGC0YHRjyDQstC10YDRgdC40Y8g0LTQstC40LbQutCwINC4INCz0LXQvdC10YDQsNGC0L7RgNCwINGD0LrQsNC30LDQvdC90YvQtSDRhNCw0LnQu9C1IGZvcm0uanNvbi4g0JLQtdGA0YHQuNC4INC80L7Qs9GD0YIg0YPQutCw0LfRi9Cy0LDRgtGMINC90LUg0L3QsCDQutC+0L3QutGA0LXRgtC90YPRjiDQstC10YDRgdC40Y4sINCwINCw0LTRgNC10YHQvtCy0LDRgtGMINC00LjQsNC/0LDQt9C+0L0g0LIg0YHQvtC+0YLQstC10YHRgtCy0LjQuCDRgSBbc2VtdmVyXShodHRwczovL3NlbXZlci5vcmcvbGFuZy9ydS8pLlxu0JIg0Y3RgtC+0Lwg0YHQu9GD0YfQsNC1INCx0YPQtNC10YIg0LLRi9Cx0YDQsNC90LAg0L/QvtGB0LvQtdC00L3Rj9GPINC/0L7QtNGF0L7QtNGP0YnQsNGPINCy0LXRgNGB0LjRjy5cblxu0KTQsNC50LsgZm9ybS5qc29uINC00L7Qu9C20LXQvSDQstGL0LPQu9GP0LTQtdGC0Ywg0YHQu9C10LTRg9GO0YnQuNC8INC+0LHRgNCw0LfQvtC8OlxuXFxgXFxgXFxgXG57XG4gICAgLy8g0J7Qv9GG0LjQvtC90LDQu9GM0L3QvlxuICAgIFwidGhlbWVzXCI6IFtcItC40LzRjy3RgtC10LzRi1wiLCAuLi5dLFxuICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgXCJlbmdpbmVcIjogXCJb0LLQtdGA0YHQuNGPLdC00LLQuNC20LrQsF1cIixcbiAgICAgICAgXCJnZW5lcmF0b3JcIjogXCJb0LLQtdGA0YHQuNGPLdCz0LXQvdC10YDQsNGC0L7RgNCwXVwiXG4gICAgfVxufVxuXFxgXFxgXFxgXG5cblxcYNCy0LXRgNGB0LjRjy3QtNCy0LjQttC60LBcXGAsIFxcYNCy0LXRgNGB0LjRjy3Qs9C10L3QtdGA0LDRgtC+0YDQsFxcYCAtINCh0L7QvtGC0LLQtdGC0YHRgtCy0LXQvdC90L4sINC00LjQsNC/0LDQt9C+0L3RiyDQstC10YDRgdC40LkuINCd0LAg0LTQsNC90L3Ri9C5INC80L7QvNC10L3RgiDQstGB0LXQs9C00LAg0YHQvtCy0L/QsNC00LDRjtGCLlxuXG7QlNC+0L/Rg9GB0YLQuNC80YvQtSDQstCw0YDQuNCw0L3RgtGLINCy0LXRgNGB0LjQuTpcbiog0JLQtdGA0YHQuNGPINCyINGE0L7RgNC80LDRgtC1IFtzZW12ZXJdKGh0dHBzOi8vc2VtdmVyLm9yZy9sYW5nL3J1LykuXG4qINCS0LXRgNGB0LjRjyDRgSDQv9GA0LXRhNC40LrRgdC+0LwgcHJlLiDQndCw0L/RgNC40LzQtdGALCBcXGBwcmU6bXktc3RhbmdlLWJyYW5jaC1uYW1lXFxgLCDQs9C00LUgXFxgbXktc3RhbmdlLWJyYW5jaC1uYW1lXFxgIC0g0L3QsNC30LLQsNC90LjQtSDQv9GA0LXQtNGA0LXQu9C40LfQvdC+0Lkg0LLQtdGA0YHQuNC4LCDQstGL0L/Rg9GB0LrQsNC10LzQvtC5INGA0LDQt9GA0LDQsdC+0YLRh9C40LrQsNC80LggQ2FuZHksINC00LvRjyDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0LPQviDQstGL0L/Rg9GB0LrQsCDRhNC+0YDQvC5cbtCS0LXRgNGB0LjRjyDRgSDQv9GA0LXRhNC40LrRgdC+0LwgcHJlINC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQtNC70Y8g0LTQstC40LbQutC+0LIsINC60L7RgtC+0YDRi9C1INC90LUg0Y/QstC70Y/RjtGC0YHRjyDRgdGC0LDQsdC40LvRjNC90YvQvNC4INC4INC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQtNC70Y8g0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3Ri9GFINGB0LHQvtGA0L7QuiDRhNC+0YDQvC5cbmAudHJpbSgpLFxuICAgIH1cbik7XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZEZvcm1zL0J1aWxkRm9ybXNPcHRpb25zLnRzIl0sIm5hbWVzIjpbImJ1aWxkRm9ybXNPcHRpb25zRGVmaW5pdGlvbiIsImFsaWFzIiwibmFtZSIsImRlZmF1bHRWYWx1ZSIsIndhdGNoIiwicGFyc2UiLCJpbnB1dCIsImRvZXNOb3RSZXF1aXJlVmFsdWUiLCJkZXNjcmlwdGlvbiIsImNsZWFuIiwidXBncmFkZUZvcm1Kc29uIiwiYnVpbGRDYWNoZU1vZGUiLCJCdWlsZENhY2hlTW9kZSIsIlJlYWRPbmx5IiwidXNlTGFzdFN0YWJsZVZlcnNpb24iLCJ1c2VQcmVyZWxlYXNlVmVyc2lvbiIsInVuZGVmaW5lZCIsInNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nIiwiZm9ybUdsb2JzIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwidXNlVmVyc2lvbkZyb21DYWNoZSIsImRldk1vZGVPcHRpb24iLCJsb2dWZXJib3NpdHlPcHRpb24iLCJkZXRhaWxlZERlc2NyaXB0aW9uIiwidHJpbSIsImV4YW1wbGVzIiwiZXh0ZW5kZWREZXRhaWxzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRUE7O0FBRUE7O0FBY08sTUFBTUEsMkJBQTJCLEdBQUcsa0RBQ3ZDLE9BRHVDLEVBRXZDLE9BRnVDLEVBR3ZDLGtEQUNJO0FBQ0lDLEVBQUFBLEtBQUssRUFBRSxHQURYO0FBRUlDLEVBQUFBLElBQUksRUFBRSxPQUZWO0FBR0lDLEVBQUFBLFlBQVksRUFBRTtBQUFFQyxJQUFBQSxLQUFLLEVBQUU7QUFBVCxHQUhsQjtBQUlJQyxFQUFBQSxLQUFLLEVBQUVDLEtBQUssS0FBSztBQUFFRixJQUFBQSxLQUFLLEVBQUVFO0FBQVQsR0FBTCxDQUpoQjtBQUtJQyxFQUFBQSxtQkFBbUIsRUFBRSxJQUx6QjtBQU1JQyxFQUFBQSxXQUFXLEVBQ1A7QUFQUixDQURKLEVBVUk7QUFDSU4sRUFBQUEsSUFBSSxF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O0FBSUlFLEVBQUFBLFdBQVcsRUFBRSw2REFKakI7QUFLSUQsRUFBQUEsbUJBQW1CLEVBQUU7QUFMekIsQ0FyRUosRUE0RUllLHFDQTVFSixFQTZFSUMsMENBN0VKLENBSHVDLEVBa0Z2QztBQUNJZixFQUFBQSxXQUFXLEVBQ1Asa0RBQ0Esc0ZBSFI7QUFLSWdCLEVBQUFBLG1CQUFtQixFQUFHO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQVQ2QixDQVMzQkMsSUFUMkIsRUFMekI7QUFnQklDLEVBQUFBLFFBQVEsRUFBRztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBcEJrQixDQW9CaEJELElBcEJnQixFQWhCZDtBQXNDSUUsRUFBQUEsZUFBZSxFQUFHO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQXhCeUIsQ0F3QnZCRixJQXhCdUI7QUF0Q3JCLENBbEZ1QyxDQUFwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbW1hbmREZWZpbml0aW9uLCBvcHRpb25zRGVmaW5pdGlvbiB9IGZyb20gXCIuLi8uLi9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlclwiO1xuaW1wb3J0IHsgQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbnNcIjtcbmltcG9ydCB7IGRldk1vZGVPcHRpb24sIGxvZ1ZlcmJvc2l0eU9wdGlvbiB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbkRlZmludGlvbnNcIjtcblxuaW1wb3J0IHsgQnVpbGRDYWNoZU1vZGUsIHBhcnNlQnVpbGRDYWNoZU1vZGUgfSBmcm9tIFwiLi9CdWlsZENhY2hlTW9kZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRm9ybXNPcHRpb25zIGV4dGVuZHMgQ29tbW9uT3B0aW9ucyB7XG4gICAgd2F0Y2g6IGJvb2xlYW47XG4gICAgY2xlYW46IGJvb2xlYW47XG4gICAgZm9ybUdsb2JzOiBzdHJpbmdbXTtcbiAgICB1cGdyYWRlRm9ybUpzb246IGJvb2xlYW47XG4gICAgdXNlTGFzdFN0YWJsZVZlcnNpb246IGJvb2xlYW47XG4gICAgdXNlUHJlcmVsZWFzZVZlcnNpb24/OiBzdHJpbmc7XG4gICAgc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmc6IGJvb2xlYW47XG4gICAgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbjtcbiAgICBidWlsZENhY2hlTW9kZTogQnVpbGRDYWNoZU1vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZEZvcm1zT3B0aW9uc0RlZmluaXRpb24gPSBjb21tYW5kRGVmaW5pdGlvbjxcImJ1aWxkXCIsIEJ1aWxkRm9ybXNPcHRpb25zPihcbiAgICBcImJ1aWxkXCIsXG4gICAgXCJidWlsZFwiLFxuICAgIG9wdGlvbnNEZWZpbml0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAgICBhbGlhczogXCJ3XCIsXG4gICAgICAgICAgICBuYW1lOiBcIndhdGNoXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgd2F0Y2g6IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgd2F0Y2g6IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwiV2F0Y2gt0YDQtdC20LjQvC4g0JLRi9C/0L7Qu9C90Y/QtdGCINGB0LHQvtGA0LrRgyDRhNC+0YDQvCwg0LAg0LfQsNGC0LXQvCDQv9C10YDQtdGB0L7QsdC40YDQsNC10YIg0L/RgNC4INC40LfQvNC10L3QtdC90LjRj9GFLiDQkiDRgtC+0Lwg0YfQuNGB0LvQtSDQtNCy0LjQttC60LAsINCz0LXQvdC10YDQsNGC0L7RgNCwINC4INGB0YLQsNGC0LjRh9C10YHQutC40YUg0YDQtdGB0YPRgNGB0L7Qsi5cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJjbGVhblwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGNsZWFuOiBmYWxzZSB9LFxuICAgICAgICAgICAgcGFyc2U6IGlucHV0ID0+ICh7IGNsZWFuOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICBcItCf0L7Qu9C90L7RgdGC0YzRjiDQvtGH0LjRidCw0LXRgiDRhtC10LvQtdCy0L7QuSDQutCw0YLQsNC70L7QsyDRgNC10YHRg9GA0YHQvtCyLiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0L/RgNC4INC/0L7Qu9C90L7QuSDRgdCx0L7RgNC60LUg0YTQvtGA0Lwg0LTQu9GPINC/0YDQvtC00LDQutGI0LXQvdCwXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidXBncmFkZS1mb3JtLWpzb25cIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyB1cGdyYWRlRm9ybUpzb246IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgdXBncmFkZUZvcm1Kc29uOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCLQpNC+0YDRgdC40YDRg9C10YIg0LjQt9C80LXQvdC10L3QuNC1INGE0L7RgNC80LDRgtCwINGE0LDQudC70LAgZm9ybS5qc29uINC90LAg0L3QvtCy0YvQuVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImJ1aWxkLWNhY2hlXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgYnVpbGRDYWNoZU1vZGU6IEJ1aWxkQ2FjaGVNb2RlLlJlYWRPbmx5IH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBzdHJpbmcpID0+ICh7IGJ1aWxkQ2FjaGVNb2RlOiBwYXJzZUJ1aWxkQ2FjaGVNb2RlKGlucHV0KSB9KSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0JfQsNC00LDRkdGCINGA0LXQttC40Lwg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0LrRjdGI0LAg0YHQsdC+0YDQutC4LiDQktC+0LfQvNC+0LbQvdGL0LUg0LfQvdCw0YfQtdC90LjRjzpcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIGRpc2FibGVkIC0g0L3QtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LrRjdGIXFxuXCIgK1xuICAgICAgICAgICAgICAgIFwiICByZWFkb25seSAtINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutGN0Ygg0LTQu9GPINGB0LHQvtGA0LrQuCwg0L3QviDQvdC1INC+0LHQvdC+0LLQu9GP0LXRgiDQtdCz0L4gKNC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4pXFxuXCIgK1xuICAgICAgICAgICAgICAgIFwiICB1cGRhdGUgLSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LrRjdGIINC00LvRjyDRgdCx0L7RgNC60Lgg0Lgg0L/RgNC10LfQsNC/0LjRgdGL0LLQsNGC0YwsINC10YHQu9C4INC90LUg0YHQvtCy0L/QsNC00LDQtdGCXFxuXCIgK1xuICAgICAgICAgICAgICAgIFwiICBmb3JjZS11cGRhdGUgLSDQstGB0LXQs9C00LAg0LLRi9C/0L7Qu9C90Y/RgtGMINGB0LHQvtGA0LrRgyDQuCDQvtCx0L3QvtCy0LjRgtGMINC30L3QsNGH0LXQvdC40Y8g0LIg0LrRjdGI0LVcXG5cIiArXG4gICAgICAgICAgICAgICAgXCLQntGC0LrQu9GO0YfQsNC10YLRgdGPINC/0YDQuCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQuCB3YXRjaC3RgNC10LbQuNC80LBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ1c2UtbGFzdC1zdGFibGUtdmVyc2lvblwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVzZUxhc3RTdGFibGVWZXJzaW9uOiBmYWxzZSB9LFxuICAgICAgICAgICAgcGFyc2U6IGlucHV0ID0+ICh7IHVzZUxhc3RTdGFibGVWZXJzaW9uOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICBcItCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0LXRgNGB0LjRjiDQtNCy0LjQttC60LAg0LIg0YTQsNC50LvQsCBgZm9ybS5qc29uYCDQsiDQv9C+0YHQu9C10LTQvdGO0Y4g0YHRgtCw0LHQuNC70YzQvdGD0Y4g0LLQtdGA0YHQuNGOLiDQkNC90LDQu9C+0LPQuNGH0LXQvSDQt9Cw0L/Rg9GB0LrRgyBjYW5keS1idWlsZCDRgSDQv9Cw0YDQsNC80LXRgtGA0L7QvCAtZ2UgbWFzdGVyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidXNlLXByZXJlbGVhc2UtdmVyc2lvblwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVzZVByZXJlbGVhc2VWZXJzaW9uOiB1bmRlZmluZWQgYXMgdW5kZWZpbmVkIHwgc3RyaW5nIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBzdHJpbmcpID0+ICh7IHVzZVByZXJlbGVhc2VWZXJzaW9uOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCDQsiDRhNCw0LnQu9CwIGZvcm0uanNvbiDQsiDQv9C+0YHQu9C10LTQvdGO0Y4g0L/RgNC10YDQtdC70LjQt9C90YPRjiDQstC10YDRgdC40Y4g0LIg0LfQsNC00LDQvdC90YvQvCBwcmVpZC4g0JIg0YTQsNC50LvQtSDQstC10YDRgdC40Lgg0LPQtdC90LXRgNCw0YLQvtGA0LAg0Lgg0LTQstC40LbQutCwINCx0YPQtNGD0YIg0YPRgdGC0LDQvdC+0LLQu9C10L3RiyDQsiBwcmU6c29tZS1wcmVpZC5cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJuby1yZWZvcm1hdFwiLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyBza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZzogdHJ1ZSB9LFxuICAgICAgICAgICAgcGFyc2U6IChpbnB1dDogYm9vbGVhbikgPT4gKHsgc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmc6IGlucHV0IH0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCLQntGC0LvRjtGH0LDQtdGCINGE0L7RgNC80LDRgtC40YDQvtCy0LDQvdC40LUg0LPQtdC90LXRgNC40YDRg9C10LzQvtCz0L4g0LrQvtC00LAuINCg0LDQsdC+0YLQsNC10YIsINGC0L7Qu9GM0LrQviDQtdGB0LvQuCDQstC10YDRgdC40Y8g0LPQtdC90LXRgNCw0YLQvtGA0LAg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGCINGN0YLRgyDQvtC/0YbQuNGOLiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINGD0YHQutC+0YDQtdC90LjRjyDRgdCx0L7RgNC60Lgg0YTQvtGA0LwuIChkZWZhdWx0OiB0cnVlKVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBhbGlhczogXCJnXCIsXG4gICAgICAgICAgICBuYW1lOiBcImdmdnNcIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyBmb3JtR2xvYnM6IFtdIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBzdHJpbmdbXSkgPT4gKHsgZm9ybUdsb2JzOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcItCe0LTQvdCwINC40LvQuCDQvdC10YHQutC+0LvRjNC60L4gR0ZWINC40LvQuCBHRlYt0LzQsNGB0L7QuiDQtNC70Y8g0L/QtdGA0LXRgdCx0L7RgNC60LguINCc0L7QttC10YIg0YHQvtC00LXRgNC20LDRgtGMINC30L3QsNGH0LrQuCBgP2Ag0LggYCpgLlwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZS12ZXJzaW9uLWZyb20tY2FjaGVcIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyB1c2VWZXJzaW9uRnJvbUNhY2hlOiBmYWxzZSB9LFxuICAgICAgICAgICAgcGFyc2U6IChpbnB1dDogYm9vbGVhbikgPT4gKHsgdXNlVmVyc2lvbkZyb21DYWNoZTogaW5wdXQgfSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCLQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCDQuCDQs9C10L3QtdGA0LDRgtC+0YDQsCDQuNC3INGE0LDQudC70L7QstC+0Lkg0YHQuNGB0YLQtdC80YtcIixcbiAgICAgICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRldk1vZGVPcHRpb24sXG4gICAgICAgIGxvZ1ZlcmJvc2l0eU9wdGlvblxuICAgICksXG4gICAge1xuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIFwi0JLRi9C/0L7Qu9C90Y/QtdGCINGB0LHQvtGA0LrRgyDQvtC00L3QvtC5INC40LvQuCDQvdC10YHQutC+0LvRjNC60LjRhSDRhNC+0YDQvC5cXG5cIiArXG4gICAgICAgICAgICBcItCf0L7QtNGA0L7QsdC90LXQtTogaHR0cHM6Ly9naXQuc2tia29udHVyLnJ1L2tlL2NhbmR5LXV0aWxzL2Jsb2IvbmV3LWNhbmR5LXRvb2wtY2xpL1JFQURNRS5tZFwiLFxuXG4gICAgICAgIGRldGFpbGVkRGVzY3JpcHRpb246IGBcbtCe0YHQvdC+0LLQvdC+0Lkg0YHRhtC10L3QsNGA0LjQuTog0LLRi9C/0L7Qu9C90Y/QtdGCINGB0LHQvtGA0LrRgyDRhNC+0YDQvCDQsiDQutCw0YLQsNC70L7QsyDRgSDRgNC10YHRg9GA0YHQsNC80LguINCU0LXQudGB0YLQstC40Y8sINC60L7RgtC+0YDRi9C1INCy0YvQv9C+0LvQvdGP0LXRgiDQutC+0LzQsNC90LTQsDpcblxuKiDQn9C+0LvRg9GH0LXQvdC40LUg0LTQstC40LbQutCwINGE0L7RgNC8INCy0LXRgNGB0LjQuCDRg9C60LDQt9Cw0L3QvdC+0Lkg0LIgXFxgZm9ybS5qc29uXFxgLFxuKiDQv9C+0LvRg9GH0LXQvdC40LUg0LPQtdC90LXRgNCw0YLQvtGA0LAg0YTQvtGA0Lwg0LLQtdGA0YHQuNC4INGD0LrQsNC30LDQvdC90L7QuSDQsiBcXGBmb3JtLmpzb25cXGAsXG4qINCz0LXQvdC10YDQsNGG0LjRjyDQuCDQutC+0LzQv9C40LvRj9GG0LjRjyDRhNC+0YDQvNGLINCyINC60LDRgtCw0LvQvtCzINGA0LXRgdGD0YDRgdC+0LIsXG4qINGB0L7Qt9C00LDQvdC40LUg0YTQsNC50LvQvtCyIFxcYHtnZnZ9Lm1ldGFzLmpzb25cXGAg0LggXFxgcHJlc2VudGF0aW9ucy5qc29uXFxgINCyINC60LDRgtCw0LvQvtCz0LUg0YDQtdGB0YPRgNGB0L7QslxuKiDQutC+0L/QuNGA0L7QstCw0L3QuNC1INC60L7QvdCy0LXRgNGC0LXRgNC+0LIg0LIg0LrQsNGC0LDQu9C+0LMg0YDQtdGB0YPRgNGB0L7Qsixcbiog0LrQvtC/0LjRgNC+0LLQsNC90LjQtSDRgdGF0LXQvNGLINCyINC60LDRgtCw0LvQvtCzINGA0LXRgdGD0YDRgdC+0LIuXG5gLnRyaW0oKSxcblxuICAgICAgICBleGFtcGxlczogYFxuXFxgXFxgXFxgXG4jINCh0LHQvtGA0LrQsCDRhNC+0YDQvNGLIDEwNDgxNlxuY2FuZHkgYnVpbGQgMTA0ODE2XG5cXGBcXGBcXGBcblxuXFxgXFxgXFxgXG4jINCh0LHQvtGA0LrQsCDQstGB0LUg0YTQvtGA0LzRiyDQs9GA0YPQv9C/0YsgMVxuY2FuZHkgYnVpbGQgMT8/Pz8/XG5cXGBcXGBcXGBcblxuXFxgXFxgXFxgXG4jINCh0L7QsdGA0LDRgtGMINGE0L7RgNC80YMgMTA0ODE2INC4INGB0LvQtdC00LjRgtGMINC30LAg0LjQt9C80LXQvdC10L3QuNGP0LzQuFxuY2FuZHkgYnVpbGQgMTA0ODE2IC13XG5cXGBcXGBcXGBcblxuXFxgXFxgXFxgXG4jINCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQv9C+0YHQu9C10LTQvdGO0Y4g0L/RgNC10YDQtdC70LjQt9C90YPRjiDQstC10YDRgdC40Y4g0LTQstC40LbQutCwINGBIHByZWlkPWJzb1xuY2FuZHkgYnVpbGQgMTA0ODE2IC0tdXNlLXByZXJlbGVhc2UtdmVyc2lvbiBic29cblxcYFxcYFxcYFxuYC50cmltKCksXG5cbiAgICAgICAgZXh0ZW5kZWREZXRhaWxzOiBgXG4jIyMg0JLQtdGA0YHQuNC+0L3QuNGA0L7QstCw0L3QuNC1XG5cbtCf0YDQuCDRgdCx0L7RgNC60LUg0YTQvtGA0LwsINGD0YfQuNGC0YvQstCw0LXRgtGB0Y8g0LLQtdGA0YHQuNGPINC00LLQuNC20LrQsCDQuCDQs9C10L3QtdGA0LDRgtC+0YDQsCDRg9C60LDQt9Cw0L3QvdGL0LUg0YTQsNC50LvQtSBmb3JtLmpzb24uINCS0LXRgNGB0LjQuCDQvNC+0LPRg9GCINGD0LrQsNC30YvQstCw0YLRjCDQvdC1INC90LAg0LrQvtC90LrRgNC10YLQvdGD0Y4g0LLQtdGA0YHQuNGOLCDQsCDQsNC00YDQtdGB0L7QstCw0YLRjCDQtNC40LDQv9Cw0LfQvtC9INCyINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjQuCDRgSBbc2VtdmVyXShodHRwczovL3NlbXZlci5vcmcvbGFuZy9ydS8pLlxu0JIg0Y3RgtC+0Lwg0YHQu9GD0YfQsNC1INCx0YPQtNC10YIg0LLRi9Cx0YDQsNC90LAg0L/QvtGB0LvQtdC00L3Rj9GPINC/0L7QtNGF0L7QtNGP0YnQsNGPINCy0LXRgNGB0LjRjy5cblxu0KTQsNC50LsgZm9ybS5qc29uINC00L7Qu9C20LXQvSDQstGL0LPQu9GP0LTQtdGC0Ywg0YHQu9C10LTRg9GO0YnQuNC8INC+0LHRgNCw0LfQvtC8OlxuXFxgXFxgXFxgXG57XG4gICAgLy8g0J7Qv9GG0LjQvtC90LDQu9GM0L3QvlxuICAgIFwidGhlbWVzXCI6IFtcItC40LzRjy3RgtC10LzRi1wiLCAuLi5dLFxuICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgXCJlbmdpbmVcIjogXCJb0LLQtdGA0YHQuNGPLdC00LLQuNC20LrQsF1cIixcbiAgICAgICAgXCJnZW5lcmF0b3JcIjogXCJb0LLQtdGA0YHQuNGPLdCz0LXQvdC10YDQsNGC0L7RgNCwXVwiXG4gICAgfVxufVxuXFxgXFxgXFxgXG5cblxcYNCy0LXRgNGB0LjRjy3QtNCy0LjQttC60LBcXGAsIFxcYNCy0LXRgNGB0LjRjy3Qs9C10L3QtdGA0LDRgtC+0YDQsFxcYCAtINCh0L7QvtGC0LLQtdGC0YHRgtCy0LXQvdC90L4sINC00LjQsNC/0LDQt9C+0L3RiyDQstC10YDRgdC40LkuINCd0LAg0LTQsNC90L3Ri9C5INC80L7QvNC10L3RgiDQstGB0LXQs9C00LAg0YHQvtCy0L/QsNC00LDRjtGCLlxuXG7QlNC+0L/Rg9GB0YLQuNC80YvQtSDQstCw0YDQuNCw0L3RgtGLINCy0LXRgNGB0LjQuTpcbiog0JLQtdGA0YHQuNGPINCyINGE0L7RgNC80LDRgtC1IFtzZW12ZXJdKGh0dHBzOi8vc2VtdmVyLm9yZy9sYW5nL3J1LykuXG4qINCS0LXRgNGB0LjRjyDRgSDQv9GA0LXRhNC40LrRgdC+0LwgcHJlLiDQndCw0L/RgNC40LzQtdGALCBcXGBwcmU6bXktc3RhbmdlLWJyYW5jaC1uYW1lXFxgLCDQs9C00LUgXFxgbXktc3RhbmdlLWJyYW5jaC1uYW1lXFxgIC0g0L3QsNC30LLQsNC90LjQtSDQv9GA0LXQtNGA0LXQu9C40LfQvdC+0Lkg0LLQtdGA0YHQuNC4LCDQstGL0L/Rg9GB0LrQsNC10LzQvtC5INGA0LDQt9GA0LDQsdC+0YLRh9C40LrQsNC80LggQ2FuZHksINC00LvRjyDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0LPQviDQstGL0L/Rg9GB0LrQsCDRhNC+0YDQvC5cbtCS0LXRgNGB0LjRjyDRgSDQv9GA0LXRhNC40LrRgdC+0LwgcHJlINC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQtNC70Y8g0LTQstC40LbQutC+0LIsINC60L7RgtC+0YDRi9C1INC90LUg0Y/QstC70Y/RjtGC0YHRjyDRgdGC0LDQsdC40LvRjNC90YvQvNC4INC4INC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQtNC70Y8g0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3Ri9GFINGB0LHQvtGA0L7QuiDRhNC+0YDQvC5cbmAudHJpbSgpLFxuICAgIH1cbik7XG4iXX0=
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -51,17 +53,6 @@ var _TypingUtils = require("../../../../Common/TypingUtils");
51
53
 
52
54
  var _WriteAttachmentPathFiles = require("../../BuildTasks/Form/WriteAttachmentPathFiles");
53
55
 
54
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
55
-
56
- (function () {
57
- var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
58
- enterModule && enterModule(module);
59
- })();
60
-
61
- var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
62
- return a;
63
- };
64
-
65
56
  function getGeneratorVersion(generatorSource) {
66
57
  if (generatorSource.type === "PublishedGenerator") {
67
58
  return generatorSource.version;
@@ -267,25 +258,4 @@ async function cleanTargetDirectory(resourcesDirectory, logger) {
267
258
  await (0, _fsExtra.emptyDir)(resourcesDirectory);
268
259
  logger.log("Resource directory clean");
269
260
  }
270
-
271
- ;
272
-
273
- (function () {
274
- var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
275
-
276
- if (!reactHotLoader) {
277
- return;
278
- }
279
-
280
- reactHotLoader.register(getGeneratorVersion, "getGeneratorVersion", "C:\\buildAgent\\work\\8df8f1edd755969c\\Tools\\src\\CLICommands\\BuildForms\\RunBuildForms.ts");
281
- reactHotLoader.register(runBuildForms, "runBuildForms", "C:\\buildAgent\\work\\8df8f1edd755969c\\Tools\\src\\CLICommands\\BuildForms\\RunBuildForms.ts");
282
- reactHotLoader.register(cleanTargetDirectory, "cleanTargetDirectory", "C:\\buildAgent\\work\\8df8f1edd755969c\\Tools\\src\\CLICommands\\BuildForms\\RunBuildForms.ts");
283
- })();
284
-
285
- ;
286
-
287
- (function () {
288
- var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
289
- leaveModule && leaveModule(module);
290
- })();
291
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZEZvcm1zL1J1bkJ1aWxkRm9ybXMudHMiXSwibmFtZXMiOlsiZ2V0R2VuZXJhdG9yVmVyc2lvbiIsImdlbmVyYXRvclNvdXJjZSIsInR5cGUiLCJ2ZXJzaW9uIiwiRXJyb3IiLCJydW5CdWlsZEZvcm1zIiwiY29udGV4dCIsIm9wdGlvbnMiLCJmYXJtRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZW5naW5lRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwiaGxGYXJtRGlyZWN0b3J5UGF0aCIsImJ1aWxkT3B0aW9ucyIsInBpY2tMaXN0c0NoYWluIiwiT2JzZXJ2ZSIsImZpbGVzIiwicGF0aCIsImpvaW4iLCJkbyIsIngiLCJGU1Rhc2siLCJjb3B5UmVjdXJzaXZlbHkiLCJsb2dnZXIiLCJ3aXRoUHJlZml4IiwiZm9ybUdsb2JzIiwiRm9ybUdsb2JzIiwidmFsaWRhdGVHbG9icyIsInJlc29sdmVTcGVjaWZpZXJzIiwic3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluIiwiX19kaXJuYW1lIiwicmVzb3VyY2VzTnVTcGVjQ2hhaW4iLCJjb3B5QnlNYXNrcyIsImNvcGllZEVuZ2luZXMiLCJTZXQiLCJidWlsZENhY2hlIiwiQnVpbGRDYWNoZSIsImJ1aWxkQ2FjaGVNb2RlIiwiYnVpbGRGb3Jtc0NoYWluIiwiZGlyZWN0b3J5Iiwic3BsaXRUb1BhcmFsbGVsQ2hhaW5zIiwiZ2Z2IiwiZm9ybURpclBhdGgiLCJ3YXJuaW5nIiwidmFsdWUiLCJmaWxlIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwidXBncmFkZUZvcm1Kc29uIiwidXNlTGFzdFN0YWJsZVZlcnNpb24iLCJ1c2VQcmVyZWxlYXNlVmVyc2lvbiIsImZpIiwibW9kZSIsIkZvcm1CdWlsZE1vZGUiLCJOb3JtYWxCdWlsZCIsImdlbmVyYXRvclZlcnNpb24iLCJ1bmRlZmluZWQiLCJlbmdpbmVWZXJzaW9uIiwiZW5naW5lU291cmNlIiwiYXR0YWNoIiwiU2luZ2xlVmFsdWVQcm9kdWNlciIsIk51bGxGb3JtR2VuZXJhdG9yIiwidXNlVmVyc2lvbkZyb21DYWNoZSIsInkiLCJnZW5lcmF0b3IiLCJoYXMiLCJhZGQiLCJmb3JtU291cmNlc1BhdGgiLCJkZXBlbmRlbmNpZXNIYXNoIiwic3VwcG9ydHNEZXBlbmRlbmNpZXNFeHRyYWN0aW9uIiwiZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaCIsImV4aXN0cyIsImxvZyIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwic2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmciLCJyZXNvdXJjZXNIYXNoIiwiZXh0cmFjdCIsImJ1aWxkQ2FjaGVPcHRpb25zIiwiZGVwc0hhc2giLCJmb3JtTmFtZSIsInRoZW1lcyIsIkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcyIsImNvcHlGaWxlIiwid2F0Y2giLCJub3RpZmllciIsIm5vdGlmeSIsInRpdGxlIiwibWVzc2FnZSIsImNsZWFuIiwiY2xlYW5UYXJnZXREaXJlY3RvcnkiLCJzdG9wT2JzZXJ2ZTEiLCJvYnNlcnZlIiwic3RvcE9ic2VydmUyIiwic3RvcE9ic2VydmUzIiwic3RvcE9ic2VydmU0Iiwid2FpdEZvckV4aXQiLCJzdGFydERhdGUiLCJEYXRlIiwibm93IiwiY3VycmVudFZhbHVlIiwiY29uc29sZSIsImNoYWxrIiwiZ3JlZW5CcmlnaHQiLCJ0b3RhbFRpbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7OztBQUlBLFNBQVNBLG1CQUFULENBQTZCQyxlQUE3QixFQUF1RTtBQUNuRSxNQUFJQSxlQUFlLENBQUNDLElBQWhCLEtBQXlCLG9CQUE3QixF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dCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7IGVtcHR5RGlyLCBwYXRoRXhpc3RzIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgbm90aWZpZXIgZnJvbSBcIm5vZGUtbm90aWZpZXJcIjtcblxuaW1wb3J0IHsgZW5naW5lRmFjdG9yeSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0VuZ2luZS9BY3F1aXJlRm9ybUVuZ2luZVwiO1xuaW1wb3J0IHsgZ2V0RW5naW5lU291cmNlS2V5IH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRW5naW5lL0VuZ2luZVNvdXJjZVwiO1xuaW1wb3J0IHsgY29tcGlsZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0NvbXBpbGVGb3JtXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuaW1wb3J0IHsgTnVsbEZvcm1HZW5lcmF0b3IgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL051bGxGb3JtR2VuZXJhdG9yXCI7XG5pbXBvcnQgeyB3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzXCI7XG5pbXBvcnQgeyBGU1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9GU1Rhc2tcIjtcbmltcG9ydCB7XG4gICAgZ2VuZXJhdG9yRmFjdG9yeSxcbiAgICBHZW5lcmF0b3JTb3VyY2UsXG4gICAgZ2V0R2VuZXJhdG9yU291cmNlS2V5LFxufSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVFbmdpbmVWZXJzaW9uLCByZXNvbHZlR2VuZXJhdG9yVmVyc2lvbiB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1B1Ymxpc2hlZFZlcnNpb25VdGlsc1wiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkTW9kZSwgcmVzb2x2ZUZvcm1JbmZvIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyB3cml0ZUZvcm1NZXRhIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvV3JpdGVGb3JtTWV0YVwiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvT2JzZXJ2ZVwiO1xuaW1wb3J0IHsgU2luZ2xlVmFsdWVQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9TaW5nbGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBwcmludFRpbWUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UaW1pbmdVdGlsc1wiO1xuaW1wb3J0IHsgQnVpbGRDYWNoZSB9IGZyb20gXCIuLi8uLi9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vQ2FjaGVBc3NldHNQbHVnaW5cIjtcbmltcG9ydCB7IHJlamVjdCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB7IHdyaXRlQXR0YWNobWVudFBhdGhGaWxlcyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzXCI7XG5cbmltcG9ydCB7IEJ1aWxkRm9ybXNPcHRpb25zIH0gZnJvbSBcIi4vQnVpbGRGb3Jtc09wdGlvbnNcIjtcblxuZnVuY3Rpb24gZ2V0R2VuZXJhdG9yVmVyc2lvbihnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSk6IHN0cmluZyB7XG4gICAgaWYgKGdlbmVyYXRvclNvdXJjZS50eXBlID09PSBcIlB1Ymxpc2hlZEdlbmVyYXRvclwiKSB7XG4gICAgICAgIHJldHVybiBnZW5lcmF0b3JTb3VyY2UudmVyc2lvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkUHJvZ3JhbVN0YXRlXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkJ1aWxkRm9ybXMoXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBCdWlsZEZvcm1zT3B0aW9ucyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgaGxGYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidWlsZE9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgY29uc3QgcGlja0xpc3RzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSwgXCIqLmpzb25cIikuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoXCJQSUNLTElTVFNcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGlja2xpc3RzXCIpKVxuICAgICk7XG5cbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMudmFsaWRhdGVHbG9icyhcbiAgICAgICAgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKGJ1aWxkT3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpLFxuICAgICAgICBmYXJtRGlyZWN0b3J5XG4gICAgKTtcblxuICAgIGNvbnN0IHN0YXRpY1Jlc291cmNlc0ZvclByb2R1Y3Rpb25DaGFpbiA9IE9ic2VydmUuZmlsZXMoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIlN0YXRpY0ZpbGVzRm9yUHJvZHVjdGlvblJlc291cmNlc0RpclwiKSxcbiAgICAgICAgXCIqLmpzXCIsXG4gICAgICAgIFwiKi5qcy5tYXBcIlxuICAgICkuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTVEFUSUNTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInB1YmxpY1wiLCBcInNjcmlwdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc291cmNlc051U3BlY0NoYWluID0gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSksIFwiKi5udXNwZWNcIikuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weUJ5TWFza3MoZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk5VU1BFQ1wiKSwgeCwgW1wiKi5udXNwZWNcIl0sIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnkpKVxuICAgICk7XG5cbiAgICBjb25zdCBjb3BpZWRFbmdpbmVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBjb25zdCBidWlsZENhY2hlID0gbmV3IEJ1aWxkQ2FjaGUoZmFybURpcmVjdG9yeSwgb3B0aW9ucy5idWlsZENhY2hlTW9kZSk7XG4gICAgY29uc3QgYnVpbGRGb3Jtc0NoYWluID0gT2JzZXJ2ZS5kaXJlY3RvcnkocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiksIGZvcm1HbG9icykuc3BsaXRUb1BhcmFsbGVsQ2hhaW5zKFxuICAgICAgICB4ID0+IHgsXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgYXN5bmMgZ2Z2ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcblxuICAgICAgICAgICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpKSkpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKFxuICAgICAgICAgICAgICAgICAgICBgRm9ybSAke2dmdn0gZG9lcyBub3QgaGF2ZSBmb3JtLmpzb24gZmlsZS4gVG8gaW5jbHVkZSB0aGlzIGZvcm0gdG8gYnVpbGQgcHJvY2VzcyByZXN0YXJ0IGJ1aWxkYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUudmFsdWUoe30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gT2JzZXJ2ZS5maWxlKHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIikpXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShmb3JtSnNvbkZpbGUgPT5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZUZvcm1JbmZvKFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUpzb25GaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURpclBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBGT1JNOiR7Z2Z2fWApLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51cGdyYWRlRm9ybUpzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnVzZUxhc3RTdGFibGVWZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51c2VQcmVyZWxlYXNlVmVyc2lvblxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkubW9kZSA9PT0gRm9ybUJ1aWxkTW9kZS5Ob3JtYWxCdWlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2VuZXJhdG9yVmVyc2lvbiBpcyBubyBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmVuZ2luZVZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZW5naW5lVmVyc2lvbiBpcyBubyBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IGF3YWl0IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3JWZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGdmdilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogYXdhaXQgcmVzb2x2ZUVuZ2luZVZlcnNpb24oZmkuZW5naW5lVmVyc2lvbiwgY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChnZnYpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNpbmdsZVZhbHVlUHJvZHVjZXIobmV3IE51bGxGb3JtR2VuZXJhdG9yKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yRmFjdG9yeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yU291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlVmVyc2lvbkZyb21DYWNoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvclNvdXJjZSAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdldEdlbmVyYXRvclNvdXJjZUtleShmaS5nZW5lcmF0b3JTb3VyY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIk51bGxGb3JtR2VuZXJhdG9yXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmVuZ2luZVNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVByb2R1Y2VyKFwiTnVsbEVuZ2luZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmdpbmVGYWN0b3J5KGZpLmVuZ2luZVNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBvcHRpb25zLnVzZVZlcnNpb25Gcm9tQ2FjaGUpLmRvKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzeW5jIHggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvcGllZEVuZ2luZXMuaGFzKGdldEVuZ2luZVNvdXJjZUtleShmaS5lbmdpbmVTb3VyY2UpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiRU5HSU5FXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwdWJsaWNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3BpZWRFbmdpbmVzLmFkZChnZXRFbmdpbmVTb3VyY2VLZXkoZmkuZW5naW5lU291cmNlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBmaSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gKGZpLmVuZ2luZVNvdXJjZSAhPSB1bmRlZmluZWQgPyBnZXRFbmdpbmVTb3VyY2VLZXkoZmkuZW5naW5lU291cmNlKSA6IFwiTnVsbEVuZ2luZVwiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2NoZW1hcy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1Z2FyLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29udHJvbHMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhdXRvY2FsYy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlbHBlcnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9ucy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsaXphdGlvbi8qKi8qXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRlcGVuZGVuY2llc0hhc2g6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLm1vZGUgIT09IEZvcm1CdWlsZE1vZGUuTm9ybWFsQnVpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzSGFzaDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoYXdhaXQgZmkuZ2VuZXJhdG9yLnN1cHBvcnRzRGVwZW5kZW5jaWVzRXh0cmFjdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoID0gYXdhaXQgZmkuZ2VuZXJhdG9yLmdldEFsbERlcGVuZGVuY2llc0hhc2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURpclBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc0hhc2g6IGRlcGVuZGVuY2llc0hhc2gsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZ2VuZXJhdG9yU291cmNlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhd2FpdCBidWlsZENhY2hlLmV4aXN0cyhmaS5nZW5lcmF0b3JTb3VyY2UsIGdmdiwgZmkuZGVwZW5kZW5jaWVzSGFzaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBHRU5FUkFURToke2dmdn1gKS5sb2coXCJTa2lwcGVkIGR1ZSBidWlsZCBjYWNoZSBleGl0c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaGxGYXJtRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwQ29kZVJlZm9ybWF0dGluZzogb3B0aW9ucy5za2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNIYXNoOiBmaS5kZXBlbmRlbmNpZXNIYXNoID8/IFwiVW5kZWZpbmVkUmVzb3VyY2VzSGFzaFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PiBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtXCIpLCBcIioqLypcIikpXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhd2FpdCBidWlsZENhY2hlLmV4aXN0cyhmaS5nZW5lcmF0b3JTb3VyY2UsIGdmdiwgZmkuZGVwZW5kZW5jaWVzSGFzaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBDT01QSUxFOiR7Z2Z2fWApLmxvZyhcIlNraXBwZWQgZHVlIGJ1aWxkIGNhY2hlIGV4aXN0c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBidWlsZENhY2hlLmV4dHJhY3QoZmkuZ2VuZXJhdG9yU291cmNlLCBnZnYsIGZpLmRlcGVuZGVuY2llc0hhc2gsIHJlc291cmNlc0RpcmVjdG9yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkQ2FjaGVPcHRpb25zID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2ggIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwc0hhc2g6IGZpLmRlcGVuZGVuY2llc0hhc2gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yVmVyc2lvbjogZ2V0R2VuZXJhdG9yVmVyc2lvbihmaS5nZW5lcmF0b3JTb3VyY2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IG9wdGlvbnMuYnVpbGRDYWNoZU1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeTogZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY29tcGlsZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLnRoZW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5kZXBlbmRlbmNpZXNIYXNoID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoaXMgdmVyc2lvbiBvZiBnZW5lcmF0b3IgaXMgbm90IHN1cHBvcnRlZCBkdWUgdG8gZGVwZW5kZW5jaWVzIGV4dHJhY3Rpb24gaXMgbm90IHN1cHBvcnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGb3JtTWV0YShcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmVuZ2luZVNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2ggPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhpcyB2ZXJzaW9uIG9mIGdlbmVyYXRvciBpcyBub3Qgc3VwcG9ydGVkIGR1ZSB0byBkZXBlbmRlbmNpZXMgZXh0cmFjdGlvbiBpcyBub3Qgc3VwcG9ydGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkudGhlbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGVPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZ2VuZXJhdG9yU291cmNlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkQ2FjaGVPcHRpb25zID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2ggIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwc0hhc2g6IGZpLmRlcGVuZGVuY2llc0hhc2gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yVmVyc2lvbjogZ2V0R2VuZXJhdG9yVmVyc2lvbihmaS5nZW5lcmF0b3JTb3VyY2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IG9wdGlvbnMuYnVpbGRDYWNoZU1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeTogZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkubW9kZSA9PT0gRm9ybUJ1aWxkTW9kZS5Db3B5TGVnYWN5UHJlYnVpbHRSZXNvdXJjZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibGVnYWN5LXByZWJ1aWx0XCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJMRUdBQ1ktUFJFQlVJTFRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlVmFsdWVQcm9kdWNlcihcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwic2NoZW1hc1wiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTQ0hFTUFTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJzY2hlbWFzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwiY29udmVydGVyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZShwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInByZXNlbnRhdGlvbnMuanNvblwiKSkuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJQUkVTRU5UQVRJT05TXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwcmVzZW50YXRpb25zXCIsIGAke2dmdn0ucHJlc2VudGF0aW9ucy5qc29uYClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJub3JtYWxpemVcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTk9STUFMSVpFXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJub3JtYWxpemVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJwYXRjaFwiKSwgXCIqLnhzbHRcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiUEFUQ0hcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInBhdGNoXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibWFwXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk1BUFwiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJtYXBcIikpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwidW5tYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiVU5NQVBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInVubWFwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJ1aWxkT3B0aW9ucy53YXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZXIubm90aWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYCR7ZmkuZm9ybU5hbWV9OiDRgdCx0L7RgNC60LAg0LfQsNCy0LXRgNGI0LXQvdCwYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRW5naW5lOiAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5lbmdpbmVTb3VyY2UgPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiW05vRW5naW5lXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZpLmVuZ2luZVNvdXJjZS50eXBlID09PSBcIkxvY2FsRW5naW5lU291cmNlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwibG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmaS5lbmdpbmVTb3VyY2UudmVyc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAoYnVpbGRPcHRpb25zLndhdGNoKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmNsZWFuKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGVhblRhcmdldERpcmVjdG9yeShyZXNvdXJjZXNEaXJlY3RvcnksIGNvbnRleHQubG9nZ2VyKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTEgPSBhd2FpdCBwaWNrTGlzdHNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlMiA9IGF3YWl0IGJ1aWxkRm9ybXNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlMyA9IGF3YWl0IHN0YXRpY1Jlc291cmNlc0ZvclByb2R1Y3Rpb25DaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlNCA9IGF3YWl0IHJlc291cmNlc051U3BlY0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgYXdhaXQgY29udGV4dC53YWl0Rm9yRXhpdCgpO1xuICAgICAgICBpZiAoc3RvcE9ic2VydmUzICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0b3BPYnNlcnZlNCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlNCgpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMigpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBEYXRlLm5vdygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2xlYW4pIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBjbGVhblRhcmdldERpcmVjdG9yeShyZXNvdXJjZXNEaXJlY3RvcnksIGNvbnRleHQubG9nZ2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHBpY2tMaXN0c0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGF3YWl0IHN0YXRpY1Jlc291cmNlc0ZvclByb2R1Y3Rpb25DaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBhd2FpdCByZXNvdXJjZXNOdVNwZWNDaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBhd2FpdCBidWlsZEZvcm1zQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuQnJpZ2h0KFwiQnVpbGQgc3VjY2Vzc1wiKSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBjb25zdCB0b3RhbFRpbWUgPSBEYXRlLm5vdygpIC0gc3RhcnREYXRlO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBUb3RhbCB0aW1lOiAke3ByaW50VGltZSh0b3RhbFRpbWUpfWApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjbGVhblRhcmdldERpcmVjdG9yeShyZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbG9nZ2VyLmxvZyhcIkNsZWFuaW5nIHJlc291cmNlIGRpcmVjdG9yeS4gXCIgKyByZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGF3YWl0IGVtcHR5RGlyKHJlc291cmNlc0RpcmVjdG9yeSk7XG4gICAgbG9nZ2VyLmxvZyhcIlJlc291cmNlIGRpcmVjdG9yeSBjbGVhblwiKTtcbn1cbiJdfQ==
261
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZEZvcm1zL1J1bkJ1aWxkRm9ybXMudHMiXSwibmFtZXMiOlsiZ2V0R2VuZXJhdG9yVmVyc2lvbiIsImdlbmVyYXRvclNvdXJjZSIsInR5cGUiLCJ2ZXJzaW9uIiwiRXJyb3IiLCJydW5CdWlsZEZvcm1zIiwiY29udGV4dCIsIm9wdGlvbnMiLCJmYXJtRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZW5naW5lRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwiaGxGYXJtRGlyZWN0b3J5UGF0aCIsImJ1aWxkT3B0aW9ucyIsInBpY2tMaXN0c0NoYWluIiwiT2JzZXJ2ZSIsImZpbGVzIiwicGF0aCIsImpvaW4iLCJkbyIsIngiLCJGU1Rhc2siLCJjb3B5UmVjdXJzaXZlbHkiLCJsb2dnZXIiLCJ3aXRoUHJlZml4IiwiZm9ybUdsb2JzIiwiRm9ybUdsb2JzIiwidmFsaWRhdGVHbG9icyIsInJlc29sdmVTcGVjaWZpZXJzIiwic3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluIiwiX19kaXJuYW1lIiwicmVzb3VyY2VzTnVTcGVjQ2hhaW4iLCJjb3B5QnlNYXNrcyIsImNvcGllZEVuZ2luZXMiLCJTZXQiLCJidWlsZENhY2hlIiwiQnVpbGRDYWNoZSIsImJ1aWxkQ2FjaGVNb2RlIiwiYnVpbGRGb3Jtc0NoYWluIiwiZGlyZWN0b3J5Iiwic3BsaXRUb1BhcmFsbGVsQ2hhaW5zIiwiZ2Z2IiwiZm9ybURpclBhdGgiLCJ3YXJuaW5nIiwidmFsdWUiLCJmaWxlIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwidXBncmFkZUZvcm1Kc29uIiwidXNlTGFzdFN0YWJsZVZlcnNpb24iLCJ1c2VQcmVyZWxlYXNlVmVyc2lvbiIsImZpIiwibW9kZSIsIkZvcm1CdWlsZE1vZGUiLCJOb3JtYWxCdWlsZCIsImdlbmVyYXRvclZlcnNpb24iLCJ1bmRlZmluZWQiLCJlbmdpbmVWZXJzaW9uIiwiZW5naW5lU291cmNlIiwiYXR0YWNoIiwiU2luZ2xlVmFsdWVQcm9kdWNlciIsIk51bGxGb3JtR2VuZXJhdG9yIiwidXNlVmVyc2lvbkZyb21DYWNoZSIsInkiLCJnZW5lcmF0b3IiLCJoYXMiLCJhZGQiLCJmb3JtU291cmNlc1BhdGgiLCJkZXBlbmRlbmNpZXNIYXNoIiwic3VwcG9ydHNEZXBlbmRlbmNpZXNFeHRyYWN0aW9uIiwiZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaCIsImV4aXN0cyIsImxvZyIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwic2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmciLCJyZXNvdXJjZXNIYXNoIiwiZXh0cmFjdCIsImJ1aWxkQ2FjaGVPcHRpb25zIiwiZGVwc0hhc2giLCJmb3JtTmFtZSIsInRoZW1lcyIsIkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcyIsImNvcHlGaWxlIiwid2F0Y2giLCJub3RpZmllciIsIm5vdGlmeSIsInRpdGxlIiwibWVzc2FnZSIsImNsZWFuIiwiY2xlYW5UYXJnZXREaXJlY3RvcnkiLCJzdG9wT2JzZXJ2ZTEiLCJvYnNlcnZlIiwic3RvcE9ic2VydmUyIiwic3RvcE9ic2VydmUzIiwic3RvcE9ic2VydmU0Iiwid2FpdEZvckV4aXQiLCJzdGFydERhdGUiLCJEYXRlIiwibm93IiwiY3VycmVudFZhbHVlIiwiY29uc29sZSIsImNoYWxrIiwiZ3JlZW5CcmlnaHQiLCJ0b3RhbFRpbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUlBLFNBQVNBLG1CQUFULENBQTZCQyxlQUE3QixFQUF1RTtBQUNuRSxNQUFJQSxlQUFlLENBQUNDLElBQWhCLEtBQXlCLG9CQUE3QixFQUFtRDtBQUMv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dEMsU0FBcEIsRUFBK0I7QUFDM0IsWUFBTXNDLFlBQVksRUFBbEI7QUFDSDs7QUFDRCxVQUFNRixZQUFZLEVBQWxCO0FBQ0EsVUFBTUYsWUFBWSxFQUFsQjtBQUNILEdBakJELE1BaUJPO0FBQ0gsVUFBTU0sU0FBUyxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBbEI7O0FBQ0EsUUFBSTtBQUNBLFVBQUkzRixPQUFPLENBQUNpRixLQUFaLEVBQW1CO0FBQ2YsY0FBTUMsb0JBQW9CLENBQUNoRixrQkFBRCxFQUFxQkgsT0FBTyxDQUFDaUIsTUFBN0IsQ0FBMUI7QUFDSDs7QUFDRCxZQUFNVCxjQUFjLENBQUNxRixZQUFyQjtBQUNBLFlBQU10RSxpQ0FBaUMsQ0FBQ3NFLFlBQXhDO0FBQ0EsWUFBTXBFLG9CQUFvQixDQUFDb0UsWUFBM0I7QUFDQSxZQUFNN0QsZUFBZSxDQUFDNkQsWUFBdEIsQ0FQQSxDQVFBOztBQUNBQyxNQUFBQSxPQUFPLENBQUM1QixHQUFSLENBQVk2QixlQUFNQyxXQUFOLENBQWtCLGVBQWxCLENBQVo7QUFDSCxLQVZELFNBVVU7QUFDTixZQUFNQyxTQUFTLEdBQUdOLElBQUksQ0FBQ0MsR0FBTCxLQUFhRixTQUEvQixDQURNLENBRU47O0FBQ0FJLE1BQUFBLE9BQU8sQ0FBQzVCLEdBQVIsQ0FBYSxlQUFjLDRCQUFVK0IsU0FBVixDQUFxQixFQUFoRDtBQUNIO0FBQ0o7QUFDSjs7QUFFRCxlQUFlZCxvQkFBZixDQUFvQ2hGLGtCQUFwQyxFQUFnRWMsTUFBaEUsRUFBZ0c7QUFDNUZBLEVBQUFBLE1BQU0sQ0FBQ2lELEdBQVAsQ0FBVyxrQ0FBa0MvRCxrQkFBN0M7QUFDQSxRQUFNLHVCQUFTQSxrQkFBVCxDQUFOO0FBQ0FjLEVBQUFBLE1BQU0sQ0FBQ2lELEdBQVAsQ0FBVywwQkFBWDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHsgZW1wdHlEaXIsIHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBub3RpZmllciBmcm9tIFwibm9kZS1ub3RpZmllclwiO1xuXG5pbXBvcnQgeyBlbmdpbmVGYWN0b3J5IH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRW5naW5lL0FjcXVpcmVGb3JtRW5naW5lXCI7XG5pbXBvcnQgeyBnZXRFbmdpbmVTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmUvRW5naW5lU291cmNlXCI7XG5pbXBvcnQgeyBjb21waWxlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vQ29tcGlsZUZvcm1cIjtcbmltcG9ydCB7IGdlbmVyYXRlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5pbXBvcnQgeyBOdWxsRm9ybUdlbmVyYXRvciB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vTnVsbEZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHdyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL1dyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXNcIjtcbmltcG9ydCB7IEZTVGFzayB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0ZTVGFza1wiO1xuaW1wb3J0IHtcbiAgICBnZW5lcmF0b3JGYWN0b3J5LFxuICAgIEdlbmVyYXRvclNvdXJjZSxcbiAgICBnZXRHZW5lcmF0b3JTb3VyY2VLZXksXG59IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUVuZ2luZVZlcnNpb24sIHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRNb2RlLCByZXNvbHZlRm9ybUluZm8gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IHdyaXRlRm9ybU1ldGEgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Xcml0ZUZvcm1NZXRhXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9PYnNlcnZlXCI7XG5pbXBvcnQgeyBTaW5nbGVWYWx1ZVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL1NpbmdsZVZhbHVlUHJvZHVjZXJcIjtcbmltcG9ydCB7IHByaW50VGltZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1RpbWluZ1V0aWxzXCI7XG5pbXBvcnQgeyBCdWlsZENhY2hlIH0gZnJvbSBcIi4uLy4uL0Zvcm1XZWJwYWNrQ29uZmlndXJhdGlvbi9DYWNoZUFzc2V0c1BsdWdpblwiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUF0dGFjaG1lbnRQYXRoRmlsZXNcIjtcblxuaW1wb3J0IHsgQnVpbGRGb3Jtc09wdGlvbnMgfSBmcm9tIFwiLi9CdWlsZEZvcm1zT3B0aW9uc1wiO1xuXG5mdW5jdGlvbiBnZXRHZW5lcmF0b3JWZXJzaW9uKGdlbmVyYXRvclNvdXJjZTogR2VuZXJhdG9yU291cmNlKTogc3RyaW5nIHtcbiAgICBpZiAoZ2VuZXJhdG9yU291cmNlLnR5cGUgPT09IFwiUHVibGlzaGVkR2VuZXJhdG9yXCIpIHtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRvclNvdXJjZS52ZXJzaW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWRQcm9ncmFtU3RhdGVcIik7XG4gICAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuQnVpbGRGb3JtcyhcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IEJ1aWxkRm9ybXNPcHRpb25zLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBlbmdpbmVEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBwaWNrTGlzdHNDaGFpbiA9IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpLCBcIiouanNvblwiKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChcIlBJQ0tMSVNUU1wiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IGZvcm1HbG9icyA9IGF3YWl0IEZvcm1HbG9icy52YWxpZGF0ZUdsb2JzKFxuICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMoYnVpbGRPcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSksXG4gICAgICAgIGZhcm1EaXJlY3RvcnlcbiAgICApO1xuXG4gICAgY29uc3Qgc3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluID0gT2JzZXJ2ZS5maWxlcyhcbiAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwiU3RhdGljRmlsZXNGb3JQcm9kdWN0aW9uUmVzb3VyY2VzRGlyXCIpLFxuICAgICAgICBcIiouanNcIixcbiAgICAgICAgXCIqLmpzLm1hcFwiXG4gICAgKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlNUQVRJQ1NcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicHVibGljXCIsIFwic2NyaXB0c1wiKSlcbiAgICApO1xuXG4gICAgY29uc3QgcmVzb3VyY2VzTnVTcGVjQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5KSwgXCIqLm51c3BlY1wiKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5QnlNYXNrcyhnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTlVTUEVDXCIpLCB4LCBbXCIqLm51c3BlY1wiXSwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgKTtcblxuICAgIGNvbnN0IGNvcGllZEVuZ2luZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IGJ1aWxkQ2FjaGUgPSBuZXcgQnVpbGRDYWNoZShmYXJtRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkQ2FjaGVNb2RlKTtcbiAgICBjb25zdCBidWlsZEZvcm1zQ2hhaW4gPSBPYnNlcnZlLmRpcmVjdG9yeShwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSwgZm9ybUdsb2JzKS5zcGxpdFRvUGFyYWxsZWxDaGFpbnMoXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICBhc3luYyBnZnYgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuXG4gICAgICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIikpKSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm5pbmcoXG4gICAgICAgICAgICAgICAgICAgIGBGb3JtICR7Z2Z2fSBkb2VzIG5vdCBoYXZlIGZvcm0uanNvbiBmaWxlLiBUbyBpbmNsdWRlIHRoaXMgZm9ybSB0byBidWlsZCBwcm9jZXNzIHJlc3RhcnQgYnVpbGRgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JzZXJ2ZS52YWx1ZSh7fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGZvcm1Kc29uRmlsZSA9PlxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlRm9ybUluZm8oXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtSnNvbkZpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtnZnZ9YCksXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnVwZ3JhZGVGb3JtSnNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlTGFzdFN0YWJsZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnVzZVByZXJlbGVhc2VWZXJzaW9uXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5tb2RlID09PSBGb3JtQnVpbGRNb2RlLk5vcm1hbEJ1aWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZ2VuZXJhdG9yVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnZW5lcmF0b3JWZXJzaW9uIGlzIG5vIGRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZW5naW5lVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJlbmdpbmVWZXJzaW9uIGlzIG5vIGRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogYXdhaXQgcmVzb2x2ZUdlbmVyYXRvclZlcnNpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvclZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoZ2Z2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiBhd2FpdCByZXNvbHZlRW5naW5lVmVyc2lvbihmaS5lbmdpbmVWZXJzaW9uLCBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGdmdikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZ2VuZXJhdG9yU291cmNlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlVmFsdWVQcm9kdWNlcihuZXcgTnVsbEZvcm1HZW5lcmF0b3IoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3JGYWN0b3J5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3JTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51c2VWZXJzaW9uRnJvbUNhY2hlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKGZpLCB5KSA9PiAoeyAuLi5maSwgZ2VuZXJhdG9yOiB5IH0pLFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yU291cmNlICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZ2V0R2VuZXJhdG9yU291cmNlS2V5KGZpLmdlbmVyYXRvclNvdXJjZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiTnVsbEZvcm1HZW5lcmF0b3JcIlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZW5naW5lU291cmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNpbmdsZVZhbHVlUHJvZHVjZXIoXCJOdWxsRW5naW5lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuZ2luZUZhY3RvcnkoZmkuZW5naW5lU291cmNlLCBjYW5keU1vZHVsZXNEaXJlY3RvcnksIG9wdGlvbnMudXNlVmVyc2lvbkZyb21DYWNoZSkuZG8oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN5bmMgeCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY29waWVkRW5naW5lcy5oYXMoZ2V0RW5naW5lU291cmNlS2V5KGZpLmVuZ2luZVNvdXJjZSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJFTkdJTkVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInB1YmxpY1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcGllZEVuZ2luZXMuYWRkKGdldEVuZ2luZVNvdXJjZUtleShmaS5lbmdpbmVTb3VyY2UpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIGZpID0+IGZpLFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiAoZmkuZW5naW5lU291cmNlICE9IHVuZGVmaW5lZCA/IGdldEVuZ2luZVNvdXJjZUtleShmaS5lbmdpbmVTb3VyY2UpIDogXCJOdWxsRW5naW5lXCIpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1Tb3VyY2VzUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiLi4vLi4vY29udHJvbHMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzY2hlbWFzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3VnYXIvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb250cm9scy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImF1dG9jYWxjLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGVscGVycy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInZhbGlkYXRpb25zLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYWxpemF0aW9uLyoqLypcIlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGVwZW5kZW5jaWVzSGFzaDogdW5kZWZpbmVkIHwgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkubW9kZSAhPT0gRm9ybUJ1aWxkTW9kZS5Ob3JtYWxCdWlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChhd2FpdCBmaS5nZW5lcmF0b3Iuc3VwcG9ydHNEZXBlbmRlbmNpZXNFeHRyYWN0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc0hhc2ggPSBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzSGFzaDogZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JTb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5kZXBlbmRlbmNpZXNIYXNoICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF3YWl0IGJ1aWxkQ2FjaGUuZXhpc3RzKGZpLmdlbmVyYXRvclNvdXJjZSwgZ2Z2LCBmaS5kZXBlbmRlbmNpZXNIYXNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEdFTkVSQVRFOiR7Z2Z2fWApLmxvZyhcIlNraXBwZWQgZHVlIGJ1aWxkIGNhY2hlIGV4aXRzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1Tb3VyY2VzUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBDb2RlUmVmb3JtYXR0aW5nOiBvcHRpb25zLnNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0hhc2g6IGZpLmRlcGVuZGVuY2llc0hhc2ggPz8gXCJVbmRlZmluZWRSZXNvdXJjZXNIYXNoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIiksIFwiKiovKlwiKSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZ2VuZXJhdG9yU291cmNlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5kZXBlbmRlbmNpZXNIYXNoICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF3YWl0IGJ1aWxkQ2FjaGUuZXhpc3RzKGZpLmdlbmVyYXRvclNvdXJjZSwgZ2Z2LCBmaS5kZXBlbmRlbmNpZXNIYXNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYENPTVBJTEU6JHtnZnZ9YCkubG9nKFwiU2tpcHBlZCBkdWUgYnVpbGQgY2FjaGUgZXhpc3RzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGJ1aWxkQ2FjaGUuZXh0cmFjdChmaS5nZW5lcmF0b3JTb3VyY2UsIGdmdiwgZmkuZGVwZW5kZW5jaWVzSGFzaCwgcmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRDYWNoZU9wdGlvbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uOiBnZXRHZW5lcmF0b3JWZXJzaW9uKGZpLmdlbmVyYXRvclNvdXJjZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogb3B0aW9ucy5idWlsZENhY2hlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5OiBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBjb21waWxlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkudGhlbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2ggPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhpcyB2ZXJzaW9uIG9mIGdlbmVyYXRvciBpcyBub3Qgc3VwcG9ydGVkIGR1ZSB0byBkZXBlbmRlbmNpZXMgZXh0cmFjdGlvbiBpcyBub3Qgc3VwcG9ydGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZvcm1NZXRhKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZW5naW5lU291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGlzIHZlcnNpb24gb2YgZ2VuZXJhdG9yIGlzIG5vdCBzdXBwb3J0ZWQgZHVlIHRvIGRlcGVuZGVuY2llcyBleHRyYWN0aW9uIGlzIG5vdCBzdXBwb3J0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS50aGVtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JTb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRDYWNoZU9wdGlvbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uOiBnZXRHZW5lcmF0b3JWZXJzaW9uKGZpLmdlbmVyYXRvclNvdXJjZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogb3B0aW9ucy5idWlsZENhY2hlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5OiBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDYWNoZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGVPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlQXR0YWNobWVudFBhdGhGaWxlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5tb2RlID09PSBGb3JtQnVpbGRNb2RlLkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJsZWdhY3ktcHJlYnVpbHRcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkxFR0FDWS1QUkVCVUlMVFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVByb2R1Y2VyKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJzY2hlbWFzXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlNDSEVNQVNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInNjaGVtYXNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJjb252ZXJ0ZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiQ09OVkVSVEVSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwicHJlc2VudGF0aW9ucy5qc29uXCIpKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weUZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlBSRVNFTlRBVElPTlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInByZXNlbnRhdGlvbnNcIiwgYCR7Z2Z2fS5wcmVzZW50YXRpb25zLmpzb25gKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm5vcm1hbGl6ZVwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJOT1JNQUxJWkVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm5vcm1hbGl6ZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInBhdGNoXCIpLCBcIioueHNsdFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJQQVRDSFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGF0Y2hcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUFQXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1hcFwiKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJ1bm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJVTk1BUFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwidW5tYXBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnVpbGRPcHRpb25zLndhdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RpZmllci5ub3RpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgJHtmaS5mb3JtTmFtZX06INGB0LHQvtGA0LrQsCDQt9Cw0LLQtdGA0YjQtdC90LBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBFbmdpbmU6ICR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpLmVuZ2luZVNvdXJjZSA9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJbTm9FbmdpbmVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmkuZW5naW5lU291cmNlLnR5cGUgPT09IFwiTG9jYWxFbmdpbmVTb3VyY2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJsb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZpLmVuZ2luZVNvdXJjZS52ZXJzaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIGlmIChidWlsZE9wdGlvbnMud2F0Y2gpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuY2xlYW4pIHtcbiAgICAgICAgICAgIGF3YWl0IGNsZWFuVGFyZ2V0RGlyZWN0b3J5KHJlc291cmNlc0RpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlMSA9IGF3YWl0IHBpY2tMaXN0c0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUyID0gYXdhaXQgYnVpbGRGb3Jtc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUzID0gYXdhaXQgc3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmU0ID0gYXdhaXQgcmVzb3VyY2VzTnVTcGVjQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBhd2FpdCBjb250ZXh0LndhaXRGb3JFeGl0KCk7XG4gICAgICAgIGlmIChzdG9wT2JzZXJ2ZTMgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RvcE9ic2VydmU0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUyKCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IERhdGUubm93KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5jbGVhbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNsZWFuVGFyZ2V0RGlyZWN0b3J5KHJlc291cmNlc0RpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgcGlja0xpc3RzQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgc3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGF3YWl0IHJlc291cmNlc051U3BlY0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGF3YWl0IGJ1aWxkRm9ybXNDaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW5CcmlnaHQoXCJCdWlsZCBzdWNjZXNzXCIpKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsVGltZSA9IERhdGUubm93KCkgLSBzdGFydERhdGU7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5sb2coYFRvdGFsIHRpbWU6ICR7cHJpbnRUaW1lKHRvdGFsVGltZSl9YCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNsZWFuVGFyZ2V0RGlyZWN0b3J5KHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLCBsb2dnZXI6IElMb2dnZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsb2dnZXIubG9nKFwiQ2xlYW5pbmcgcmVzb3VyY2UgZGlyZWN0b3J5LiBcIiArIHJlc291cmNlc0RpcmVjdG9yeSk7XG4gICAgYXdhaXQgZW1wdHlEaXIocmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICBsb2dnZXIubG9nKFwiUmVzb3VyY2UgZGlyZWN0b3J5IGNsZWFuXCIpO1xufVxuIl19
@@ -11,15 +11,6 @@ var _SingletonController = require("../../Commons/HttpServer/ExpressWrapper/Sing
11
11
 
12
12
  var _StdStreamsIntercepter = require("./StdStreamsIntercepter");
13
13
 
14
- (function () {
15
- var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
16
- enterModule && enterModule(module);
17
- })();
18
-
19
- var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
20
- return a;
21
- };
22
-
23
14
  class BuildLogsWebsocketController extends _SingletonController.SingletonController {
24
15
  constructor() {
25
16
  super();
@@ -50,31 +41,7 @@ class BuildLogsWebsocketController extends _SingletonController.SingletonControl
50
41
  }
51
42
  }
52
43
 
53
- // @ts-ignore
54
- __reactstandin__regenerateByEval(key, code) {
55
- // @ts-ignore
56
- this[key] = eval(code);
57
- }
58
-
59
44
  }
60
45
 
61
46
  exports.BuildLogsWebsocketController = BuildLogsWebsocketController;
62
- ;
63
-
64
- (function () {
65
- var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
66
-
67
- if (!reactHotLoader) {
68
- return;
69
- }
70
-
71
- reactHotLoader.register(BuildLogsWebsocketController, "BuildLogsWebsocketController", "C:\\buildAgent\\work\\8df8f1edd755969c\\Tools\\src\\CLICommands\\BuildServer\\BuildLogsWebsocketController.ts");
72
- })();
73
-
74
- ;
75
-
76
- (function () {
77
- var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
78
- leaveModule && leaveModule(module);
79
- })();
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9CdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJzb2NrZXRJb1NlcnZlciIsInNvY2tldElvSHR0cHNTZXJ2ZXIiLCJoYW5kbGVPdXRwdXQiLCJ0ZXh0IiwiZW1pdCIsImFmdGVyU3RhcnQiLCJodHRwU2VydmVyIiwiaHR0cHNTZXJ2ZXIiLCJTZXJ2ZXIiLCJ0cmFuc3BvcnRzIiwicGF0aCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUVBOztBQUVBOzs7Ozs7Ozs7OztBQUVPLE1BQU1BLDRCQUFOLFNBQTJDQyx3Q0FBM0MsQ0FBK0Q7QUFJM0RDLEVBQUFBLFdBQVcsR0FBRztBQUNqQjtBQURpQixTQUhiQyxjQUdhO0FBQUEsU0FGYkMsbUJBRWE7O0FBQUEsU0FrQkpDLFlBbEJJLEdBa0JZQyxJQUFELElBQXdCO0FBQUE7O0FBQ3BELG1DQUFLSCxjQUFMLDhFQUFxQkksSUFBckIsQ0FBMEIsU0FBMUIsRUFBcUNELElBQXJDO0FBQ0Esb0NBQUtGLG1CQUFMLGdGQUEwQkcsSUFBMUIsQ0FBK0IsU0FBL0IsRUFBMENELElBQTFDO0FBQ0gsS0FyQm9COztBQUVqQixvREFBb0IsS0FBS0QsWUFBekI7QUFDSDs7QUFFc0IsUUFBVkcsVUFBVSxDQUFDQyxVQUFELEVBQTBCQyxXQUExQixFQUFxRTtBQUN4RixTQUFLUCxjQUFMLEdBQXNCLElBQUlRLGNBQUosQ0FBV0YsVUFBWCxFQUF1QjtBQUN6Q0csTUFBQUEsVUFBVSxFQUFFLENBQUMsV0FBRCxFQUFjLFNBQWQsQ0FENkI7QUFFekNDLE1BQUFBLElBQUksRUFBRTtBQUZtQyxLQUF2QixDQUF0Qjs7QUFJQSxRQUFJSCxXQUFXLElBQUlJLFNBQW5CLEVBQThCO0FBQzFCLFdBQUtWLG1CQUFMLEdBQTJCLElBQUlPLGNBQUosQ0FBV0QsV0FBWCxFQUF3QjtBQUMvQ0UsUUFBQUEsVUFBVSxFQUFFLENBQUMsV0FBRCxFQUFjLFNBQWQsQ0FEbUM7QUFFL0NDLFFBQUFBLElBQUksRUFBRTtBQUZ5QyxPQUF4QixDQUEzQjtBQUlIO0FBQ0o7O0FBcEJpRTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBOzs7Ozs7Ozs7Ozs7MEJBQXpEYiw0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGh0dHAgZnJvbSBcImh0dHBcIjtcbmltcG9ydCBodHRwcyBmcm9tIFwiaHR0cHNcIjtcblxuaW1wb3J0IHsgU2VydmVyIH0gZnJvbSBcInNvY2tldC5pb1wiO1xuXG5pbXBvcnQgeyBTaW5nbGV0b25Db250cm9sbGVyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9TaW5nbGV0b25Db250cm9sbGVyXCI7XG5cbmltcG9ydCB7IGludGVyY2VwdFN0ZFN0cmVhbXMgfSBmcm9tIFwiLi9TdGRTdHJlYW1zSW50ZXJjZXB0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIgZXh0ZW5kcyBTaW5nbGV0b25Db250cm9sbGVyIHtcbiAgICBwcml2YXRlIHNvY2tldElvU2VydmVyPzogU2VydmVyO1xuICAgIHByaXZhdGUgc29ja2V0SW9IdHRwc1NlcnZlcj86IFNlcnZlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaW50ZXJjZXB0U3RkU3RyZWFtcyh0aGlzLmhhbmRsZU91dHB1dCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGFmdGVyU3RhcnQoaHR0cFNlcnZlcjogaHR0cC5TZXJ2ZXIsIGh0dHBzU2VydmVyPzogaHR0cHMuU2VydmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc29ja2V0SW9TZXJ2ZXIgPSBuZXcgU2VydmVyKGh0dHBTZXJ2ZXIsIHtcbiAgICAgICAgICAgIHRyYW5zcG9ydHM6IFtcIndlYnNvY2tldFwiLCBcInBvbGxpbmdcIl0sXG4gICAgICAgICAgICBwYXRoOiBcIi9idWlsZC1pbmZvXCIsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cHNTZXJ2ZXIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNvY2tldElvSHR0cHNTZXJ2ZXIgPSBuZXcgU2VydmVyKGh0dHBzU2VydmVyLCB7XG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0czogW1wid2Vic29ja2V0XCIsIFwicG9sbGluZ1wiXSxcbiAgICAgICAgICAgICAgICBwYXRoOiBcIi9idWlsZC1pbmZvXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlT3V0cHV0ID0gKHRleHQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNvY2tldElvU2VydmVyPy5lbWl0KFwibWVzc2FnZVwiLCB0ZXh0KTtcbiAgICAgICAgdGhpcy5zb2NrZXRJb0h0dHBzU2VydmVyPy5lbWl0KFwibWVzc2FnZVwiLCB0ZXh0KTtcbiAgICB9O1xufVxuIl19
47
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9CdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJzb2NrZXRJb1NlcnZlciIsInNvY2tldElvSHR0cHNTZXJ2ZXIiLCJoYW5kbGVPdXRwdXQiLCJ0ZXh0IiwiZW1pdCIsImFmdGVyU3RhcnQiLCJodHRwU2VydmVyIiwiaHR0cHNTZXJ2ZXIiLCJTZXJ2ZXIiLCJ0cmFuc3BvcnRzIiwicGF0aCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUVBOztBQUVBOztBQUVPLE1BQU1BLDRCQUFOLFNBQTJDQyx3Q0FBM0MsQ0FBK0Q7QUFJM0RDLEVBQUFBLFdBQVcsR0FBRztBQUNqQjtBQURpQixTQUhiQyxjQUdhO0FBQUEsU0FGYkMsbUJBRWE7O0FBQUEsU0FrQkpDLFlBbEJJLEdBa0JZQyxJQUFELElBQXdCO0FBQUE7O0FBQ3BELG1DQUFLSCxjQUFMLDhFQUFxQkksSUFBckIsQ0FBMEIsU0FBMUIsRUFBcUNELElBQXJDO0FBQ0Esb0NBQUtGLG1CQUFMLGdGQUEwQkcsSUFBMUIsQ0FBK0IsU0FBL0IsRUFBMENELElBQTFDO0FBQ0gsS0FyQm9COztBQUVqQixvREFBb0IsS0FBS0QsWUFBekI7QUFDSDs7QUFFc0IsUUFBVkcsVUFBVSxDQUFDQyxVQUFELEVBQTBCQyxXQUExQixFQUFxRTtBQUN4RixTQUFLUCxjQUFMLEdBQXNCLElBQUlRLGNBQUosQ0FBV0YsVUFBWCxFQUF1QjtBQUN6Q0csTUFBQUEsVUFBVSxFQUFFLENBQUMsV0FBRCxFQUFjLFNBQWQsQ0FENkI7QUFFekNDLE1BQUFBLElBQUksRUFBRTtBQUZtQyxLQUF2QixDQUF0Qjs7QUFJQSxRQUFJSCxXQUFXLElBQUlJLFNBQW5CLEVBQThCO0FBQzFCLFdBQUtWLG1CQUFMLEdBQTJCLElBQUlPLGNBQUosQ0FBV0QsV0FBWCxFQUF3QjtBQUMvQ0UsUUFBQUEsVUFBVSxFQUFFLENBQUMsV0FBRCxFQUFjLFNBQWQsQ0FEbUM7QUFFL0NDLFFBQUFBLElBQUksRUFBRTtBQUZ5QyxPQUF4QixDQUEzQjtBQUlIO0FBQ0o7O0FBcEJpRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGh0dHAgZnJvbSBcImh0dHBcIjtcbmltcG9ydCBodHRwcyBmcm9tIFwiaHR0cHNcIjtcblxuaW1wb3J0IHsgU2VydmVyIH0gZnJvbSBcInNvY2tldC5pb1wiO1xuXG5pbXBvcnQgeyBTaW5nbGV0b25Db250cm9sbGVyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9FeHByZXNzV3JhcHBlci9TaW5nbGV0b25Db250cm9sbGVyXCI7XG5cbmltcG9ydCB7IGludGVyY2VwdFN0ZFN0cmVhbXMgfSBmcm9tIFwiLi9TdGRTdHJlYW1zSW50ZXJjZXB0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIEJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIgZXh0ZW5kcyBTaW5nbGV0b25Db250cm9sbGVyIHtcbiAgICBwcml2YXRlIHNvY2tldElvU2VydmVyPzogU2VydmVyO1xuICAgIHByaXZhdGUgc29ja2V0SW9IdHRwc1NlcnZlcj86IFNlcnZlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaW50ZXJjZXB0U3RkU3RyZWFtcyh0aGlzLmhhbmRsZU91dHB1dCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGFmdGVyU3RhcnQoaHR0cFNlcnZlcjogaHR0cC5TZXJ2ZXIsIGh0dHBzU2VydmVyPzogaHR0cHMuU2VydmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc29ja2V0SW9TZXJ2ZXIgPSBuZXcgU2VydmVyKGh0dHBTZXJ2ZXIsIHtcbiAgICAgICAgICAgIHRyYW5zcG9ydHM6IFtcIndlYnNvY2tldFwiLCBcInBvbGxpbmdcIl0sXG4gICAgICAgICAgICBwYXRoOiBcIi9idWlsZC1pbmZvXCIsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaHR0cHNTZXJ2ZXIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNvY2tldElvSHR0cHNTZXJ2ZXIgPSBuZXcgU2VydmVyKGh0dHBzU2VydmVyLCB7XG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0czogW1wid2Vic29ja2V0XCIsIFwicG9sbGluZ1wiXSxcbiAgICAgICAgICAgICAgICBwYXRoOiBcIi9idWlsZC1pbmZvXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlT3V0cHV0ID0gKHRleHQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNvY2tldElvU2VydmVyPy5lbWl0KFwibWVzc2FnZVwiLCB0ZXh0KTtcbiAgICAgICAgdGhpcy5zb2NrZXRJb0h0dHBzU2VydmVyPy5lbWl0KFwibWVzc2FnZVwiLCB0ZXh0KTtcbiAgICB9O1xufVxuIl19