@magic-xpa/engine 4.801.0-dev481.243 → 4.801.0-dev481.249

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 (293) hide show
  1. package/esm2020/index.mjs +190 -0
  2. package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
  3. package/esm2020/src/AccessHelper.mjs +3 -0
  4. package/esm2020/src/ClientManager.mjs +403 -0
  5. package/esm2020/src/CommandsProcessorBase.mjs +58 -0
  6. package/esm2020/src/CommandsProcessorManager.mjs +26 -0
  7. package/esm2020/src/CommandsTable.mjs +163 -0
  8. package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
  9. package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
  10. package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
  11. package/esm2020/src/GUIManager.mjs +63 -0
  12. package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
  13. package/{esm2015/src/GuiEventsProcessor.js → esm2020/src/GuiEventsProcessor.mjs} +0 -0
  14. package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
  15. package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
  16. package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
  17. package/esm2020/src/bridge/MagicBridge.mjs +41 -0
  18. package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
  19. package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
  20. package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
  21. package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
  22. package/{esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js → esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs} +0 -0
  23. package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs} +0 -0
  24. package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs} +0 -0
  25. package/{esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js → esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs} +0 -0
  26. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
  27. package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
  28. package/{esm2015/src/commands/ClientToServer/ComputeEventCommand.js → esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs} +0 -0
  29. package/{esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js → esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs} +0 -0
  30. package/{esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js → esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs} +0 -0
  31. package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
  32. package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
  33. package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +0 -0
  34. package/{esm2015/src/commands/ClientToServer/EvaluateCommand.js → esm2020/src/commands/ClientToServer/EvaluateCommand.mjs} +0 -0
  35. package/{esm2015/src/commands/ClientToServer/EventCommand.js → esm2020/src/commands/ClientToServer/EventCommand.mjs} +0 -0
  36. package/{esm2015/src/commands/ClientToServer/ExecOperCommand.js → esm2020/src/commands/ClientToServer/ExecOperCommand.mjs} +0 -0
  37. package/{esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js → esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs} +0 -0
  38. package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
  39. package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
  40. package/{esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js → esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs} +0 -0
  41. package/{esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js → esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs} +0 -0
  42. package/{esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js → esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs} +0 -0
  43. package/{esm2015/src/commands/ClientToServer/QueryCommand.js → esm2020/src/commands/ClientToServer/QueryCommand.mjs} +0 -0
  44. package/{esm2015/src/commands/ClientToServer/RecomputeCommand.js → esm2020/src/commands/ClientToServer/RecomputeCommand.mjs} +0 -0
  45. package/{esm2015/src/commands/ClientToServer/RefreshEventCommand.js → esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs} +0 -0
  46. package/{esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js → esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs} +0 -0
  47. package/{esm2015/src/commands/ClientToServer/RollbackEventCommand.js → esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs} +0 -0
  48. package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
  49. package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
  50. package/{esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js → esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs} +0 -0
  51. package/{esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js → esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs} +0 -0
  52. package/{esm2015/src/commands/ClientToServer/TransactionCommand.js → esm2020/src/commands/ClientToServer/TransactionCommand.mjs} +0 -0
  53. package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
  54. package/{esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js → esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs} +0 -0
  55. package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
  56. package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
  57. package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
  58. package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
  59. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
  60. package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
  61. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
  62. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
  63. package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
  64. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
  65. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
  66. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
  67. package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
  68. package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
  69. package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
  70. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
  71. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
  72. package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
  73. package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
  74. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
  75. package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
  76. package/esm2020/src/data/DataView.mjs +1634 -0
  77. package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
  78. package/esm2020/src/data/DataviewManager.mjs +28 -0
  79. package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
  80. package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
  81. package/esm2020/src/data/Field.mjs +645 -0
  82. package/esm2020/src/data/FieldBase.mjs +18 -0
  83. package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
  84. package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
  85. package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
  86. package/{esm2015/src/data/Record.js → esm2020/src/data/Record.mjs} +0 -0
  87. package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
  88. package/{esm2015/src/data/RecordsTable.js → esm2020/src/data/RecordsTable.mjs} +0 -0
  89. package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
  90. package/{esm2015/src/data/XMLBasedDcValuesBuilder.js → esm2020/src/data/XMLBasedDcValuesBuilder.mjs} +0 -0
  91. package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
  92. package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
  93. package/esm2020/src/env/Environment.mjs +554 -0
  94. package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
  95. package/esm2020/src/env/LanguageData.mjs +222 -0
  96. package/esm2020/src/env/MirrorString.mjs +66 -0
  97. package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
  98. package/esm2020/src/event/Event.mjs +1436 -0
  99. package/esm2020/src/event/EventHandler.mjs +773 -0
  100. package/{esm2015/src/event/EventHandlerPosition.js → esm2020/src/event/EventHandlerPosition.mjs} +0 -0
  101. package/esm2020/src/event/EventsManager.mjs +2983 -0
  102. package/{esm2015/src/event/IEventsManager.js → esm2020/src/event/IEventsManager.mjs} +0 -0
  103. package/{esm2015/src/event/RunTimeEvent.js → esm2020/src/event/RunTimeEvent.mjs} +0 -0
  104. package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
  105. package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
  106. package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
  107. package/esm2020/src/exp/Expression.mjs +200 -0
  108. package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
  109. package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
  110. package/{esm2015/src/exp/ExpressionLocalJpn.js → esm2020/src/exp/ExpressionLocalJpn.mjs} +0 -0
  111. package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
  112. package/esm2020/src/exp/YesNoExp.mjs +41 -0
  113. package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
  114. package/esm2020/src/gui/FormsTable.mjs +66 -0
  115. package/esm2020/src/gui/MgControl.mjs +357 -0
  116. package/esm2020/src/gui/MgForm.mjs +1195 -0
  117. package/esm2020/src/http/HttpManager.mjs +97 -0
  118. package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
  119. package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
  120. package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
  121. package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
  122. package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
  123. package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
  124. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
  125. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
  126. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
  127. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
  128. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
  129. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
  130. package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
  131. package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
  132. package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
  133. package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
  134. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
  135. package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
  136. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
  137. package/{esm2015/src/remote/ServerError.js → esm2020/src/remote/ServerError.mjs} +0 -0
  138. package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
  139. package/esm2020/src/rt/Argument.mjs +274 -0
  140. package/esm2020/src/rt/ArgumentsList.mjs +103 -0
  141. package/esm2020/src/rt/Boundary.mjs +158 -0
  142. package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
  143. package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
  144. package/{esm2015/src/rt/DataviewHeaderFactory.js → esm2020/src/rt/DataviewHeaderFactory.mjs} +0 -0
  145. package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
  146. package/{esm2015/src/rt/DataviewHeadersSaxHandler.js → esm2020/src/rt/DataviewHeadersSaxHandler.mjs} +0 -0
  147. package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
  148. package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
  149. package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
  150. package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
  151. package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
  152. package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
  153. package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
  154. package/esm2020/src/rt/Operation.mjs +745 -0
  155. package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
  156. package/esm2020/src/rt/Recompute.mjs +355 -0
  157. package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
  158. package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
  159. package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
  160. package/esm2020/src/rt/TableCache.mjs +177 -0
  161. package/esm2020/src/rt/TableCacheManager.mjs +67 -0
  162. package/{esm2015/src/rt/Transaction.js → esm2020/src/rt/Transaction.mjs} +0 -0
  163. package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
  164. package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
  165. package/esm2020/src/tasks/MGData.mjs +552 -0
  166. package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
  167. package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
  168. package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
  169. package/{esm2015/src/tasks/RemoteTaskService.js → esm2020/src/tasks/RemoteTaskService.mjs} +0 -0
  170. package/esm2020/src/tasks/Task.mjs +2501 -0
  171. package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
  172. package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
  173. package/esm2020/src/tasks/TasksTable.mjs +80 -0
  174. package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
  175. package/{esm2015/src/tasks/sort/SortCollection.js → esm2020/src/tasks/sort/SortCollection.mjs} +0 -0
  176. package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
  177. package/esm2020/src/util/FlowMonitorQueue.mjs +361 -0
  178. package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
  179. package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
  180. package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
  181. package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
  182. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
  183. package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
  184. package/esm2020/src/util/ParamParseResult.mjs +8 -0
  185. package/esm2020/src/util/PrmMap.mjs +151 -0
  186. package/{esm2015/src/util/Process.js → esm2020/src/util/Process.mjs} +0 -0
  187. package/{esm2015/src/util/ReturnResult.js → esm2020/src/util/ReturnResult.mjs} +0 -0
  188. package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
  189. package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
  190. package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
  191. package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
  192. package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +102 -5
  193. package/fesm2015/magic-xpa-engine.mjs.map +1 -0
  194. package/fesm2020/magic-xpa-engine.mjs +30705 -0
  195. package/fesm2020/magic-xpa-engine.mjs.map +1 -0
  196. package/index.d.ts +2 -0
  197. package/package.json +27 -13
  198. package/src/AccessHelper.d.ts +1 -1
  199. package/src/CommandsProcessorBase.d.ts +3 -3
  200. package/src/commands/DataViewCommandBase.d.ts +2 -2
  201. package/src/commands/IClientTargetedCommand.d.ts +1 -1
  202. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
  203. package/src/data/FieldBase.d.ts +3 -3
  204. package/src/env/EnvVariablesTable.d.ts +2 -15
  205. package/src/env/MirrorString.d.ts +15 -0
  206. package/src/exp/GlobalParamsTable.d.ts +2 -1
  207. package/src/http/client/HttpClientBase.d.ts +2 -2
  208. package/src/rt/DataviewHeaderBase.d.ts +1 -1
  209. package/src/tasks/TaskBase.d.ts +7 -7
  210. package/src/util/IMirrorXML.d.ts +1 -1
  211. package/src/util/ParamParseResult.d.ts +6 -0
  212. package/src/util/PrmMap.d.ts +0 -6
  213. package/bundles/magic-xpa-engine.umd.js +0 -37983
  214. package/bundles/magic-xpa-engine.umd.js.map +0 -1
  215. package/bundles/magic-xpa-engine.umd.min.js +0 -16
  216. package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
  217. package/esm2015/index.js +0 -188
  218. package/esm2015/src/AccessHelper.js +0 -3
  219. package/esm2015/src/ClientManager.js +0 -412
  220. package/esm2015/src/CommandsProcessorBase.js +0 -54
  221. package/esm2015/src/CommandsProcessorManager.js +0 -31
  222. package/esm2015/src/CommandsTable.js +0 -166
  223. package/esm2015/src/GUIManager.js +0 -72
  224. package/esm2015/src/bridge/MagicBridge.js +0 -44
  225. package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
  226. package/esm2015/src/commands/DataViewCommandBase.js +0 -6
  227. package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
  228. package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
  229. package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
  230. package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
  231. package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
  232. package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
  233. package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
  234. package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
  235. package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
  236. package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
  237. package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
  238. package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
  239. package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
  240. package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
  241. package/esm2015/src/data/DataView.js +0 -1692
  242. package/esm2015/src/data/DataviewManager.js +0 -31
  243. package/esm2015/src/data/DataviewManagerBase.js +0 -18
  244. package/esm2015/src/data/Field.js +0 -671
  245. package/esm2015/src/data/FieldBase.js +0 -9
  246. package/esm2015/src/data/TaskTransactionManager.js +0 -110
  247. package/esm2015/src/env/EnvVariablesTable.js +0 -408
  248. package/esm2015/src/env/Environment.js +0 -557
  249. package/esm2015/src/env/LanguageData.js +0 -229
  250. package/esm2015/src/event/Event.js +0 -1441
  251. package/esm2015/src/event/EventHandler.js +0 -786
  252. package/esm2015/src/event/EventsManager.js +0 -3106
  253. package/esm2015/src/exp/Expression.js +0 -209
  254. package/esm2015/src/exp/ExpressionEvaluator.js +0 -4440
  255. package/esm2015/src/exp/GlobalParamsTable.js +0 -84
  256. package/esm2015/src/exp/YesNoExp.js +0 -44
  257. package/esm2015/src/gui/FormsTable.js +0 -73
  258. package/esm2015/src/gui/MgControl.js +0 -424
  259. package/esm2015/src/gui/MgForm.js +0 -1291
  260. package/esm2015/src/http/HttpManager.js +0 -100
  261. package/esm2015/src/http/client/HttpClientAsync.js +0 -72
  262. package/esm2015/src/http/client/HttpClientBase.js +0 -147
  263. package/esm2015/src/http/client/HttpClientSync.js +0 -47
  264. package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
  265. package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
  266. package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
  267. package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -901
  268. package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
  269. package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
  270. package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
  271. package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
  272. package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
  273. package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
  274. package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
  275. package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
  276. package/esm2015/src/rt/Argument.js +0 -281
  277. package/esm2015/src/rt/ArgumentsList.js +0 -108
  278. package/esm2015/src/rt/Boundary.js +0 -161
  279. package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
  280. package/esm2015/src/rt/Operation.js +0 -772
  281. package/esm2015/src/rt/Recompute.js +0 -372
  282. package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
  283. package/esm2015/src/rt/TableCache.js +0 -182
  284. package/esm2015/src/rt/TableCacheManager.js +0 -70
  285. package/esm2015/src/tasks/MGData.js +0 -561
  286. package/esm2015/src/tasks/MGDataCollection.js +0 -270
  287. package/esm2015/src/tasks/Task.js +0 -2601
  288. package/esm2015/src/tasks/TaskServiceBase.js +0 -30
  289. package/esm2015/src/tasks/TasksTable.js +0 -87
  290. package/esm2015/src/util/FlowMonitorQueue.js +0 -364
  291. package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
  292. package/esm2015/src/util/PrmMap.js +0 -157
  293. package/fesm2015/magic-xpa-engine.js.map +0 -1
@@ -0,0 +1,361 @@
1
+ import { DateTime, NString, StringBuilder } from '@magic-xpa/mscorelib';
2
+ import { Constants, DateTimeUtils, InternalInterface, Logger, Queue, XMLConstants, XmlParser } from '@magic-xpa/utils';
3
+ import { FlowMonitorInterface } from '../FlowMonitorInterface';
4
+ import { ConstInterface } from '../ConstInterface';
5
+ export class FlowMonitorQueue {
6
+ constructor() {
7
+ this._queue = new Queue();
8
+ this._enabled = false;
9
+ this._isFlowOperation = false;
10
+ this._isRecompute = false;
11
+ this._isTask = false;
12
+ this._isTaskFlow = false;
13
+ this.ShouldSerialize = false;
14
+ }
15
+ static get Instance() {
16
+ if (FlowMonitorQueue._instance === null)
17
+ FlowMonitorQueue._instance = new FlowMonitorQueue();
18
+ return FlowMonitorQueue._instance;
19
+ }
20
+ addTaskCngMode(newTaskMode, taskInfo) {
21
+ let info = "Task Mode Change - ";
22
+ if (this._enabled && this._isTask) {
23
+ let activityItem = new ActivityItem(this, FlowMonitorQueue.ACT_TASK, FlowMonitorInterface.FLWMTR_CHNG_MODE);
24
+ switch (newTaskMode) {
25
+ case Constants.TASK_MODE_MODIFY:
26
+ info += "Modify";
27
+ break;
28
+ case Constants.TASK_MODE_CREATE:
29
+ info += "Create";
30
+ break;
31
+ case Constants.TASK_MODE_DELETE:
32
+ info += "Delete";
33
+ break;
34
+ case Constants.TASK_MODE_QUERY:
35
+ info += "Query";
36
+ break;
37
+ default:
38
+ info = null;
39
+ break;
40
+ }
41
+ activityItem.setInfo(info);
42
+ this._queue.put(activityItem);
43
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
44
+ }
45
+ }
46
+ fillData(parser) {
47
+ let endContext = parser.getXMLdata().indexOf("/>", parser.getCurrIndex());
48
+ if (endContext !== -1 && endContext < parser.getXMLdata().length) {
49
+ let tag = parser.getXMLsubstring(endContext);
50
+ parser.add2CurrIndex(tag.indexOf("flwmtr_config") + "flwmtr_config".length);
51
+ let tokens = XmlParser.getTokens(parser.getXMLsubstring(endContext), XMLConstants.XML_ATTR_DELIM);
52
+ Logger.Instance.WriteDevToLog("in FlowMonitorQueue.FillData: " + tokens.toString());
53
+ this.initElements(tokens);
54
+ parser.setCurrIndex(endContext + XMLConstants.TAG_TERM.length);
55
+ return;
56
+ }
57
+ Logger.Instance.WriteExceptionToLogWithMsg("in FlowMonitorQueue.FillData() out of string bounds");
58
+ }
59
+ initElements(tokensVector) {
60
+ for (let j = 0; j < tokensVector.length; j = j + 2) {
61
+ let attribute = tokensVector.get_Item(j);
62
+ let valueStr = tokensVector.get_Item(j + 1);
63
+ Logger.Instance.WriteDevToLog(attribute + " value: " + valueStr);
64
+ switch (attribute) {
65
+ case ConstInterface.MG_ATTR_TASK:
66
+ this._isTask = XmlParser.getBoolean(valueStr);
67
+ break;
68
+ case ConstInterface.MG_ATTR_TASKFLW:
69
+ this._isTaskFlow = XmlParser.getBoolean(valueStr);
70
+ break;
71
+ case ConstInterface.MG_ATTR_RECOMP:
72
+ this._isRecompute = XmlParser.getBoolean(valueStr);
73
+ break;
74
+ case ConstInterface.MG_ATTR_FLWOP:
75
+ this._isFlowOperation = XmlParser.getBoolean(valueStr);
76
+ break;
77
+ case ConstInterface.MG_ATTR_ENABLED:
78
+ this.enable(XmlParser.getBoolean(valueStr));
79
+ break;
80
+ default:
81
+ Logger.Instance.WriteExceptionToLogWithMsg("in FlowMonitorQueue.initElements(): unknown attribute: " + attribute);
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ buildXML(message) {
87
+ if (!this._queue.isEmpty() && this.ShouldSerialize) {
88
+ message.Append(XMLConstants.START_TAG + ConstInterface.MG_TAG_FLWMTR_MSG + XMLConstants.TAG_CLOSE);
89
+ while (!this._queue.isEmpty()) {
90
+ let currAct = this._queue.get();
91
+ currAct.buildXML(message);
92
+ }
93
+ message.Append("</" + ConstInterface.MG_TAG_FLWMTR_MSG + XMLConstants.TAG_CLOSE);
94
+ }
95
+ }
96
+ isEmpty() {
97
+ return this._queue.isEmpty();
98
+ }
99
+ enable(value) {
100
+ let wasEnabled = this._enabled;
101
+ this._enabled = value;
102
+ this.ShouldSerialize = this._enabled;
103
+ return wasEnabled;
104
+ }
105
+ addTaskEvent(triggeredBy, state, taskInfo) {
106
+ if (this._enabled && this._isTask) {
107
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK, FlowMonitorInterface.FLWMTR_EVENT);
108
+ let info;
109
+ switch (state) {
110
+ case FlowMonitorInterface.FLWMTR_START:
111
+ info = FlowMonitorQueue.S_EVENT_STR1 + triggeredBy + FlowMonitorQueue.S_EVENT_STR2;
112
+ break;
113
+ case FlowMonitorInterface.FLWMTR_END:
114
+ info = FlowMonitorQueue.E_EVENT_STR + triggeredBy;
115
+ break;
116
+ case FlowMonitorInterface.FLWMTR_PROPAGATE:
117
+ info = FlowMonitorQueue.S_EVENT_PROPAGATED;
118
+ break;
119
+ default:
120
+ info = null;
121
+ break;
122
+ }
123
+ act.setInfo(info);
124
+ this._queue.put(act);
125
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
126
+ }
127
+ }
128
+ addTaskFlowRec(id, state, taskInfo) {
129
+ if (this._enabled && this._isTaskFlow) {
130
+ let info;
131
+ switch (id) {
132
+ case InternalInterface.MG_ACT_REC_PREFIX:
133
+ info = state === FlowMonitorInterface.FLWMTR_START
134
+ ? FlowMonitorQueue.S_RECPRF_STR
135
+ : FlowMonitorQueue.E_RECPRF_STR;
136
+ id = FlowMonitorInterface.FLWMTR_PREFIX;
137
+ break;
138
+ case InternalInterface.MG_ACT_REC_SUFFIX:
139
+ info = state === FlowMonitorInterface.FLWMTR_START
140
+ ? FlowMonitorQueue.S_RECSUF_STR
141
+ : FlowMonitorQueue.E_RECSUF_STR;
142
+ id = FlowMonitorInterface.FLWMTR_SUFFIX;
143
+ break;
144
+ case InternalInterface.MG_ACT_TASK_PREFIX:
145
+ info = state === FlowMonitorInterface.FLWMTR_START
146
+ ? FlowMonitorQueue.S_TASKPRF_STR
147
+ : FlowMonitorQueue.E_TASKPRF_STR;
148
+ id = FlowMonitorInterface.FLWMTR_PREFIX;
149
+ break;
150
+ case InternalInterface.MG_ACT_TASK_SUFFIX:
151
+ info = state === FlowMonitorInterface.FLWMTR_START
152
+ ? FlowMonitorQueue.S_TASKSUF_STR
153
+ : FlowMonitorQueue.E_TASKSUF_STR;
154
+ id = FlowMonitorInterface.FLWMTR_SUFFIX;
155
+ break;
156
+ default:
157
+ info = null;
158
+ break;
159
+ }
160
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, id);
161
+ act.setInfo(info);
162
+ this._queue.put(act);
163
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
164
+ }
165
+ }
166
+ addTaskFlowFld(id, fldName, state, taskInfo) {
167
+ this.addTaskFlowCtrl(id, fldName, state, taskInfo);
168
+ }
169
+ addTaskFlowCtrl(id, ctrlName, state, taskInfo) {
170
+ if (this._enabled && this._isTaskFlow) {
171
+ let info;
172
+ switch (id) {
173
+ case InternalInterface.MG_ACT_VARIABLE:
174
+ info = state === FlowMonitorInterface.FLWMTR_START
175
+ ? FlowMonitorQueue.S_VARIABLE_STR
176
+ : FlowMonitorQueue.E_VARIABLE_STR;
177
+ id = FlowMonitorInterface.FLWMTR_VARCHG_VALUE;
178
+ break;
179
+ case InternalInterface.MG_ACT_CTRL_PREFIX:
180
+ info = state === FlowMonitorInterface.FLWMTR_START
181
+ ? FlowMonitorQueue.S_CTRLPRF_STR
182
+ : FlowMonitorQueue.E_CTRLPRF_STR;
183
+ id = FlowMonitorInterface.FLWMTR_CTRL_PREFIX;
184
+ break;
185
+ case InternalInterface.MG_ACT_CTRL_SUFFIX:
186
+ info = state === FlowMonitorInterface.FLWMTR_START
187
+ ? FlowMonitorQueue.S_CTRLSUF_STR
188
+ : FlowMonitorQueue.E_CTRLSUF_STR;
189
+ id = FlowMonitorInterface.FLWMTR_CTRL_SUFFIX;
190
+ break;
191
+ case InternalInterface.MG_ACT_CTRL_VERIFICATION:
192
+ info = state === FlowMonitorInterface.FLWMTR_START
193
+ ? FlowMonitorQueue.S_CTRLVER_STR
194
+ : FlowMonitorQueue.E_CTRLVER_STR;
195
+ id = FlowMonitorInterface.FLWMTR_CTRL_SUFFIX;
196
+ break;
197
+ default:
198
+ info = null;
199
+ break;
200
+ }
201
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, id);
202
+ if (info !== null) {
203
+ info = info + ctrlName;
204
+ if (id === FlowMonitorInterface.FLWMTR_VARCHG_VALUE && state === FlowMonitorInterface.FLWMTR_START)
205
+ info = info + FlowMonitorQueue.VARIABLE_REASON_STR;
206
+ act.setInfo(info);
207
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
208
+ }
209
+ this._queue.put(act);
210
+ }
211
+ }
212
+ addTaskFlowHandler(handlerId, state, taskInfo) {
213
+ if (this._enabled && this._isTaskFlow) {
214
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_TASK_FLW, FlowMonitorInterface.FLWMTR_TSK_HANDLER);
215
+ let info;
216
+ switch (state) {
217
+ case FlowMonitorInterface.FLWMTR_START:
218
+ info = NString.Format(FlowMonitorQueue.S_HANDLER_STR, handlerId);
219
+ break;
220
+ case FlowMonitorInterface.FLWMTR_END:
221
+ info = NString.Format(FlowMonitorQueue.E_HANDLER_STR, handlerId);
222
+ break;
223
+ default:
224
+ info = null;
225
+ break;
226
+ }
227
+ if (info !== null) {
228
+ act.setInfo(info);
229
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
230
+ }
231
+ this._queue.put(act);
232
+ }
233
+ }
234
+ addRecompute(triggeredByVarName, taskInfo) {
235
+ if (this._enabled && this._isRecompute) {
236
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_RECOMPUTE, FlowMonitorInterface.FLWMTR_RECOMP);
237
+ let info = FlowMonitorQueue.RECOMP_STR + triggeredByVarName;
238
+ act.setInfo(info);
239
+ this._queue.put(act);
240
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
241
+ }
242
+ }
243
+ async addFlowFieldOperation(oper, bExecuted, taskInfo) {
244
+ if (this._enabled && this._isFlowOperation) {
245
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_FLW_OPER, FlowMonitorInterface.FLWMTR_DATA_OPER);
246
+ let buffer = new StringBuilder(FlowMonitorQueue.FLW_PERFIX);
247
+ await oper.AddFlowDescription(buffer);
248
+ buffer.Append(' ');
249
+ if (!bExecuted)
250
+ buffer.Append("[Not Executed]");
251
+ let info = buffer.ToString();
252
+ act.setInfo(info);
253
+ this._queue.put(act);
254
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
255
+ }
256
+ }
257
+ addFlowOperationUpdate(state, taskInfo) {
258
+ if (this._enabled && this._isFlowOperation) {
259
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_FLW_OPER, FlowMonitorInterface.FLWMTR_DATA_OPER);
260
+ let info;
261
+ if (state === FlowMonitorInterface.FLWMTR_START)
262
+ info = "Starts Update";
263
+ else
264
+ info = "Ends Update";
265
+ act.setInfo(info);
266
+ this._queue.put(act);
267
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + info, true);
268
+ }
269
+ }
270
+ addFlowVerifyInfo(info, taskInfo) {
271
+ this.addFlowInfo(info, taskInfo);
272
+ }
273
+ addFlowInvokeOsInfo(info, taskInfo) {
274
+ this.addFlowInfo(info, taskInfo);
275
+ }
276
+ addFlowInfo(info, taskInfo) {
277
+ if (!this._enabled)
278
+ return;
279
+ let act = new ActivityItem(this, FlowMonitorQueue.ACT_FLW_OPER, FlowMonitorInterface.FLWMTR_DATA_OPER);
280
+ let buffer = new StringBuilder("");
281
+ if (!(info === "")) {
282
+ buffer.Append(" >> INFORMATION >> ");
283
+ buffer.Append(info);
284
+ }
285
+ let newInfo = buffer.ToString();
286
+ act.setInfo(newInfo);
287
+ this._queue.put(act);
288
+ Logger.Instance.WriteSupportToLog(taskInfo + ": " + newInfo, true);
289
+ }
290
+ }
291
+ FlowMonitorQueue._instance = null;
292
+ FlowMonitorQueue.S_EVENT_STR1 = ">>Starts ";
293
+ FlowMonitorQueue.S_EVENT_STR2 = " Event";
294
+ FlowMonitorQueue.S_EVENT_PROPAGATED = "Event was propagated";
295
+ FlowMonitorQueue.E_EVENT_STR = "<<Ends Event";
296
+ FlowMonitorQueue.TSK_CHNG_MODE = "Task Mode Change - ";
297
+ FlowMonitorQueue.S_RECPRF_STR = "Starts Record Prefix";
298
+ FlowMonitorQueue.E_RECPRF_STR = "Ends Record Prefix";
299
+ FlowMonitorQueue.S_RECSUF_STR = "Starts Record Suffix";
300
+ FlowMonitorQueue.E_RECSUF_STR = "Ends Record Suffix";
301
+ FlowMonitorQueue.S_TASKSUF_STR = "Starts Task Suffix";
302
+ FlowMonitorQueue.E_TASKSUF_STR = "Ends Task Suffix";
303
+ FlowMonitorQueue.S_TASKPRF_STR = "Starts Task Prefix";
304
+ FlowMonitorQueue.E_TASKPRF_STR = "Ends Task Prefix";
305
+ FlowMonitorQueue.S_CTRLPRF_STR = "Starts Control Prefix - ";
306
+ FlowMonitorQueue.E_CTRLPRF_STR = "Ends Control Prefix - ";
307
+ FlowMonitorQueue.S_CTRLSUF_STR = "Starts Control Suffix - ";
308
+ FlowMonitorQueue.E_CTRLSUF_STR = "Ends Control Suffix - ";
309
+ FlowMonitorQueue.S_HANDLER_STR = "Starts handling event {0}";
310
+ FlowMonitorQueue.E_HANDLER_STR = "Ends handling event {0}";
311
+ FlowMonitorQueue.S_CTRLVER_STR = "Starts Control Verification for Control - ";
312
+ FlowMonitorQueue.E_CTRLVER_STR = "Ends Control Verification for Control - ";
313
+ FlowMonitorQueue.RECOMP_STR = "Recomputes - ";
314
+ FlowMonitorQueue.S_VARIABLE_STR = "Starts Variable Change - ";
315
+ FlowMonitorQueue.E_VARIABLE_STR = "Ends Variable Change - ";
316
+ FlowMonitorQueue.VARIABLE_REASON_STR = " - Reason - Previous value";
317
+ FlowMonitorQueue.INFORM_STR = " >> INFORMATION >> ";
318
+ FlowMonitorQueue.FLW_STEP_FWD = "(Step Forward)";
319
+ FlowMonitorQueue.FLW_FAST_FWD = "(Fast Forward)";
320
+ FlowMonitorQueue.FLW_STEP_BWD = "(Step Backward)";
321
+ FlowMonitorQueue.FLW_FAST_BWD = "(Fast Backward)";
322
+ FlowMonitorQueue.FLW_NOT_EXEC = "[Not Executed]";
323
+ FlowMonitorQueue.FLW_FORWARD = "(Forward)";
324
+ FlowMonitorQueue.FLW_BACKWARD = "(Backward)";
325
+ FlowMonitorQueue.FLW_PERFIX = "Flow - ";
326
+ FlowMonitorQueue.S_UPDATE_STR = "Starts Update";
327
+ FlowMonitorQueue.E_UPDATE_STR = "Ends Update";
328
+ FlowMonitorQueue.ACT_TASK = 'T';
329
+ FlowMonitorQueue.ACT_TASK_FLW = 'F';
330
+ FlowMonitorQueue.ACT_RECOMPUTE = 'R';
331
+ FlowMonitorQueue.ACT_FLW_OPER = 'T';
332
+ FlowMonitorQueue.LongTimePattern = "HH:mm:ss:SSS";
333
+ class ActivityItem {
334
+ constructor(enclosingInstance, type, id) {
335
+ this._enclosingInstance = null;
336
+ this._id = 0;
337
+ this._type = null;
338
+ this._info = null;
339
+ this._time = null;
340
+ this._enclosingInstance = enclosingInstance;
341
+ this._type = type;
342
+ this._id = id;
343
+ this.setTime();
344
+ }
345
+ setTime() {
346
+ this._time = DateTimeUtils.ToString(DateTime.Now, FlowMonitorQueue.LongTimePattern, Logger.Instance);
347
+ }
348
+ setInfo(info_) {
349
+ this._info = ((info_ !== null) ? XmlParser.escape(info_) : info_);
350
+ }
351
+ buildXML(message) {
352
+ message.Append(XMLConstants.START_TAG + ConstInterface.MG_TAG_FLWMTR_ACT);
353
+ message.Append(" " + XMLConstants.MG_ATTR_TYPE + "=\"" + this._type + "\"");
354
+ message.Append(" " + XMLConstants.MG_ATTR_ID + "=\"" + this._id + "\"");
355
+ if (this._info != null)
356
+ message.Append(" " + ConstInterface.MG_ATTR_INFO + "=\"" + this._info + "\"");
357
+ message.Append(" " + ConstInterface.MG_ATTR_TIME + "=\"" + this._time + "\"");
358
+ message.Append(XMLConstants.TAG_TERM);
359
+ }
360
+ }
361
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd01vbml0b3JRdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9GbG93TW9uaXRvclF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQVEsT0FBTyxFQUFFLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXJILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQTdCO1FBNENVLFdBQU0sR0FBd0IsSUFBSSxLQUFLLEVBQWdCLENBQUM7UUFDeEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUNyQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztJQXlabkMsQ0FBQztJQXZaQyxNQUFNLEtBQUssUUFBUTtRQUNqQixJQUFJLGdCQUFnQixDQUFDLFNBQVMsS0FBSyxJQUFJO1lBQ3JDLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFFdEQsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO1FBQ2xELElBQUksSUFBSSxHQUFXLHFCQUFxQixDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFB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RSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJO1lBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxZQUFZLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLFlBQVksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM5RSxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lGbG93TW9uaXRvclF1ZXVlfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7RGF0ZVRpbWUsIExpc3QsIE5TdHJpbmcsIFN0cmluZ0J1aWxkZXJ9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHtDb25zdGFudHMsIERhdGVUaW1lVXRpbHMsIEludGVybmFsSW50ZXJmYWNlLCBMb2dnZXIsIFF1ZXVlLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlcn0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7T3BlcmF0aW9ufSBmcm9tICcuLi9ydC9PcGVyYXRpb24nO1xyXG5pbXBvcnQge0Zsb3dNb25pdG9ySW50ZXJmYWNlfSBmcm9tICcuLi9GbG93TW9uaXRvckludGVyZmFjZSc7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gJy4uL0NvbnN0SW50ZXJmYWNlJztcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBGbG93TW9uaXRvclF1ZXVlIGltcGxlbWVudHMgSUZsb3dNb25pdG9yUXVldWUge1xyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogRmxvd01vbml0b3JRdWV1ZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU19FVkVOVF9TVFIxOiBzdHJpbmcgPSBcIj4+U3RhcnRzIFwiO1xyXG4gIHByaXZhdGUgc3RhdGljIFNfRVZFTlRfU1RSMjogc3RyaW5nID0gXCIgRXZlbnRcIjtcclxuICBwcml2YXRlIHN0YXRpYyBTX0VWRU5UX1BST1BBR0FURUQ6IHN0cmluZyA9IFwiRXZlbnQgd2FzIHByb3BhZ2F0ZWRcIjtcclxuICBwcml2YXRlIHN0YXRpYyBFX0VWRU5UX1NUUjogc3RyaW5nID0gXCI8PEVuZHMgRXZlbnRcIjtcclxuICBwcml2YXRlIHN0YXRpYyBUU0tfQ0hOR19NT0RFOiBzdHJpbmcgPSBcIlRhc2sgTW9kZSBDaGFuZ2UgLSBcIjtcclxuICBwcml2YXRlIHN0YXRpYyBTX1JFQ1BSRl9TVFI6IHN0cmluZyA9IFwiU3RhcnRzIFJlY29yZCBQcmVmaXhcIjtcclxuICBwcml2YXRlIHN0YXRpYyBFX1JFQ1BSRl9TVFI6IHN0cmluZyA9IFwiRW5kcyBSZWNvcmQgUHJlZml4XCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU19SRUNTVUZfU1RSOiBzdHJpbmcgPSBcIlN0YXJ0cyBSZWNvcmQgU3VmZml4XCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRV9SRUNTVUZfU1RSOiBzdHJpbmcgPSBcIkVuZHMgUmVjb3JkIFN1ZmZpeFwiO1xyXG4gIHByaXZhdGUgc3RhdGljIFNfVEFTS1NVRl9TVFI6IHN0cmluZyA9IFwiU3RhcnRzIFRhc2sgU3VmZml4XCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRV9UQVNLU1VGX1NUUjogc3RyaW5nID0gXCJFbmRzIFRhc2sgU3VmZml4XCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU19UQVNLUFJGX1NUUjogc3RyaW5nID0gXCJTdGFydHMgVGFzayBQcmVmaXhcIjtcclxuICBwcml2YXRlIHN0YXRpYyBFX1RBU0tQUkZfU1RSOiBzdHJpbmcgPSBcIkVuZHMgVGFzayBQcmVmaXhcIjtcclxuICBwcml2YXRlIHN0YXRpYyBTX0NUUkxQUkZfU1RSOiBzdHJpbmcgPSBcIlN0YXJ0cyBDb250cm9sIFByZWZpeCAtIFwiO1xyXG4gIHByaXZhdGUgc3RhdGljIEVfQ1RSTFBSRl9TVFI6IHN0cmluZyA9IFwiRW5kcyBDb250cm9sIFByZWZpeCAtIFwiO1xyXG4gIHByaXZhdGUgc3RhdGljIFNfQ1RSTFNVRl9TVFI6IHN0cmluZyA9IFwiU3RhcnRzIENvbnRyb2wgU3VmZml4IC0gXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRV9DVFJMU1VGX1NUUjogc3RyaW5nID0gXCJFbmRzIENvbnRyb2wgU3VmZml4IC0gXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU19IQU5ETEVSX1NUUjogc3RyaW5nID0gXCJTdGFydHMgaGFuZGxpbmcgZXZlbnQgezB9XCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRV9IQU5ETEVSX1NUUjogc3RyaW5nID0gXCJFbmRzIGhhbmRsaW5nIGV2ZW50IHswfVwiO1xyXG4gIHByaXZhdGUgc3RhdGljIFNfQ1RSTFZFUl9TVFI6IHN0cmluZyA9IFwiU3RhcnRzIENvbnRyb2wgVmVyaWZpY2F0aW9uIGZvciBDb250cm9sIC0gXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRV9DVFJMVkVSX1NUUjogc3RyaW5nID0gXCJFbmRzIENvbnRyb2wgVmVyaWZpY2F0aW9uIGZvciBDb250cm9sIC0gXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgUkVDT01QX1NUUjogc3RyaW5nID0gXCJSZWNvbXB1dGVzIC0gXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU19WQVJJQUJMRV9TVFI6IHN0cmluZyA9IFwiU3RhcnRzIFZhcmlhYmxlIENoYW5nZSAtIFwiO1xyXG4gIHByaXZhdGUgc3RhdGljIEVfVkFSSUFCTEVfU1RSOiBzdHJpbmcgPSBcIkVuZHMgVmFyaWFibGUgQ2hhbmdlIC0gXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgVkFSSUFCTEVfUkVBU09OX1NUUjogc3RyaW5nID0gXCIgLSBSZWFzb24gLSBQcmV2aW91cyB2YWx1ZVwiO1xyXG4gIHByaXZhdGUgc3RhdGljIElORk9STV9TVFI6IHN0cmluZyA9IFwiID4+IElORk9STUFUSU9OID4+IFwiO1xyXG4gIHByaXZhdGUgc3RhdGljIEZMV19TVEVQX0ZXRDogc3RyaW5nID0gXCIoU3RlcCBGb3J3YXJkKVwiO1xyXG4gIHByaXZhdGUgc3RhdGljIEZMV19GQVNUX0ZXRDogc3RyaW5nID0gXCIoRmFzdCBGb3J3YXJkKVwiO1xyXG4gIHByaXZhdGUgc3RhdGljIEZMV19TVEVQX0JXRDogc3RyaW5nID0gXCIoU3RlcCBCYWNrd2FyZClcIjtcclxuICBwcml2YXRlIHN0YXRpYyBGTFdfRkFTVF9CV0Q6IHN0cmluZyA9IFwiKEZhc3QgQmFja3dhcmQpXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRkxXX05PVF9FWEVDOiBzdHJpbmcgPSBcIltOb3QgRXhlY3V0ZWRdXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRkxXX0ZPUldBUkQ6IHN0cmluZyA9IFwiKEZvcndhcmQpXCI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgRkxXX0JBQ0tXQVJEOiBzdHJpbmcgPSBcIihCYWNrd2FyZClcIjtcclxuICBwcml2YXRlIHN0YXRpYyBGTFdfUEVSRklYOiBzdHJpbmcgPSBcIkZsb3cgLSBcIjtcclxuICBwcml2YXRlIHN0YXRpYyBTX1VQREFURV9TVFI6IHN0cmluZyA9IFwiU3RhcnRzIFVwZGF0ZVwiO1xyXG4gIHByaXZhdGUgc3RhdGljIEVfVVBEQVRFX1NUUjogc3RyaW5nID0gXCJFbmRzIFVwZGF0ZVwiO1xyXG4gIHByaXZhdGUgc3RhdGljIEFDVF9UQVNLOiBzdHJpbmcgPSAnVCc7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgQUNUX1RBU0tfRkxXOiBzdHJpbmcgPSAnRic7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgQUNUX1JFQ09NUFVURTogc3RyaW5nID0gJ1InO1xyXG4gIHByaXZhdGUgc3RhdGljIEFDVF9GTFdfT1BFUjogc3RyaW5nID0gJ1QnO1xyXG5cclxuICBzdGF0aWMgTG9uZ1RpbWVQYXR0ZXJuID0gXCJISDptbTpzczpTU1NcIjtcclxuICBwcml2YXRlIF9xdWV1ZTogUXVldWU8QWN0aXZpdHlJdGVtPiA9IG5ldyBRdWV1ZTxBY3Rpdml0eUl0ZW0+KCk7XHJcbiAgcHJpdmF0ZSBfZW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzRmxvd09wZXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzUmVjb21wdXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNUYXNrOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNUYXNrRmxvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFNob3VsZFNlcmlhbGl6ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IEZsb3dNb25pdG9yUXVldWUge1xyXG4gICAgaWYgKEZsb3dNb25pdG9yUXVldWUuX2luc3RhbmNlID09PSBudWxsKVxyXG4gICAgICBGbG93TW9uaXRvclF1ZXVlLl9pbnN0YW5jZSA9IG5ldyBGbG93TW9uaXRvclF1ZXVlKCk7XHJcblxyXG4gICAgcmV0dXJuIEZsb3dNb25pdG9yUXVldWUuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgYWRkVGFza0NuZ01vZGUobmV3VGFza01vZGU6IHN0cmluZywgdGFza0luZm86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IGluZm86IHN0cmluZyA9IFwiVGFzayBNb2RlIENoYW5nZSAtIFwiO1xyXG4gICAgaWYgKHRoaXMuX2VuYWJsZWQgJiYgdGhpcy5faXNUYXNrKSB7XHJcbiAgICAgIGxldCBhY3Rpdml0eUl0ZW06IEFjdGl2aXR5SXRlbSA9IG5ldyBBY3Rpdml0eUl0ZW0odGhpcywgRmxvd01vbml0b3JRdWV1ZS5BQ1RfVEFTSywgRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX0NITkdfTU9ERSk7XHJcblxyXG4gICAgICBzd2l0Y2ggKG5ld1Rhc2tNb2RlKSB7XHJcbiAgICAgICAgY2FzZSBDb25zdGFudHMuVEFTS19NT0RFX01PRElGWTpcclxuICAgICAgICAgIGluZm8gKz0gXCJNb2RpZnlcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuXHJcbiAgICAgICAgY2FzZSBDb25zdGFudHMuVEFTS19NT0RFX0NSRUFURTpcclxuICAgICAgICAgIGluZm8gKz0gXCJDcmVhdGVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuXHJcbiAgICAgICAgY2FzZSBDb25zdGFudHMuVEFTS19NT0RFX0RFTEVURTpcclxuICAgICAgICAgIGluZm8gKz0gXCJEZWxldGVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuXHJcbiAgICAgICAgY2FzZSBDb25zdGFudHMuVEFTS19NT0RFX1FVRVJZOlxyXG4gICAgICAgICAgaW5mbyArPSBcIlF1ZXJ5XCI7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBpbmZvID0gbnVsbDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhY3Rpdml0eUl0ZW0uc2V0SW5mbyhpbmZvKTtcclxuICAgICAgdGhpcy5fcXVldWUucHV0KGFjdGl2aXR5SXRlbSk7XHJcblxyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTdXBwb3J0VG9Mb2codGFza0luZm8gK1wiOiBcIiArIGluZm8sIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHBhcnNlIHRoZSBkYXRhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBmaWxsRGF0YShwYXJzZXI6IFhtbFBhcnNlcik6IHZvaWQge1xyXG4gICAgbGV0IGVuZENvbnRleHQ6IG51bWJlciA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihcIi8+XCIsIHBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcbiAgICBpZiAoZW5kQ29udGV4dCAhPT0gLTEgJiYgZW5kQ29udGV4dCA8IHBhcnNlci5nZXRYTUxkYXRhKCkubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGZpbmQgbGFzdCBwb3NpdGlvbiBvZiBpdHMgdGFnXHJcbiAgICAgIGxldCB0YWc6IHN0cmluZyA9IHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCk7XHJcbiAgICAgIHBhcnNlci5hZGQyQ3VyckluZGV4KHRhZy5pbmRleE9mKFwiZmx3bXRyX2NvbmZpZ1wiKSArIFwiZmx3bXRyX2NvbmZpZ1wiLmxlbmd0aCk7XHJcblxyXG4gICAgICBsZXQgdG9rZW5zOiBMaXN0PHN0cmluZz4gPSBYbWxQYXJzZXIuZ2V0VG9rZW5zKHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCksIFhNTENvbnN0YW50cy5YTUxfQVRUUl9ERUxJTSk7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZURldlRvTG9nKFwiaW4gRmxvd01vbml0b3JRdWV1ZS5GaWxsRGF0YTogXCIgKyB0b2tlbnMudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICB0aGlzLmluaXRFbGVtZW50cyh0b2tlbnMpO1xyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZENvbnRleHQgKyBYTUxDb25zdGFudHMuVEFHX1RFUk0ubGVuZ3RoKTsgLy8gdG8gZGVsZXRlIFwiLz5cIiB0b29cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gIEZsb3dNb25pdG9yUXVldWUuRmlsbERhdGEoKSBvdXQgb2Ygc3RyaW5nIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBwYXJzZSB0aGUgWE1MIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidG9rZW5zVmVjdG9yXCI+YXR0cmlidXRlL3ZhbHVlLy4uLmF0dHJpYnV0ZS92YWx1ZS8gdmVjdG9yPC9wYXJhbT5cclxuICBwcml2YXRlIGluaXRFbGVtZW50cyh0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPik6IHZvaWQge1xyXG5cclxuICAgIGZvciAobGV0IGo6IG51bWJlciA9IDA7IGogPCB0b2tlbnNWZWN0b3IubGVuZ3RoOyBqID0gaiArIDIpIHtcclxuICAgICAgbGV0IGF0dHJpYnV0ZTogc3RyaW5nID0gPHN0cmluZz50b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaik7XHJcbiAgICAgIGxldCB2YWx1ZVN0cjogc3RyaW5nID0gPHN0cmluZz50b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaiArIDEpO1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVEZXZUb0xvZyhhdHRyaWJ1dGUgKyBcIiB2YWx1ZTogXCIgKyB2YWx1ZVN0cik7XHJcblxyXG4gICAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9UQVNLOlxyXG4gICAgICAgICAgdGhpcy5faXNUYXNrID0gWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9UQVNLRkxXOlxyXG4gICAgICAgICAgdGhpcy5faXNUYXNrRmxvdyA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUkVDT01QOlxyXG4gICAgICAgICAgdGhpcy5faXNSZWNvbXB1dGUgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0ZMV09QOlxyXG4gICAgICAgICAgdGhpcy5faXNGbG93T3BlcmF0aW9uID0gWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTkFCTEVEOlxyXG4gICAgICAgICAgdGhpcy5lbmFibGUoWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gRmxvd01vbml0b3JRdWV1ZS5pbml0RWxlbWVudHMoKTogdW5rbm93biAgYXR0cmlidXRlOiBcIiArIGF0dHJpYnV0ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGJ1aWxkIFhNTCBhbmQgZW1wdHkgdGhlIGlubmVyIHF1ZXVlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBidWlsZFhNTChtZXNzYWdlOiBTdHJpbmdCdWlsZGVyKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3F1ZXVlLmlzRW1wdHkoKSAmJiB0aGlzLlNob3VsZFNlcmlhbGl6ZSkge1xyXG4gICAgICBtZXNzYWdlLkFwcGVuZChYTUxDb25zdGFudHMuU1RBUlRfVEFHICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0ZMV01UUl9NU0cgKyBYTUxDb25zdGFudHMuVEFHX0NMT1NFKTtcclxuXHJcbiAgICAgIHdoaWxlICghdGhpcy5fcXVldWUuaXNFbXB0eSgpKSB7XHJcbiAgICAgICAgbGV0IGN1cnJBY3Q6IEFjdGl2aXR5SXRlbSA9IDxBY3Rpdml0eUl0ZW0+dGhpcy5fcXVldWUuZ2V0KCk7XHJcbiAgICAgICAgY3VyckFjdC5idWlsZFhNTChtZXNzYWdlKTtcclxuICAgICAgfSAvLyBmaWxsIGFjdGl2aXRpZXNcclxuXHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiPC9cIiArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19GTFdNVFJfTVNHICsgWE1MQ29uc3RhbnRzLlRBR19DTE9TRSk7XHJcbiAgICB9IC8vIHRoZSBxdWV1ZSBpcyBub3QgZW1wdHlcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBpcyB0aGUgRmxvdyBNb25pdG9yIFF1ZXVlIGVtcHR5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlLmlzRW1wdHkoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBlbmFibGUgdGhlIGZsb3cgbW9uaXRvclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPnRoZSBwcmV2aW91cyBzdGF0ZSAoZW5hYmxlZC9kaXNhYmxlZCk8L3JldHVybnM+XHJcbiAgZW5hYmxlKHZhbHVlOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgd2FzRW5hYmxlZDogYm9vbGVhbiA9IHRoaXMuX2VuYWJsZWQ7XHJcbiAgICB0aGlzLl9lbmFibGVkID0gdmFsdWU7XHJcbiAgICB0aGlzLlNob3VsZFNlcmlhbGl6ZSA9IHRoaXMuX2VuYWJsZWQ7XHJcbiAgICByZXR1cm4gd2FzRW5hYmxlZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhZGQgQWN0aXZpdGllcyB0byB0aGUgcXVldWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHJpZ2dlcmVkQnlcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RhdGVcIj5vZiB0aGUgZXZlbnQgdGFzayBhY3Rpdml0aWU8L3BhcmFtPlxyXG4gIGFkZFRhc2tFdmVudCh0cmlnZ2VyZWRCeTogc3RyaW5nLCBzdGF0ZTogbnVtYmVyLCB0YXNrSW5mbzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZW5hYmxlZCAmJiB0aGlzLl9pc1Rhc2spIHtcclxuICAgICAgbGV0IGFjdDogQWN0aXZpdHlJdGVtID0gbmV3IEFjdGl2aXR5SXRlbSh0aGlzLCBGbG93TW9uaXRvclF1ZXVlLkFDVF9UQVNLLCBGbG93TW9uaXRvckludGVyZmFjZS5GTFdNVFJfRVZFTlQpO1xyXG5cclxuICAgICAgbGV0IGluZm86IHN0cmluZztcclxuICAgICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICAgIGNhc2UgRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX1NUQVJUOlxyXG4gICAgICAgICAgaW5mbyA9IEZsb3dNb25pdG9yUXVldWUuU19FVkVOVF9TVFIxICsgdHJpZ2dlcmVkQnkgKyBGbG93TW9uaXRvclF1ZXVlLlNfRVZFTlRfU1RSMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9FTkQ6XHJcbiAgICAgICAgICBpbmZvID0gRmxvd01vbml0b3JRdWV1ZS5FX0VWRU5UX1NUUiArIHRyaWdnZXJlZEJ5O1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX1BST1BBR0FURTpcclxuICAgICAgICAgIGluZm8gPSBGbG93TW9uaXRvclF1ZXVlLlNfRVZFTlRfUFJPUEFHQVRFRDtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgaW5mbyA9IG51bGw7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgYWN0LnNldEluZm8oaW5mbyk7XHJcbiAgICAgIHRoaXMuX3F1ZXVlLnB1dChhY3QpO1xyXG5cclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU3VwcG9ydFRvTG9nKHRhc2tJbmZvICtcIjogXCIgKyBpbmZvLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhZGQgdGFzayBmbG93IGZvciByZWNvcmQgcHJlZml4IG9yIHN1Zml4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkXCI+aXMgRkxXTVRSX1BSRUZJWCBvciBGTFdNVFJfU1VGRklYXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdGF0ZVwiPm9mIHRoZSBldmVudCB0YXNrIGFjdGl2aXRpZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIGFkZFRhc2tGbG93UmVjKGlkOiBudW1iZXIsIHN0YXRlOiBudW1iZXIsIHRhc2tJbmZvOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9lbmFibGVkICYmIHRoaXMuX2lzVGFza0Zsb3cpIHtcclxuICAgICAgbGV0IGluZm86IHN0cmluZztcclxuXHJcbiAgICAgIHN3aXRjaCAoaWQpIHtcclxuICAgICAgICBjYXNlIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SRUNfUFJFRklYOlxyXG4gICAgICAgICAgaW5mbyA9IHN0YXRlID09PSBGbG93TW9uaXRvckludGVyZmFjZS5GTFdNVFJfU1RBUlRcclxuICAgICAgICAgICAgPyBGbG93TW9uaXRvclF1ZXVlLlNfUkVDUFJGX1NUUlxyXG4gICAgICAgICAgICA6IEZsb3dNb25pdG9yUXVldWUuRV9SRUNQUkZfU1RSO1xyXG4gICAgICAgICAgaWQgPSBGbG93TW9uaXRvckludGVyZmFjZS5GTFdNVFJfUFJFRklYO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1JFQ19TVUZGSVg6XHJcbiAgICAgICAgICBpbmZvID0gc3RhdGUgPT09IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9TVEFSVFxyXG4gICAgICAgICAgICA/IEZsb3dNb25pdG9yUXVldWUuU19SRUNTVUZfU1RSXHJcbiAgICAgICAgICAgIDogRmxvd01vbml0b3JRdWV1ZS5FX1JFQ1NVRl9TVFI7XHJcbiAgICAgICAgICBpZCA9IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9TVUZGSVg7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEFTS19QUkVGSVg6XHJcbiAgICAgICAgICBpbmZvID0gc3RhdGUgPT09IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9TVEFSVFxyXG4gICAgICAgICAgICA/IEZsb3dNb25pdG9yUXVldWUuU19UQVNLUFJGX1NUUlxyXG4gICAgICAgICAgICA6IEZsb3dNb25pdG9yUXVldWUuRV9UQVNLUFJGX1NUUjtcclxuICAgICAgICAgIGlkID0gRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX1BSRUZJWDtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9UQVNLX1NVRkZJWDpcclxuICAgICAgICAgIGluZm8gPSBzdGF0ZSA9PT0gRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX1NUQVJUXHJcbiAgICAgICAgICAgID8gRmxvd01vbml0b3JRdWV1ZS5TX1RBU0tTVUZfU1RSXHJcbiAgICAgICAgICAgIDogRmxvd01vbml0b3JRdWV1ZS5FX1RBU0tTVUZfU1RSO1xyXG4gICAgICAgICAgaWQgPSBGbG93TW9uaXRvckludGVyZmFjZS5GTFdNVFJfU1VGRklYO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBpbmZvID0gbnVsbDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgYWN0OiBBY3Rpdml0eUl0ZW0gPSBuZXcgQWN0aXZpdHlJdGVtKHRoaXMsIEZsb3dNb25pdG9yUXVldWUuQUNUX1RBU0tfRkxXLCBpZCk7XHJcbiAgICAgIGFjdC5zZXRJbmZvKGluZm8pO1xyXG4gICAgICB0aGlzLl9xdWV1ZS5wdXQoYWN0KTtcclxuXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVN1cHBvcnRUb0xvZyh0YXNrSW5mbyArXCI6IFwiICsgaW5mbywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkXCI+aXMgTUdfQUNUX1ZBUklBQkxFPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZsZE5hbWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RhdGVcIj5vZiB0aGUgZXZlbnQgdGFzayBhY3Rpdml0aWU8L3BhcmFtPlxyXG4gIGFkZFRhc2tGbG93RmxkKGlkOiBudW1iZXIsIGZsZE5hbWU6IHN0cmluZywgc3RhdGU6IG51bWJlciwgdGFza0luZm86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRUYXNrRmxvd0N0cmwoaWQsIGZsZE5hbWUsIHN0YXRlLCB0YXNrSW5mbyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkXCI+aXMgRkxXTVRSX0NUUkxfUFJFRklYIG9yIEZMV01UUl9DVFJMX1NVRkZJWDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjdHJsTmFtZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdGF0ZVwiPm9mIHRoZSBldmVudCB0YXNrIGFjdGl2aXRpZTwvcGFyYW0+XHJcbiAgYWRkVGFza0Zsb3dDdHJsKGlkOiBudW1iZXIsIGN0cmxOYW1lOiBzdHJpbmcsIHN0YXRlOiBudW1iZXIsIHRhc2tJbmZvOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9lbmFibGVkICYmIHRoaXMuX2lzVGFza0Zsb3cpIHtcclxuICAgICAgbGV0IGluZm86IHN0cmluZztcclxuXHJcbiAgICAgIHN3aXRjaCAoaWQpIHtcclxuICAgICAgICBjYXNlIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9WQVJJQUJMRTpcclxuICAgICAgICAgIGluZm8gPSBzdGF0ZSA9PT0gRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX1NUQVJUXHJcbiAgICAgICAgICAgID8gRmxvd01vbml0b3JRdWV1ZS5TX1ZBUklBQkxFX1NUUlxyXG4gICAgICAgICAgICA6IEZsb3dNb25pdG9yUXVldWUuRV9WQVJJQUJMRV9TVFI7XHJcbiAgICAgICAgICBpZCA9IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9WQVJDSEdfVkFMVUU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ1RSTF9QUkVGSVg6XHJcbiAgICAgICAgICBpbmZvID0gc3RhdGUgPT09IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9TVEFSVFxyXG4gICAgICAgICAgICA/IEZsb3dNb25pdG9yUXVldWUuU19DVFJMUFJGX1NUUlxyXG4gICAgICAgICAgICA6IEZsb3dNb25pdG9yUXVldWUuRV9DVFJMUFJGX1NUUjtcclxuICAgICAgICAgIGlkID0gRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX0NUUkxfUFJFRklYO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG5cclxuICAgICAgICBjYXNlIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DVFJMX1NVRkZJWDpcclxuICAgICAgICAgIGluZm8gPSBzdGF0ZSA9PT0gRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX1NUQVJUXHJcbiAgICAgICAgICAgID8gRmxvd01vbml0b3JRdWV1ZS5TX0NUUkxTVUZfU1RSXHJcbiAgICAgICAgICAgIDogRmxvd01vbml0b3JRdWV1ZS5FX0NUUkxTVUZfU1RSO1xyXG4gICAgICAgICAgaWQgPSBGbG93TW9uaXRvckludGVyZmFjZS5GTFdNVFJfQ1RSTF9TVUZGSVg7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ1RSTF9WRVJJRklDQVRJT046XHJcbiAgICAgICAgICBpbmZvID0gc3RhdGUgPT09IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9TVEFSVFxyXG4gICAgICAgICAgICA/IEZsb3dNb25pdG9yUXVldWUuU19DVFJMVkVSX1NUUlxyXG4gICAgICAgICAgICA6IEZsb3dNb25pdG9yUXVldWUuRV9DVFJMVkVSX1NUUjtcclxuICAgICAgICAgIGlkID0gRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX0NUUkxfU1VGRklYO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBpbmZvID0gbnVsbDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgYWN0OiBBY3Rpdml0eUl0ZW0gPSBuZXcgQWN0aXZpdHlJdGVtKHRoaXMsIEZsb3dNb25pdG9yUXVldWUuQUNUX1RBU0tfRkxXLCBpZCk7XHJcbiAgICAgIGlmIChpbmZvICE9PSBudWxsKSB7XHJcbiAgICAgICAgaW5mbyA9IGluZm8gKyBjdHJsTmFtZTtcclxuICAgICAgICBpZiAoaWQgPT09IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9WQVJDSEdfVkFMVUUgJiYgc3RhdGUgPT09IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9TVEFSVClcclxuICAgICAgICAgIGluZm8gPSBpbmZvICsgRmxvd01vbml0b3JRdWV1ZS5WQVJJQUJMRV9SRUFTT05fU1RSO1xyXG4gICAgICAgIGFjdC5zZXRJbmZvKGluZm8pO1xyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVN1cHBvcnRUb0xvZyh0YXNrSW5mbyArXCI6IFwiICsgaW5mbywgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fcXVldWUucHV0KGFjdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImhhbmRsZXJJZFwiPmlzaWQgb2YgdGhlIGhhbmRsZXJcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0YXRlXCI+b2YgdGhlIGV2ZW50IHRhc2sgYWN0aXZpdGllXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgYWRkVGFza0Zsb3dIYW5kbGVyKGhhbmRsZXJJZDogc3RyaW5nLCBzdGF0ZTogbnVtYmVyLCB0YXNrSW5mbzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZW5hYmxlZCAmJiB0aGlzLl9pc1Rhc2tGbG93KSB7XHJcbiAgICAgIGxldCBhY3Q6IEFjdGl2aXR5SXRlbSA9IG5ldyBBY3Rpdml0eUl0ZW0odGhpcywgRmxvd01vbml0b3JRdWV1ZS5BQ1RfVEFTS19GTFcsIEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9UU0tfSEFORExFUik7XHJcbiAgICAgIGxldCBpbmZvOiBzdHJpbmc7XHJcblxyXG4gICAgICBzd2l0Y2ggKHN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSBGbG93TW9uaXRvckludGVyZmFjZS5GTFdNVFJfU1RBUlQ6XHJcbiAgICAgICAgICBpbmZvID0gTlN0cmluZy5Gb3JtYXQoRmxvd01vbml0b3JRdWV1ZS5TX0hBTkRMRVJfU1RSLCBoYW5kbGVySWQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgRmxvd01vbml0b3JJbnRlcmZhY2UuRkxXTVRSX0VORDpcclxuICAgICAgICAgIGluZm8gPSBOU3RyaW5nLkZvcm1hdChGbG93TW9uaXRvclF1ZXVlLkVfSEFORExFUl9TVFIsIGhhbmRsZXJJZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGluZm8gPSBudWxsO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbmZvICE9PSBudWxsKSB7XHJcbiAgICAgICAgLy8gQlJLX0xFVkVMX0hBTkRMRVJfSU5URVJOQUwsQlJLX0xFVkVMX0hBTkRMRVJfU1lTVEVNLEJSS19MRVZFTF9IQU5ETEVSX1RJTUVSXHJcbiAgICAgICAgLy8gQlJLX0xFVkVMX0hBTkRMRVJfRVhQUkVTU0lPTixCUktfTEVWRUxfSEFORExFUl9FUlJPUixCUktfTEVWRUxfSEFORExFUl9VU0VSXHJcbiAgICAgICAgYWN0LnNldEluZm8oaW5mbyk7XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU3VwcG9ydFRvTG9nKHRhc2tJbmZvICtcIjogXCIgKyBpbmZvLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9xdWV1ZS5wdXQoYWN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHJpZ2dlcmVkQnlWYXJOYW1lXCI+dmFyIG5hbWUgLCBoYXMgdHJpZ2dlcmVkIFJlY29tcHV0ZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIGFkZFJlY29tcHV0ZSh0cmlnZ2VyZWRCeVZhck5hbWU6IHN0cmluZywgdGFza0luZm86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2VuYWJsZWQgJiYgdGhpcy5faXNSZWNvbXB1dGUpIHtcclxuICAgICAgbGV0IGFjdDogQWN0aXZpdHlJdGVtID0gbmV3IEFjdGl2aXR5SXRlbSh0aGlzLCBGbG93TW9uaXRvclF1ZXVlLkFDVF9SRUNPTVBVVEUsIEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9SRUNPTVApO1xyXG4gICAgICBsZXQgaW5mbyA9IEZsb3dNb25pdG9yUXVldWUuUkVDT01QX1NUUiArIHRyaWdnZXJlZEJ5VmFyTmFtZTtcclxuICAgICAgYWN0LnNldEluZm8oaW5mbyk7XHJcbiAgICAgIHRoaXMuX3F1ZXVlLnB1dChhY3QpO1xyXG5cclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU3VwcG9ydFRvTG9nKHRhc2tJbmZvICtcIjogXCIgKyBpbmZvLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBBZGQgYSBmaWVsZCBmbG93IG9wZXJhdGlvbiBhY3Rpdml0eSBpdGVtLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvcGVyXCI+VGhlIG9wZXJhdGlvbiBiZWluZyBsb2dnZWQuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImJFeGVjdXRlZFwiPldpbGwgdGhlIG9wZXJhdGlvbiBiZSBleGVjdXRlZC48L3BhcmFtPlxyXG4gIGFzeW5jIGFkZEZsb3dGaWVsZE9wZXJhdGlvbihvcGVyOiBPcGVyYXRpb24sIGJFeGVjdXRlZDogYm9vbGVhbiwgdGFza0luZm86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuX2VuYWJsZWQgJiYgdGhpcy5faXNGbG93T3BlcmF0aW9uKSB7XHJcbiAgICAgIGxldCBhY3Q6IEFjdGl2aXR5SXRlbSA9IG5ldyBBY3Rpdml0eUl0ZW0odGhpcywgRmxvd01vbml0b3JRdWV1ZS5BQ1RfRkxXX09QRVIsIEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9EQVRBX09QRVIpO1xyXG4gICAgICBsZXQgYnVmZmVyOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoRmxvd01vbml0b3JRdWV1ZS5GTFdfUEVSRklYKTtcclxuICAgICAgYXdhaXQgb3Blci5BZGRGbG93RGVzY3JpcHRpb24oYnVmZmVyKTtcclxuICAgICAgYnVmZmVyLkFwcGVuZCgnICcpO1xyXG5cclxuXHJcbiAgICAgIGlmICghYkV4ZWN1dGVkKVxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJbTm90IEV4ZWN1dGVkXVwiKTtcclxuXHJcbiAgICAgIGxldCBpbmZvID0gYnVmZmVyLlRvU3RyaW5nKCk7XHJcbiAgICAgIGFjdC5zZXRJbmZvKGluZm8pO1xyXG4gICAgICB0aGlzLl9xdWV1ZS5wdXQoYWN0KTtcclxuXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVN1cHBvcnRUb0xvZyh0YXNrSW5mbyArXCI6IFwiICsgaW5mbywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0YXRlXCI+b2YgdGhlIHVwZGF0ZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIGFkZEZsb3dPcGVyYXRpb25VcGRhdGUoc3RhdGU6IG51bWJlciwgdGFza0luZm86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2VuYWJsZWQgJiYgdGhpcy5faXNGbG93T3BlcmF0aW9uKSB7XHJcbiAgICAgIGxldCBhY3Q6IEFjdGl2aXR5SXRlbSA9IG5ldyBBY3Rpdml0eUl0ZW0odGhpcywgRmxvd01vbml0b3JRdWV1ZS5BQ1RfRkxXX09QRVIsIEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9EQVRBX09QRVIpOyAvLyBNR19PUEVSX1VQREFURVxyXG4gICAgICBsZXQgaW5mbzogc3RyaW5nO1xyXG4gICAgICBpZiAoc3RhdGUgPT09IEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9TVEFSVClcclxuICAgICAgICBpbmZvID0gXCJTdGFydHMgVXBkYXRlXCI7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBpbmZvID0gIFwiRW5kcyBVcGRhdGVcIjtcclxuXHJcbiAgICAgIGFjdC5zZXRJbmZvKGluZm8pO1xyXG4gICAgICB0aGlzLl9xdWV1ZS5wdXQoYWN0KTtcclxuXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVN1cHBvcnRUb0xvZyh0YXNrSW5mbyArXCI6IFwiICsgaW5mbywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImluZm9cIj5zdHJpbmcgcGFzc2VkIHRvIHN0YXR1cyBsaW5lIHZlcmlmeSBhY3Rpb248L3BhcmFtPlxyXG4gIGFkZEZsb3dWZXJpZnlJbmZvKGluZm86IHN0cmluZywgdGFza0luZm86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRGbG93SW5mbyhpbmZvLCB0YXNrSW5mbyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImluZm9cIj5zdHJpbmcgYWRkZWQgdG8gZmxvdyBtb25pdG9yIHF1ZXVlIGZvciBJbnZva2VPczwvcGFyYW0+XHJcbiAgYWRkRmxvd0ludm9rZU9zSW5mbyhpbmZvOiBzdHJpbmcsIHRhc2tJbmZvOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkRmxvd0luZm8oaW5mbywgdGFza0luZm8pO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHVzZXIgc3RyaW5nIHBhc3NlZCB0byBzdGF0dXMgbGluZSBmb3IgYWN0aW9uc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpbmZvXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBhZGRGbG93SW5mbyhpbmZvOiBzdHJpbmcsIHRhc2tJbmZvOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fZW5hYmxlZClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGxldCBhY3Q6IEFjdGl2aXR5SXRlbSA9IG5ldyBBY3Rpdml0eUl0ZW0odGhpcywgRmxvd01vbml0b3JRdWV1ZS5BQ1RfRkxXX09QRVIsIEZsb3dNb25pdG9ySW50ZXJmYWNlLkZMV01UUl9EQVRBX09QRVIpO1xyXG4gICAgbGV0IGJ1ZmZlcjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKFwiXCIpO1xyXG5cclxuICAgIGlmICghKGluZm8gPT09IFwiXCIpKSB7XHJcbiAgICAgIGJ1ZmZlci5BcHBlbmQoXCIgPj4gSU5GT1JNQVRJT04gPj4gXCIpO1xyXG4gICAgICBidWZmZXIuQXBwZW5kKGluZm8pO1xyXG4gICAgfVxyXG4gICAgbGV0IG5ld0luZm8gPSBidWZmZXIuVG9TdHJpbmcoKTtcclxuICAgIGFjdC5zZXRJbmZvKG5ld0luZm8pO1xyXG4gICAgdGhpcy5fcXVldWUucHV0KGFjdCk7XHJcblxyXG4gICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU3VwcG9ydFRvTG9nKHRhc2tJbmZvICtcIjogXCIgKyBuZXdJbmZvLCB0cnVlKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgYWxsIGluZm9ybWF0aW9uIGFib3V0IGN1cnJlbnQgQWN0aXZpdHlcclxuLy8vIDwvc3VtbWFyeT5cclxuY2xhc3MgQWN0aXZpdHlJdGVtIHtcclxuICBwcml2YXRlIF9lbmNsb3NpbmdJbnN0YW5jZTogRmxvd01vbml0b3JRdWV1ZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfaWQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfdHlwZTogc3RyaW5nID0gbnVsbDsgLy8gQUNUWV9UQVNLfEFDVF9UQVNLX0ZMV3xBQ1RfREFUQVZJRVd8QUNUX1JFQ09NUFVURXxBQ1RfRkxXX09QRVJcclxuICBwcml2YXRlIF9pbmZvOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX3RpbWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVuY2xvc2luZ0luc3RhbmNlOiBGbG93TW9uaXRvclF1ZXVlLCB0eXBlOiBzdHJpbmcsIGlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2VuY2xvc2luZ0luc3RhbmNlID0gZW5jbG9zaW5nSW5zdGFuY2U7XHJcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcclxuICAgIHRoaXMuX2lkID0gaWQ7XHJcbiAgICB0aGlzLnNldFRpbWUoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzYXZlIGN1cnJlbnQgdGltZSBpbiB0aGUgbmVlZGVkIGZvcm1hdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBzZXRUaW1lKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdGltZSA9IERhdGVUaW1lVXRpbHMuVG9TdHJpbmcoRGF0ZVRpbWUuTm93LCBGbG93TW9uaXRvclF1ZXVlLkxvbmdUaW1lUGF0dGVybiwgTG9nZ2VyLkluc3RhbmNlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgYWRkZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBhY3Rpdml0eVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0SW5mbyhpbmZvXzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbmZvID0gKChpbmZvXyAhPT0gbnVsbCkgPyBYbWxQYXJzZXIuZXNjYXBlKGluZm9fKSA6IGluZm9fKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBidWlsZCBYTUwgc3RyaW5nIGZvciB0aGUgYWN0aXZpdHkgaXRlbVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYnVpbGRYTUwobWVzc2FnZTogU3RyaW5nQnVpbGRlcik6IHZvaWQge1xyXG4gICAgbWVzc2FnZS5BcHBlbmQoWE1MQ29uc3RhbnRzLlNUQVJUX1RBRyArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19GTFdNVFJfQUNUKTtcclxuICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVFlQRSArIFwiPVxcXCJcIiArIHRoaXMuX3R5cGUgKyBcIlxcXCJcIik7XHJcbiAgICBtZXNzYWdlLkFwcGVuZChcIiBcIiArIFhNTENvbnN0YW50cy5NR19BVFRSX0lEICsgXCI9XFxcIlwiICsgdGhpcy5faWQgKyBcIlxcXCJcIik7XHJcbiAgICBpZiAodGhpcy5faW5mbyAhPSBudWxsKVxyXG4gICAgICBtZXNzYWdlLkFwcGVuZChcIiBcIiArIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSU5GTyArIFwiPVxcXCJcIiArIHRoaXMuX2luZm8gKyBcIlxcXCJcIik7XHJcbiAgICBtZXNzYWdlLkFwcGVuZChcIiBcIiArIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVElNRSArIFwiPVxcXCJcIiArIHRoaXMuX3RpbWUgKyBcIlxcXCJcIik7XHJcbiAgICBtZXNzYWdlLkFwcGVuZChYTUxDb25zdGFudHMuVEFHX1RFUk0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1 +1,2 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1pcnJvclhNTC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9JTWlycm9yWE1MLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1htbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtQYXJhbVBhcnNlUmVzdWx0fSBmcm9tIFwiLi9Qcm1NYXBcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT4gSW50ZXJmYWNlIGZvciBtaXJyb3JpbmcgYSBzaW5nbGUgaXRlbTwvc3VtbWFyeT5cclxuZXhwb3J0IGludGVyZmFjZSBJTWlycm9yWE1MIHtcclxuICBtaXJyb3JUb1hNTCgpOiBzdHJpbmc7XHJcblxyXG4gIGluaXQobmFtZTogc3RyaW5nLCB4bWxQYXJzZXI6IFhtbFBhcnNlcik6IFBhcmFtUGFyc2VSZXN1bHQ7XHJcbn1cclxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1pcnJvclhNTC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9JTWlycm9yWE1MLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1htbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtQYXJhbVBhcnNlUmVzdWx0fSBmcm9tIFwiLi9QYXJhbVBhcnNlUmVzdWx0XCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+IEludGVyZmFjZSBmb3IgbWlycm9yaW5nIGEgc2luZ2xlIGl0ZW08L3N1bW1hcnk+XHJcbmV4cG9ydCBpbnRlcmZhY2UgSU1pcnJvclhNTCB7XHJcbiAgbWlycm9yVG9YTUwoKTogc3RyaW5nO1xyXG5cclxuICBpbml0KG5hbWU6IHN0cmluZywgeG1sUGFyc2VyOiBYbWxQYXJzZXIpOiBQYXJhbVBhcnNlUmVzdWx0O1xyXG59XHJcbiJdfQ==
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZlckNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9JU2VydmVyQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgY29uZmlndXJhdGlvbiBuZWVkZWQgdG8gY29ubmVjdCB0byB0aGUgc2VydmVyLCBcclxuLy8gZXF1aXZhbGVudCB0byB0aGUgUklBIGV4ZWN1dGlvbiBwcm9wZXJ0aWVzXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNlcnZlckNvbmZpZyB7XHJcbiAgcHJvdG9jb2w6IHN0cmluZztcclxuICBzZXJ2ZXI6IHN0cmluZyxcclxuICByZXF1ZXN0ZXI6IHN0cmluZztcclxuICBhcHBuYW1lOiBzdHJpbmc7XHJcbiAgTG9nQ2xpZW50U2VxdWVuY2VGb3JBY3Rpdml0eU1vbml0b3I6IGJvb2xlYW47XHJcbiAgSW50ZXJuYWxMb2dMZXZlbDogc3RyaW5nO1xyXG4gIEludGVybmFsTG9nU3luYzogc3RyaW5nO1xyXG4gIERpc3BsYXlHZW5lcmljRXJyb3I6IGJvb2xlYW47XHJcbiAgRmlyc3RIVFRQUmVxdWVzdFRpbWVvdXQ6IG51bWJlcjtcclxufVxyXG4iXX0=
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWdCbG9ja2luZ1F1ZXVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy91dGlsL01nQmxvY2tpbmdRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZ0Jsb2NraW5nUXVldWUge1xyXG4gIG9mZmVyKG86IGFueSk6IGJvb2xlYW47XHJcblxyXG4gIHB1dChvOiBhbnkpOiB2b2lkO1xyXG5cclxuICB3YWl0Rm9yRWxlbWVudCgpOiB2b2lkO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,76 @@
1
+ import { MgPriorityQueue } from "./MgPriorityQueue";
2
+ import { RunTimeEventBase } from "../event/RunTimeEventBase";
3
+ import { Misc, Priority, SyncExecutionHelper } from "@magic-xpa/utils";
4
+ import { Debug, Int32 } from "@magic-xpa/mscorelib";
5
+ export class MgPriorityBlockingQueue {
6
+ constructor() {
7
+ this._queue = null;
8
+ this._timeFirstEvent = 0;
9
+ this._queue = new MgPriorityQueue();
10
+ }
11
+ isBackgroundEvent(o) {
12
+ let result = false;
13
+ if (o instanceof RunTimeEventBase) {
14
+ let runTimeEvent = o;
15
+ if (runTimeEvent.getPriority() === Priority.LOWEST)
16
+ result = true;
17
+ }
18
+ return result;
19
+ }
20
+ offer(o) {
21
+ try {
22
+ let condition = this._queue.offer(o);
23
+ if (this._timeFirstEvent === 0) {
24
+ if (!this.isBackgroundEvent(o)) {
25
+ this._timeFirstEvent = Misc.getSystemMilliseconds();
26
+ }
27
+ }
28
+ Debug.Assert(condition);
29
+ SyncExecutionHelper.Instance.Pulse();
30
+ return true;
31
+ }
32
+ finally { }
33
+ }
34
+ put(o) {
35
+ this.offer(o);
36
+ }
37
+ async waitForElement() {
38
+ if (this._queue.Size === 0) {
39
+ this._timeFirstEvent = 0;
40
+ await SyncExecutionHelper.Instance.Wait();
41
+ }
42
+ }
43
+ GetTime() {
44
+ return this._timeFirstEvent;
45
+ }
46
+ poll() {
47
+ let result;
48
+ try {
49
+ let obj = this._queue.poll();
50
+ if (this.isBackgroundEvent(obj)) {
51
+ this._timeFirstEvent = 0;
52
+ }
53
+ result = obj;
54
+ }
55
+ finally { }
56
+ return result;
57
+ }
58
+ peek() {
59
+ return this._queue.peek();
60
+ }
61
+ size() {
62
+ let size;
63
+ return this._queue.Size;
64
+ }
65
+ remainingCapacity() {
66
+ return Int32.MaxValue;
67
+ }
68
+ clear() {
69
+ this._queue.clear();
70
+ }
71
+ isEmpty() {
72
+ let result;
73
+ return this._queue.isEmpty();
74
+ }
75
+ }
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWdQcmlvcml0eUJsb2NraW5nUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3V0aWwvTWdQcmlvcml0eUJsb2NraW5nUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxNQUFNLE9BQU8sdUJBQXVCO0lBSWxDO1FBSFEsV0FBTSxHQUFvQixJQUFJLENBQUM7UUFDL0Isb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFHbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxDQUFNO1FBQzlCLElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxnQkFBZ0IsRUFBRTtZQUNqQyxJQUFJLFlBQVksR0FBdUMsQ0FBQyxDQUFDO1lBQ3pELElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNoRCxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxDQUFNO1FBQ1YsSUFBSTtZQUNGLElBQUksU0FBUyxHQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7aUJBQ3JEO2FBQ0Y7WUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQztTQUNiO2dCQUNPLEdBQUU7SUFDWixDQUFDO0lBRUQsR0FBRyxDQUFDLENBQU07UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFHRCxLQUFLLENBQUMsY0FBYztRQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztZQUN6QixNQUFNLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxNQUFXLENBQUM7UUFDaEIsSUFBSTtZQUNGLElBQUksR0FBRyxHQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUNkO2dCQUNPLEdBQUU7UUFFVixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksSUFBWSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLE1BQWUsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZ0Jsb2NraW5nUXVldWV9IGZyb20gXCIuL01nQmxvY2tpbmdRdWV1ZVwiO1xyXG5pbXBvcnQge01nUHJpb3JpdHlRdWV1ZX0gZnJvbSBcIi4vTWdQcmlvcml0eVF1ZXVlXCI7XHJcbmltcG9ydCB7UnVuVGltZUV2ZW50QmFzZX0gZnJvbSBcIi4uL2V2ZW50L1J1blRpbWVFdmVudEJhc2VcIjtcclxuaW1wb3J0IHtNaXNjLCBQcmlvcml0eSwgU3luY0V4ZWN1dGlvbkhlbHBlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtEZWJ1ZywgSW50MzJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1nUHJpb3JpdHlCbG9ja2luZ1F1ZXVlIGltcGxlbWVudHMgTWdCbG9ja2luZ1F1ZXVlIHtcclxuICBwcml2YXRlIF9xdWV1ZTogTWdQcmlvcml0eVF1ZXVlID0gbnVsbDtcclxuICBwcml2YXRlIF90aW1lRmlyc3RFdmVudDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9xdWV1ZSA9IG5ldyBNZ1ByaW9yaXR5UXVldWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCYWNrZ3JvdW5kRXZlbnQobzogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAobyBpbnN0YW5jZW9mIFJ1blRpbWVFdmVudEJhc2UpIHtcclxuICAgICAgbGV0IHJ1blRpbWVFdmVudDogUnVuVGltZUV2ZW50QmFzZSA9IDxSdW5UaW1lRXZlbnRCYXNlPm87XHJcbiAgICAgIGlmIChydW5UaW1lRXZlbnQuZ2V0UHJpb3JpdHkoKSA9PT0gUHJpb3JpdHkuTE9XRVNUKVxyXG4gICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIG9mZmVyKG86IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGNvbmRpdGlvbjogYm9vbGVhbiA9IHRoaXMuX3F1ZXVlLm9mZmVyKG8pO1xyXG4gICAgICBpZiAodGhpcy5fdGltZUZpcnN0RXZlbnQgPT09IDApIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNCYWNrZ3JvdW5kRXZlbnQobykpIHtcclxuICAgICAgICAgIHRoaXMuX3RpbWVGaXJzdEV2ZW50ID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgRGVidWcuQXNzZXJ0KGNvbmRpdGlvbik7XHJcbiAgICAgIFN5bmNFeGVjdXRpb25IZWxwZXIuSW5zdGFuY2UuUHVsc2UoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBmaW5hbGx5IHt9XHJcbiAgfVxyXG5cclxuICBwdXQobzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9mZmVyKG8pO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgbWV0aG9kIGFzIHdvcmtlciB0aHJlYWQgd29uJ3Qgd2FpdCBmb3IgZXZlbnRzIGdldHRpbmcgYWRkZWQgdG8gdGhlIHF1ZXVlLlxyXG4gIGFzeW5jIHdhaXRGb3JFbGVtZW50KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuX3F1ZXVlLlNpemUgPT09IDApIHtcclxuICAgICAgdGhpcy5fdGltZUZpcnN0RXZlbnQgPSAwO1xyXG4gICAgICBhd2FpdCBTeW5jRXhlY3V0aW9uSGVscGVyLkluc3RhbmNlLldhaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEdldFRpbWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl90aW1lRmlyc3RFdmVudDtcclxuICB9XHJcblxyXG4gIHBvbGwoKTogYW55IHtcclxuICAgIGxldCByZXN1bHQ6IGFueTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBvYmo6IGFueSA9IHRoaXMuX3F1ZXVlLnBvbGwoKTtcclxuICAgICAgaWYgKHRoaXMuaXNCYWNrZ3JvdW5kRXZlbnQob2JqKSkge1xyXG4gICAgICAgIHRoaXMuX3RpbWVGaXJzdEV2ZW50ID0gMDtcclxuICAgICAgfVxyXG4gICAgICByZXN1bHQgPSBvYmo7XHJcbiAgICB9XHJcbiAgICBmaW5hbGx5IHt9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHBlZWsoKTogYW55IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3F1ZXVlLnBlZWsoKTtcclxuICB9XHJcblxyXG4gIHNpemUoKTogbnVtYmVyIHtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICByZXR1cm4gdGhpcy5fcXVldWUuU2l6ZTtcclxuICB9XHJcblxyXG4gIHJlbWFpbmluZ0NhcGFjaXR5KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gSW50MzIuTWF4VmFsdWU7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX3F1ZXVlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbjtcclxuICAgIHJldHVybiB0aGlzLl9xdWV1ZS5pc0VtcHR5KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export var ParamParseResult;
2
+ (function (ParamParseResult) {
3
+ ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
4
+ ParamParseResult[ParamParseResult["TOUPPER"] = 1] = "TOUPPER";
5
+ ParamParseResult[ParamParseResult["DELETE"] = 2] = "DELETE";
6
+ ParamParseResult[ParamParseResult["FAILED"] = 3] = "FAILED";
7
+ })(ParamParseResult || (ParamParseResult = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyYW1QYXJzZVJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9QYXJhbVBhcnNlUmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsbURBQUUsQ0FBQTtJQUNGLDZEQUFPLENBQUE7SUFDUCwyREFBTSxDQUFBO0lBQ04sMkRBQU0sQ0FBQTtBQUNSLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUGFyYW1QYXJzZVJlc3VsdCB7XHJcbiAgT0ssICAgICAgICAgLy8gc2F2ZSB0aGUgdmFsdWUgYXMgaXNcclxuICBUT1VQUEVSLCAgICAvLyBjb252ZXJ0IHRoZSBuYW1lIHRvIHVwcGVyIGNhc2UsIHNvIGl0IHdvdWxkIGJlIGNhc2UgaW5zZW5zaXRpdmVcclxuICBERUxFVEUsICAgICAvLyByZW1vdmUgdGhlIHZhcmlhYmxlIGZyb20gdGhlIGRpY3Rpb25hcnlcclxuICBGQUlMRUQgICAgICAvLyBwYXJzaW5nIGVycm9yXHJcbn1cclxuIl19