@magic-xpa/engine 4.1200.0-dev4120.20 → 4.1200.0-dev4120.201

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 (213) hide show
  1. package/fesm2022/magic-xpa-engine.mjs +11347 -1307
  2. package/fesm2022/magic-xpa-engine.mjs.map +1 -1
  3. package/index.d.ts +4 -0
  4. package/package.json +5 -7
  5. package/src/ClientManager.d.ts +2 -0
  6. package/src/CommandsProcessorBase.d.ts +2 -1
  7. package/src/CommandsProcessorManager.d.ts +2 -1
  8. package/src/ConstInterface.d.ts +7 -0
  9. package/src/bridge/MagicBridge.d.ts +2 -0
  10. package/src/commands/ClientToServer/CachedFileQueryCommand.d.ts +9 -0
  11. package/src/commands/ClientToServer/CommandFactory.d.ts +4 -2
  12. package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +1 -0
  13. package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +1 -0
  14. package/src/event/EventHandler.d.ts +5 -0
  15. package/src/event/EventsManager.d.ts +4 -0
  16. package/src/exp/ExpressionEvaluator.d.ts +5 -0
  17. package/src/http/HttpManager.d.ts +2 -1
  18. package/src/http/client/HttpClientAsync.d.ts +2 -2
  19. package/src/http/client/HttpClientBase.d.ts +3 -3
  20. package/src/http/client/HttpClientSync.d.ts +2 -2
  21. package/src/remote/RemoteCommandsProcessor.d.ts +9 -2
  22. package/src/remote/RemoteControlItemsRefreshCommand.d.ts +1 -0
  23. package/src/rt/Operation.d.ts +3 -1
  24. package/src/util/ParamParseResult.d.ts +3 -3
  25. package/esm2022/index.mjs +0 -188
  26. package/esm2022/magic-xpa-engine.mjs +0 -2
  27. package/esm2022/src/AccessHelper.mjs +0 -15
  28. package/esm2022/src/ClientManager.mjs +0 -420
  29. package/esm2022/src/CommandsProcessorBase.mjs +0 -56
  30. package/esm2022/src/CommandsProcessorManager.mjs +0 -26
  31. package/esm2022/src/CommandsTable.mjs +0 -162
  32. package/esm2022/src/ConstInterface.mjs +0 -517
  33. package/esm2022/src/CurrentClientVersion.mjs +0 -2
  34. package/esm2022/src/FlowMonitorInterface.mjs +0 -16
  35. package/esm2022/src/GUIManager.mjs +0 -62
  36. package/esm2022/src/GlobalCommandsManager.mjs +0 -34
  37. package/esm2022/src/GuiEventsProcessor.mjs +0 -156
  38. package/esm2022/src/ICommandsTable.mjs +0 -2
  39. package/esm2022/src/ServerConfig.mjs +0 -122
  40. package/esm2022/src/bridge/IGuiEvent.mjs +0 -20
  41. package/esm2022/src/bridge/MagicBridge.mjs +0 -41
  42. package/esm2022/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -12
  43. package/esm2022/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +0 -9
  44. package/esm2022/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +0 -9
  45. package/esm2022/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +0 -9
  46. package/esm2022/src/commands/ClientToServer/BrowserEscEventCommand.mjs +0 -26
  47. package/esm2022/src/commands/ClientToServer/ClientOriginatedCommand.mjs +0 -15
  48. package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +0 -60
  49. package/esm2022/src/commands/ClientToServer/ColumnSortEventCommand.mjs +0 -29
  50. package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +0 -261
  51. package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -67
  52. package/esm2022/src/commands/ClientToServer/ComputeEventCommand.mjs +0 -26
  53. package/esm2022/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +0 -24
  54. package/esm2022/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +0 -23
  55. package/esm2022/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +0 -8
  56. package/esm2022/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
  57. package/esm2022/src/commands/ClientToServer/DataviewCommand.mjs +0 -44
  58. package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +0 -40
  59. package/esm2022/src/commands/ClientToServer/EventCommand.mjs +0 -43
  60. package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +0 -70
  61. package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -25
  62. package/esm2022/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +0 -11
  63. package/esm2022/src/commands/ClientToServer/ICommandTaskTag.mjs +0 -2
  64. package/esm2022/src/commands/ClientToServer/IndexChangeEventCommand.mjs +0 -24
  65. package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -26
  66. package/esm2022/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +0 -26
  67. package/esm2022/src/commands/ClientToServer/QueryCommand.mjs +0 -21
  68. package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +0 -30
  69. package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -30
  70. package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -27
  71. package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -43
  72. package/esm2022/src/commands/ClientToServer/SelectProgramCommand.mjs +0 -19
  73. package/esm2022/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +0 -9
  74. package/esm2022/src/commands/ClientToServer/SubformOpenEventCommand.mjs +0 -24
  75. package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -27
  76. package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +0 -34
  77. package/esm2022/src/commands/ClientToServer/UnloadCommand.mjs +0 -18
  78. package/esm2022/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
  79. package/esm2022/src/commands/DataViewCommandBase.mjs +0 -8
  80. package/esm2022/src/commands/IClientCommand.mjs +0 -2
  81. package/esm2022/src/commands/IClientTargetedCommand.mjs +0 -13
  82. package/esm2022/src/commands/IClientToServerCommandInfo.mjs +0 -2
  83. package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +0 -65
  84. package/esm2022/src/commands/ServerToClient/AddLocateCommand.mjs +0 -22
  85. package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +0 -62
  86. package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
  87. package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
  88. package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -24
  89. package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
  90. package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
  91. package/esm2022/src/commands/ServerToClient/ResetLocateCommand.mjs +0 -15
  92. package/esm2022/src/commands/ServerToClient/ResetRangeCommand.mjs +0 -15
  93. package/esm2022/src/commands/ServerToClient/ResetSortCommand.mjs +0 -15
  94. package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +0 -37
  95. package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
  96. package/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
  97. package/esm2022/src/communications/IConnectionStateManager.mjs +0 -2
  98. package/esm2022/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -15
  99. package/esm2022/src/data/DataSourceIdKey.mjs +0 -3
  100. package/esm2022/src/data/DataView.mjs +0 -1613
  101. package/esm2022/src/data/DataViewBase.mjs +0 -4
  102. package/esm2022/src/data/DataviewManager.mjs +0 -28
  103. package/esm2022/src/data/DataviewManagerBase.mjs +0 -15
  104. package/esm2022/src/data/DvCache.mjs +0 -67
  105. package/esm2022/src/data/Field.mjs +0 -646
  106. package/esm2022/src/data/FieldBase.mjs +0 -15
  107. package/esm2022/src/data/FieldsTable.mjs +0 -103
  108. package/esm2022/src/data/IRecordsTable.mjs +0 -2
  109. package/esm2022/src/data/Key.mjs +0 -88
  110. package/esm2022/src/data/Record.mjs +0 -880
  111. package/esm2022/src/data/RecordOutOfDataViewException.mjs +0 -16
  112. package/esm2022/src/data/RecordsTable.mjs +0 -267
  113. package/esm2022/src/data/TaskTransactionManager.mjs +0 -107
  114. package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
  115. package/esm2022/src/enums.mjs +0 -24
  116. package/esm2022/src/env/EnvVariablesTable.mjs +0 -340
  117. package/esm2022/src/env/Environment.mjs +0 -487
  118. package/esm2022/src/env/ILanguageData.mjs +0 -2
  119. package/esm2022/src/env/LanguageData.mjs +0 -227
  120. package/esm2022/src/env/MirrorString.mjs +0 -67
  121. package/esm2022/src/event/ActionManager.mjs +0 -91
  122. package/esm2022/src/event/Event.mjs +0 -1333
  123. package/esm2022/src/event/EventHandler.mjs +0 -766
  124. package/esm2022/src/event/EventHandlerPosition.mjs +0 -204
  125. package/esm2022/src/event/EventsManager.mjs +0 -2988
  126. package/esm2022/src/event/IEventsManager.mjs +0 -7
  127. package/esm2022/src/event/RunTimeEvent.mjs +0 -399
  128. package/esm2022/src/event/RunTimeEventBase.mjs +0 -4
  129. package/esm2022/src/event/UserEventsTable.mjs +0 -47
  130. package/esm2022/src/exp/ExpTable.mjs +0 -57
  131. package/esm2022/src/exp/Expression.mjs +0 -200
  132. package/esm2022/src/exp/ExpressionDict.mjs +0 -727
  133. package/esm2022/src/exp/ExpressionEvaluator.mjs +0 -4206
  134. package/esm2022/src/exp/ExpressionLocalJpn.mjs +0 -314
  135. package/esm2022/src/exp/GlobalParamsTable.mjs +0 -85
  136. package/esm2022/src/exp/YesNoExp.mjs +0 -36
  137. package/esm2022/src/gui/CreatedFormVector.mjs +0 -23
  138. package/esm2022/src/gui/FormsTable.mjs +0 -66
  139. package/esm2022/src/gui/MgControl.mjs +0 -363
  140. package/esm2022/src/gui/MgForm.mjs +0 -1224
  141. package/esm2022/src/http/HttpManager.mjs +0 -97
  142. package/esm2022/src/http/client/HttpClientAsync.mjs +0 -68
  143. package/esm2022/src/http/client/HttpClientBase.mjs +0 -132
  144. package/esm2022/src/http/client/HttpClientEvents.mjs +0 -39
  145. package/esm2022/src/http/client/HttpClientSync.mjs +0 -42
  146. package/esm2022/src/http/client/HttpUtility.mjs +0 -84
  147. package/esm2022/src/http/client/ICommunicationsFailureHandler.mjs +0 -2
  148. package/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +0 -18
  149. package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
  150. package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
  151. package/esm2022/src/remote/RemoteCommandsProcessor.mjs +0 -883
  152. package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
  153. package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +0 -24
  154. package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
  155. package/esm2022/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +0 -16
  156. package/esm2022/src/remote/RemoteDataviewManager.mjs +0 -17
  157. package/esm2022/src/remote/RemoteInitDataViewCommand.mjs +0 -11
  158. package/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
  159. package/esm2022/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +0 -13
  160. package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
  161. package/esm2022/src/remote/ServerError.mjs +0 -40
  162. package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
  163. package/esm2022/src/rt/Argument.mjs +0 -265
  164. package/esm2022/src/rt/ArgumentsList.mjs +0 -103
  165. package/esm2022/src/rt/Boundary.mjs +0 -152
  166. package/esm2022/src/rt/CompMainPrgTable.mjs +0 -63
  167. package/esm2022/src/rt/DataviewHeaderBase.mjs +0 -98
  168. package/esm2022/src/rt/DataviewHeaderFactory.mjs +0 -7
  169. package/esm2022/src/rt/DataviewHeaders.mjs +0 -53
  170. package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
  171. package/esm2022/src/rt/ExecutionStack.mjs +0 -94
  172. package/esm2022/src/rt/ExecutionStackEntry.mjs +0 -17
  173. package/esm2022/src/rt/HandlersTable.mjs +0 -96
  174. package/esm2022/src/rt/IDataSourceViewDefinition.mjs +0 -2
  175. package/esm2022/src/rt/IDataviewHeader.mjs +0 -2
  176. package/esm2022/src/rt/IResultValue.mjs +0 -2
  177. package/esm2022/src/rt/LastFocusedManager.mjs +0 -65
  178. package/esm2022/src/rt/Operation.mjs +0 -735
  179. package/esm2022/src/rt/OperationTable.mjs +0 -67
  180. package/esm2022/src/rt/Recompute.mjs +0 -355
  181. package/esm2022/src/rt/RecomputeTable.mjs +0 -63
  182. package/esm2022/src/rt/RemoteDataviewHeader.mjs +0 -108
  183. package/esm2022/src/rt/ResultValue.mjs +0 -10
  184. package/esm2022/src/rt/TableCache.mjs +0 -177
  185. package/esm2022/src/rt/TableCacheManager.mjs +0 -67
  186. package/esm2022/src/rt/Transaction.mjs +0 -53
  187. package/esm2022/src/security/UserDetails.mjs +0 -71
  188. package/esm2022/src/tasks/IMGDataCollection.mjs +0 -2
  189. package/esm2022/src/tasks/MGData.mjs +0 -552
  190. package/esm2022/src/tasks/MGDataCollection.mjs +0 -252
  191. package/esm2022/src/tasks/RCTimer.mjs +0 -63
  192. package/esm2022/src/tasks/RemoteTaskService.mjs +0 -45
  193. package/esm2022/src/tasks/Task.mjs +0 -2499
  194. package/esm2022/src/tasks/TaskBase.mjs +0 -83
  195. package/esm2022/src/tasks/TaskServiceBase.mjs +0 -25
  196. package/esm2022/src/tasks/TasksTable.mjs +0 -80
  197. package/esm2022/src/tasks/sort/Sort.mjs +0 -5
  198. package/esm2022/src/tasks/sort/SortCollection.mjs +0 -67
  199. package/esm2022/src/util/ConstUtils.mjs +0 -14
  200. package/esm2022/src/util/FlowMonitorQueue.mjs +0 -451
  201. package/esm2022/src/util/HeapSort.mjs +0 -70
  202. package/esm2022/src/util/IMirrorXML.mjs +0 -2
  203. package/esm2022/src/util/IServerConfig.mjs +0 -2
  204. package/esm2022/src/util/MgBlockingQueue.mjs +0 -2
  205. package/esm2022/src/util/MgPriorityBlockingQueue.mjs +0 -74
  206. package/esm2022/src/util/MgPriorityQueue.mjs +0 -66
  207. package/esm2022/src/util/ParamParseResult.mjs +0 -8
  208. package/esm2022/src/util/PrmMap.mjs +0 -153
  209. package/esm2022/src/util/ReturnResult.mjs +0 -46
  210. package/esm2022/src/util/ReturnResultBase.mjs +0 -18
  211. package/esm2022/src/util/Scrambler.mjs +0 -89
  212. package/esm2022/src/util/UniqueIDUtils.mjs +0 -13
  213. package/esm2022/src/util/cookie.service.mjs +0 -92
@@ -1,265 +0,0 @@
1
- import { ApplicationException, NNumber } from '@magic-xpa/mscorelib';
2
- import { Logger, StorageAttribute, StorageAttributeCheck } from '@magic-xpa/utils';
3
- import { BlobType, ExpVal, FieldDef } from '@magic-xpa/gui';
4
- import { ConstInterface } from '../ConstInterface';
5
- import { FieldBase } from '../data/FieldBase';
6
- export class Argument {
7
- _exp = null;
8
- _fld = null;
9
- _skip = false;
10
- _type = '\0';
11
- _val = null;
12
- _valueAttr = StorageAttribute.NONE;
13
- _valueIsNull = false;
14
- constructor(fieldOrExpValOrSrcArg) {
15
- if (arguments.length === 0) {
16
- this.constructor_0();
17
- return;
18
- }
19
- if (arguments.length === 1 && (fieldOrExpValOrSrcArg === null || fieldOrExpValOrSrcArg instanceof FieldBase)) {
20
- this.constructor_1(fieldOrExpValOrSrcArg);
21
- return;
22
- }
23
- if (arguments.length === 1 && (fieldOrExpValOrSrcArg === null || fieldOrExpValOrSrcArg instanceof ExpVal)) {
24
- this.constructor_2(fieldOrExpValOrSrcArg);
25
- return;
26
- }
27
- this.constructor_3(fieldOrExpValOrSrcArg);
28
- }
29
- constructor_0() {
30
- this._type = '\0';
31
- this._fld = null;
32
- this._exp = null;
33
- this._skip = false;
34
- }
35
- constructor_1(field) {
36
- this._fld = field;
37
- this._type = ConstInterface.ARG_TYPE_FIELD;
38
- this._exp = null;
39
- this._skip = false;
40
- }
41
- constructor_2(expVal) {
42
- this._type = ConstInterface.ARG_TYPE_VALUE;
43
- this._fld = null;
44
- this._exp = null;
45
- this._skip = false;
46
- if (expVal.IsNull)
47
- this._val = null;
48
- else
49
- this._val = expVal.ToMgVal();
50
- this._valueIsNull = (this._val === null);
51
- this._valueAttr = expVal.Attr;
52
- }
53
- constructor_3(srcArg) {
54
- this._type = ConstInterface.ARG_TYPE_VALUE;
55
- switch (srcArg._type) {
56
- case ConstInterface.ARG_TYPE_FIELD:
57
- this._valueAttr = srcArg._fld.getType();
58
- break;
59
- case ConstInterface.ARG_TYPE_EXP:
60
- break;
61
- case ConstInterface.ARG_TYPE_SKIP:
62
- this._skip = true;
63
- break;
64
- default:
65
- throw new ApplicationException("in Argument.Argument(): illegal source Argument type!");
66
- }
67
- }
68
- async Initialize(srcArg) {
69
- switch (srcArg._type) {
70
- case ConstInterface.ARG_TYPE_FIELD:
71
- this._val = srcArg._fld.getValue(true);
72
- this._valueIsNull = srcArg._fld.isNull();
73
- break;
74
- case ConstInterface.ARG_TYPE_EXP:
75
- let retVal = await srcArg._exp.evaluateWithResLength(255);
76
- this._val = retVal.mgVal;
77
- this._valueAttr = retVal.type;
78
- this._valueIsNull = (this._val == null);
79
- if (this._valueIsNull)
80
- this._val = Argument.getEmptyValue((retVal.type === StorageAttribute.BLOB ||
81
- retVal.type === StorageAttribute.BLOB_VECTOR));
82
- break;
83
- }
84
- }
85
- fillData(arg, srcTask) {
86
- this._type = arg[0];
87
- let argElements = arg.substr(2);
88
- switch (this._type) {
89
- case ConstInterface.ARG_TYPE_FIELD:
90
- {
91
- let fieldId = argElements.split(',');
92
- let parent = NNumber.Parse(fieldId[0]);
93
- let fldIdx = NNumber.Parse(fieldId[1]);
94
- this._fld = srcTask.getFieldDef(parent, fldIdx);
95
- }
96
- break;
97
- case ConstInterface.ARG_TYPE_EXP:
98
- let expNum = NNumber.Parse(argElements);
99
- this._exp = srcTask.getExpById(expNum);
100
- break;
101
- case ConstInterface.ARG_TYPE_SKIP:
102
- this._skip = true;
103
- break;
104
- default:
105
- Logger.Instance.WriteExceptionToLogWithMsg("in Argument.FillData() illegal type: " + arg);
106
- break;
107
- }
108
- }
109
- buildXML(message) {
110
- switch (this._type) {
111
- case ConstInterface.ARG_TYPE_FIELD:
112
- message.Append("F:" + this._fld.getTask().getTaskTag() + "," + this._fld.getId());
113
- break;
114
- case ConstInterface.ARG_TYPE_EXP:
115
- message.Append("E:" + this._exp.getId());
116
- break;
117
- case ConstInterface.ARG_TYPE_SKIP:
118
- message.Append("X:0");
119
- break;
120
- default:
121
- Logger.Instance.WriteExceptionToLogWithMsg("in Argument.buildXML() illegal type: " + this._type);
122
- break;
123
- }
124
- }
125
- getType() {
126
- return this._type;
127
- }
128
- getField() {
129
- if (this._type === ConstInterface.ARG_TYPE_FIELD)
130
- return this._fld;
131
- return null;
132
- }
133
- getExp() {
134
- if (this._type === ConstInterface.ARG_TYPE_EXP)
135
- return this._exp;
136
- return null;
137
- }
138
- async setValueToField(destFld) {
139
- let val;
140
- let isNull;
141
- switch (this._type) {
142
- case ConstInterface.ARG_TYPE_FIELD:
143
- val = this._fld.getValue(true);
144
- val = Argument.convertArgs(val, this._fld.getType(), destFld.getType());
145
- isNull = this._fld.isNull() || val == null;
146
- break;
147
- case ConstInterface.ARG_TYPE_EXP:
148
- val = await this._exp.evaluateWithResultTypeAndLength(destFld.getType(), destFld.getSize());
149
- isNull = (val == null);
150
- if (isNull)
151
- val = Argument.getEmptyValue((destFld.getType() === StorageAttribute.BLOB ||
152
- destFld.getType() === StorageAttribute.BLOB_VECTOR));
153
- break;
154
- case ConstInterface.ARG_TYPE_VALUE:
155
- val = Argument.convertArgs(this._val, this._valueAttr, destFld.getType());
156
- isNull = this._valueIsNull || val == null;
157
- break;
158
- default:
159
- return;
160
- }
161
- destFld.takeValFromRec();
162
- await destFld.setValueAndStartRecompute(val, isNull, destFld.getTask().DataViewWasRetrieved, false, true);
163
- }
164
- static convertArgs(value, srcAttr, expectedType) {
165
- let invalidArg = false;
166
- switch (expectedType) {
167
- case StorageAttribute.ALPHA:
168
- case StorageAttribute.UNICODE:
169
- if (srcAttr === StorageAttribute.BLOB) {
170
- if (BlobType.isValidBlob(value))
171
- value = BlobType.getString(value);
172
- }
173
- else if (!StorageAttributeCheck.IsTypeAlphaOrUnicode(srcAttr))
174
- invalidArg = true;
175
- break;
176
- case StorageAttribute.NUMERIC:
177
- case StorageAttribute.DATE:
178
- case StorageAttribute.TIME:
179
- if (!StorageAttributeCheck.isTypeNumeric(srcAttr))
180
- invalidArg = true;
181
- break;
182
- case StorageAttribute.BLOB:
183
- if (StorageAttributeCheck.IsTypeAlphaOrUnicode(srcAttr)) {
184
- let contentType = srcAttr === StorageAttribute.ALPHA
185
- ? BlobType.CONTENT_TYPE_ANSI
186
- : BlobType.CONTENT_TYPE_UNICODE;
187
- value = BlobType.createFromString(value, contentType);
188
- }
189
- else if (!StorageAttributeCheck.isTypeBlob(srcAttr))
190
- invalidArg = true;
191
- break;
192
- }
193
- if (invalidArg)
194
- value = FieldDef.getMagicDefaultValue(expectedType);
195
- return value;
196
- }
197
- async getValue(expType, expSize) {
198
- switch (this._type) {
199
- case ConstInterface.ARG_TYPE_EXP:
200
- this._val = await this._exp.evaluateWithResultTypeAndLength(expType, expSize);
201
- if (this._val == null)
202
- this._val = Argument.getEmptyValue(expType === StorageAttribute.BLOB
203
- || expType === StorageAttribute.BLOB_VECTOR);
204
- break;
205
- case ConstInterface.ARG_TYPE_FIELD:
206
- this._val = this._fld.getValue(true);
207
- break;
208
- case ConstInterface.ARG_TYPE_VALUE:
209
- break;
210
- default:
211
- return null;
212
- }
213
- return this._val;
214
- }
215
- skipArg() {
216
- return this._skip;
217
- }
218
- fillDataByParams(paramValueAttr, paramValue, paramNull) {
219
- this._valueAttr = paramValueAttr;
220
- this._val = paramValue;
221
- this._valueIsNull = paramNull;
222
- if (this._valueAttr === StorageAttribute.SKIP) {
223
- this._type = ConstInterface.ARG_TYPE_SKIP;
224
- this._skip = true;
225
- }
226
- else {
227
- this._type = ConstInterface.ARG_TYPE_VALUE;
228
- }
229
- }
230
- static getEmptyValue(isBlob) {
231
- return isBlob ? (BlobType.getEmptyBlobPrefix('\0') + ";") : "";
232
- }
233
- FillFromString(argStr) {
234
- this._type = ConstInterface.ARG_TYPE_VALUE;
235
- let argType = null;
236
- if (argStr.length > 2)
237
- argType = argStr.substr(0, 2);
238
- switch (argType) {
239
- case ConstInterface.REQ_ARG_ALPHA:
240
- this._valueAttr = StorageAttribute.ALPHA;
241
- break;
242
- case ConstInterface.REQ_ARG_UNICODE:
243
- this._valueAttr = StorageAttribute.UNICODE;
244
- break;
245
- case ConstInterface.REQ_ARG_NUMERIC:
246
- this._valueAttr = StorageAttribute.NUMERIC;
247
- break;
248
- case ConstInterface.REQ_ARG_DOUBLE:
249
- this._valueAttr = StorageAttribute.NUMERIC;
250
- break;
251
- case ConstInterface.REQ_ARG_LOGICAL:
252
- this._valueAttr = StorageAttribute.BOOLEAN;
253
- break;
254
- case ConstInterface.REQ_ARG_NULL:
255
- this._valueAttr = StorageAttribute.NONE;
256
- break;
257
- default:
258
- this._valueAttr = StorageAttribute.ALPHA;
259
- this._val = argStr;
260
- return;
261
- }
262
- this._val = argStr.substr(2);
263
- }
264
- }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0FyZ3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHOUMsTUFBTSxPQUFPLFFBQVE7SUFDWCxJQUFJLEdBQWUsSUFBSSxDQUFDO0lBQ3hCLElBQUksR0FBYyxJQUFJLENBQUM7SUFDdkIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUN2QixLQUFLLEdBQVcsSUFBSSxDQUFDO0lBQ3JCLElBQUksR0FBVyxJQUFJLENBQUM7SUFDcEIsVUFBVSxHQUFxQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDckQsWUFBWSxHQUFZLEtBQUssQ0FBQztJQU10QyxZQUFZLHFCQUEyQjtRQUNyQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssSUFBSSxJQUFJLHFCQUFxQixZQUFZLFNBQVMsQ0FBQyxFQUFFO1lBQzVHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUMxQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLFNBQVMs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LENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztnQkFDekMsTUFBTTtZQUNSLEtBQUssY0FBYyxDQUFDLGVBQWU7Z0JBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1IsS0FBSyxjQUFjLENBQUMsZUFBZTtnQkFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzNDLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQyxjQUFjO2dCQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDM0MsTUFBTTtZQUNSLEtBQUssY0FBYyxDQUFDLGVBQWU7Z0JBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1IsS0FBSyxjQUFjLENBQUMsWUFBWTtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE1BQU07WUFDUjtnQkFFRSxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztnQkFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQ25CLE9BQU87U0FDVjtRQUdELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgTk51bWJlciwgU3RyaW5nQnVpbGRlciB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBTdG9yYWdlQXR0cmlidXRlLCBTdG9yYWdlQXR0cmlidXRlQ2hlY2t9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBCbG9iVHlwZSwgRXhwVmFsLCBGaWVsZERlZiB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uL2V4cC9FeHByZXNzaW9uJztcclxuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQgeyBDb25zdEludGVyZmFjZSB9IGZyb20gJy4uL0NvbnN0SW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSAnLi4vZGF0YS9GaWVsZEJhc2UnO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBcmd1bWVudCB7XHJcbiAgcHJpdmF0ZSBfZXhwOiBFeHByZXNzaW9uID0gbnVsbDtcclxuICBwcml2YXRlIF9mbGQ6IEZpZWxkQmFzZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfc2tpcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3R5cGU6IHN0cmluZyA9ICdcXDAnOyAvLyBGaWVsZEJhc2V8RXhwcmVzc2lvbnxWYWx1ZVxyXG4gIHByaXZhdGUgX3ZhbDogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF92YWx1ZUF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7IC8vIHRydWUgaXMgYXJndW1lbnQgaXMgb2YgdHlwZSBBUkdfVFlQRV9WQUxVRSBhbmRcclxuICBwcml2YXRlIF92YWx1ZUlzTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKGZpZWxkOiBGaWVsZEJhc2UpO1xyXG4gIGNvbnN0cnVjdG9yKGV4cFZhbDogRXhwVmFsKTtcclxuICBjb25zdHJ1Y3RvcihzcmNBcmc6IEFyZ3VtZW50KTtcclxuICBjb25zdHJ1Y3RvcihmaWVsZE9yRXhwVmFsT3JTcmNBcmc/OiBhbnkpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAoZmllbGRPckV4cFZhbE9yU3JjQXJnID09PSBudWxsIHx8IGZpZWxkT3JFeHBWYWxPclNyY0FyZyBpbnN0YW5jZW9mIEZpZWxkQmFzZSkpIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8xKGZpZWxkT3JFeHBWYWxPclNyY0FyZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIChmaWVsZE9yRXhwVmFsT3JTcmNBcmcgPT09IG51bGwgfHwgZmllbGRPckV4cFZhbE9yU3JjQXJnIGluc3RhbmNlb2YgRXhwVmFsKSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzIoZmllbGRPckV4cFZhbE9yU3JjQXJnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8zKGZpZWxkT3JFeHBWYWxPclNyY0FyZyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8wKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9ICdcXDAnLyonXHUwMDAwJyovO1xyXG4gICAgdGhpcy5fZmxkID0gbnVsbDtcclxuICAgIHRoaXMuX2V4cCA9IG51bGw7XHJcbiAgICB0aGlzLl9za2lwID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENUT1IgLSBjcmVhdGUgYW4gYXJndW1lbnQgZnJvbSBhIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEoZmllbGQ6IEZpZWxkQmFzZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fZmxkID0gZmllbGQ7XHJcbiAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQgLyonRicqLztcclxuICAgIHRoaXMuX2V4cCA9IG51bGw7XHJcbiAgICB0aGlzLl9za2lwID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUiB0aGF0IGNyZWF0ZXMgYSBcIlZhbHVlXCIgdHlwZSBhcmd1bWVudCBmcm9tIGEgZ2l2ZW4gRXhwcmVzc2lvbiBWYWx1ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBWYWxcIj50aGUgc291cmNlIGV4cHJlc3Npb24gdmFsdWU8L3BhcmFtPlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMihleHBWYWw6IEV4cFZhbCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFO1xyXG4gICAgdGhpcy5fZmxkID0gbnVsbDtcclxuICAgIHRoaXMuX2V4cCA9IG51bGw7XHJcbiAgICB0aGlzLl9za2lwID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKGV4cFZhbC5Jc051bGwpXHJcbiAgICAgIHRoaXMuX3ZhbCA9IG51bGw7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3ZhbCA9IGV4cFZhbC5Ub01nVmFsKCk7XHJcblxyXG4gICAgdGhpcy5fdmFsdWVJc051bGwgPSAodGhpcy5fdmFsID09PSBudWxsKTtcclxuICAgIHRoaXMuX3ZhbHVlQXR0ciA9IGV4cFZhbC5BdHRyO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1IgdGhhdCBjcmVhdGVzIGEgXCJWYWx1ZVwiIHR5cGUgYXJndW1lbnQgZnJvbSBhIGdpdmVuIEZpZWxkQmFzZSBvciBFeHByZXNzaW9uIHR5cGVcclxuICAvLy8gICBhcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzcmNBcmdcIj50aGUgc291cmNlIGFyZ3VtZW50PC9wYXJhbT5cclxuICBjb25zdHJ1Y3Rvcl8zKHNyY0FyZzogQXJndW1lbnQpIHtcclxuICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTtcclxuXHJcbiAgICBzd2l0Y2ggKHNyY0FyZy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IHNyY0FyZy5fZmxkLmdldFR5cGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfU0tJUDpcclxuICAgICAgICB0aGlzLl9za2lwID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCJpbiBBcmd1bWVudC5Bcmd1bWVudCgpOiBpbGxlZ2FsIHNvdXJjZSBBcmd1bWVudCB0eXBlIVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBJbml0aWFsaXplKHNyY0FyZzogQXJndW1lbnQpOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgc3dpdGNoIChzcmNBcmcuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB0aGlzLl92YWwgPSBzcmNBcmcuX2ZsZC5nZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB0aGlzLl92YWx1ZUlzTnVsbCA9IHNyY0FyZy5fZmxkLmlzTnVsbCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgbGV0IHJldFZhbCA9IGF3YWl0IHNyY0FyZy5fZXhwLmV2YWx1YXRlV2l0aFJlc0xlbmd0aCgyNTUpO1xyXG4gICAgICAgIHRoaXMuX3ZhbCA9IHJldFZhbC5tZ1ZhbDtcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSByZXRWYWwudHlwZTtcclxuICAgICAgICB0aGlzLl92YWx1ZUlzTnVsbCA9ICh0aGlzLl92YWwgPT0gbnVsbCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlSXNOdWxsKVxyXG4gICAgICAgICAgdGhpcy5fdmFsID0gQXJndW1lbnQuZ2V0RW1wdHlWYWx1ZSgocmV0VmFsLnR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiB8fFxyXG4gICAgICAgICAgICByZXRWYWwudHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUikpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFBhcnNpbmcgQXJndW1lbnQgc3RyaW5nIGFuZCBmaWxsIGlubmVyIG9iamVjdHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYXJnXCI+c3RyaW5nIHRvIHBhcnNlIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzcmNUYXNrXCI+b2YgdGhlIGFyZ3VtZW50IHRvIGZpbmQgZXhwcmVzc2lvbiBhcmd1bWVudCA8L3BhcmFtPlxyXG4gIHB1YmxpYyBmaWxsRGF0YShhcmc6IFN0cmluZywgc3JjVGFzazogVGFzayk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9IGFyZ1swXTtcclxuICAgIGxldCBhcmdFbGVtZW50czogc3RyaW5nID0gYXJnLnN1YnN0cigyKTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDoge1xyXG4gICAgICAgIGxldCBmaWVsZElkOiBzdHJpbmdbXSA9IGFyZ0VsZW1lbnRzLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgbGV0IHBhcmVudDogbnVtYmVyID0gIE5OdW1iZXIuUGFyc2UoZmllbGRJZFswXSk7XHJcbiAgICAgICAgbGV0IGZsZElkeDogbnVtYmVyID0gIE5OdW1iZXIuUGFyc2UoZmllbGRJZFsxXSk7XHJcbiAgICAgICAgdGhpcy5fZmxkID0gPEZpZWxkQmFzZT5zcmNUYXNrLmdldEZpZWxkRGVmKHBhcmVudCwgZmxkSWR4KTtcclxuICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgbGV0IGV4cE51bTogbnVtYmVyID0gTk51bWJlci5QYXJzZShhcmdFbGVtZW50cyk7XHJcbiAgICAgICAgdGhpcy5fZXhwID0gc3JjVGFzay5nZXRFeHBCeUlkKGV4cE51bSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVA6XHJcbiAgICAgICAgdGhpcy5fc2tpcCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gQXJndW1lbnQuRmlsbERhdGEoKSBpbGxlZ2FsIHR5cGU6IFwiICsgYXJnKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBidWlsZCB0aGUgWE1MIHN0cmluZyBmb3IgdGhlIGFyZ3VtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1lc3NhZ2VcIj50aGUgWE1MIHN0cmluZyB0byBhcHBlbmQgdGhlIGFyZ3VtZW50IHRvPC9wYXJhbT5cclxuICBwdWJsaWMgYnVpbGRYTUwobWVzc2FnZTogU3RyaW5nQnVpbGRlcik6IHZvaWQge1xyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6XHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCJGOlwiICsgdGhpcy5fZmxkLmdldFRhc2soKS5nZXRUYXNrVGFnKCkgKyBcIixcIiArIHRoaXMuX2ZsZC5nZXRJZCgpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiRTpcIiArIHRoaXMuX2V4cC5nZXRJZCgpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfU0tJUDpcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChcIlg6MFwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gQXJndW1lbnQuYnVpbGRYTUwoKSBpbGxlZ2FsIHR5cGU6IFwiICsgdGhpcy5fdHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZvciBmaWVsZCB0eXBlIGFyZ3VtZW50cyByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0RmllbGQoKTogRmllbGRCYXNlIHtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRClcclxuICAgICAgcmV0dXJuIHRoaXMuX2ZsZDtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZvciBleHByZXNzaW9uIHR5cGUgYXJndW1lbnRzIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGV4cHJlc3Npb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByb3RlY3RlZCBnZXRFeHAoKTogRXhwcmVzc2lvbiB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQKVxyXG4gICAgICByZXR1cm4gdGhpcy5fZXhwO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IHRoZSB2YWx1ZSBvZiB0aGlzIGFyZ3VtZW50IHRvIGEgZ2l2ZW4gZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZGVzdEZsZFwiPnRoZSBkZXN0aW5hdGlvbiBmaWVsZFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIHB1YmxpYyBhc3luYyBzZXRWYWx1ZVRvRmllbGQoZGVzdEZsZDogRmllbGRCYXNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmc7XHJcbiAgICBsZXQgaXNOdWxsOiBib29sZWFuO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIHZhbCA9IHRoaXMuX2ZsZC5nZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB2YWwgPSBBcmd1bWVudC5jb252ZXJ0QXJncyh2YWwsIHRoaXMuX2ZsZC5nZXRUeXBlKCksIGRlc3RGbGQuZ2V0VHlwZSgpKTtcclxuICAgICAgICBpc051bGwgPSB0aGlzLl9mbGQuaXNOdWxsKCkgfHwgdmFsID09IG51bGw7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICB2YWwgPSBhd2FpdCB0aGlzLl9leHAuZXZhbHVhdGVXaXRoUmVzdWx0VHlwZUFuZExlbmd0aChkZXN0RmxkLmdldFR5cGUoKSwgZGVzdEZsZC5nZXRTaXplKCkpO1xyXG4gICAgICAgIGlzTnVsbCA9ICh2YWwgPT0gbnVsbCk7XHJcbiAgICAgICAgaWYgKGlzTnVsbClcclxuICAgICAgICAgIHZhbCA9IEFyZ3VtZW50LmdldEVtcHR5VmFsdWUoKGRlc3RGbGQuZ2V0VHlwZSgpID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IgfHxcclxuICAgICAgICAgICAgZGVzdEZsZC5nZXRUeXBlKCkgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTpcclxuICAgICAgICB2YWwgPSBBcmd1bWVudC5jb252ZXJ0QXJncyh0aGlzLl92YWwsIHRoaXMuX3ZhbHVlQXR0ciwgZGVzdEZsZC5nZXRUeXBlKCkpO1xyXG4gICAgICAgIGlzTnVsbCA9IHRoaXMuX3ZhbHVlSXNOdWxsIHx8IHZhbCA9PSBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIFVwZGF0ZSBkZXN0aW5hdGlvbiBmaWVsZCdzIF9pc05VTEwgd2l0aCB0aGUgdmFsdWUgZnJvbSByZWNvcmQuIFRoaXMgaXMgbmVlZGVkIHRvIGlkZW50aWZ5XHJcbiAgICAvLyBpZiB0aGUgdmFyaWFibGUgaXMgbW9kaWZpZWQuXHJcbiAgICBkZXN0RmxkLnRha2VWYWxGcm9tUmVjKCk7XHJcbiAgICBhd2FpdCBkZXN0RmxkLnNldFZhbHVlQW5kU3RhcnRSZWNvbXB1dGUodmFsLCBpc051bGwsICg8VGFzaz5kZXN0RmxkLmdldFRhc2soKSkuRGF0YVZpZXdXYXNSZXRyaWV2ZWQsIGZhbHNlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY29udmVydHMgQWxwaGEvVW5pY29kZSB2YWx1ZXMgdG8gQmxvYiBhbmQgdmljZSB2ZXJzYS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInZhbHVlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzcmNBdHRyXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJleHBlY3RlZFR5cGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0QXJncyh2YWx1ZTogc3RyaW5nLCBzcmNBdHRyOiBTdG9yYWdlQXR0cmlidXRlLCBleHBlY3RlZFR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IGludmFsaWRBcmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBzd2l0Y2ggKGV4cGVjdGVkVHlwZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFOlxyXG4gICAgICAgIGlmIChzcmNBdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IpIHtcclxuICAgICAgICAgIGlmIChCbG9iVHlwZS5pc1ZhbGlkQmxvYih2YWx1ZSkpXHJcbiAgICAgICAgICAgIHZhbHVlID0gQmxvYlR5cGUuZ2V0U3RyaW5nKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIVN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZShzcmNBdHRyKSlcclxuICAgICAgICAgIGludmFsaWRBcmcgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5EQVRFOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVElNRTpcclxuICAgICAgICBpZiAoIVN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5pc1R5cGVOdW1lcmljKHNyY0F0dHIpKVxyXG4gICAgICAgICAgaW52YWxpZEFyZyA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQjpcclxuICAgICAgICBpZiAoU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLklzVHlwZUFscGhhT3JVbmljb2RlKHNyY0F0dHIpKSB7XHJcbiAgICAgICAgICBsZXQgY29udGVudFR5cGU6IHN0cmluZyA9IHNyY0F0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEFcclxuICAgICAgICAgICAgPyBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSVxyXG4gICAgICAgICAgICA6IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFO1xyXG4gICAgICAgICAgdmFsdWUgPSBCbG9iVHlwZS5jcmVhdGVGcm9tU3RyaW5nKHZhbHVlLCBjb250ZW50VHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlQmxvYihzcmNBdHRyKSlcclxuICAgICAgICAgIGludmFsaWRBcmcgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZXJlIGlzIG1pc21hdGNoIGluIGF0dHJpYnV0ZSwgdGFrZSBkZWZhdWx0IHZhbHVlIG9mIGV4cGVjdGQgYXJndW1lbnQuXHJcbiAgICBpZiAoaW52YWxpZEFyZylcclxuICAgICAgdmFsdWUgPSBGaWVsZERlZi5nZXRNYWdpY0RlZmF1bHRWYWx1ZShleHBlY3RlZFR5cGUpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB2YWx1ZSBvZiBBcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBUeXBlXCI+dHlwZSBvZiBleHBlY3RlZCB0eXBlIG9mIGV2YWx1YXRpb248L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwU2l6ZVwiPnNpemUgb2YgZXhwZWN0ZWQgc3RyaW5nIGZyb20gZXZhbHVhdGlvbjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB2YWx1ZSBvZiB0aGUgQXJndW1lbnQ8L3JldHVybnM+XHJcbiAgcHVibGljIGFzeW5jIGdldFZhbHVlKGV4cFR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIGV4cFNpemU6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgdGhpcy5fdmFsID0gYXdhaXQgdGhpcy5fZXhwLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgoZXhwVHlwZSwgZXhwU2l6ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3ZhbCA9PSBudWxsKVxyXG4gICAgICAgICAgdGhpcy5fdmFsID0gQXJndW1lbnQuZ2V0RW1wdHlWYWx1ZShleHBUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JcclxuICAgICAgICAgICAgfHwgZXhwVHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IHRoaXMuX2ZsZC5nZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU6XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8cmV0dXJucz4gdmFsdWUgb2YgdGhlIHNraXAgZmxhZyA8L3JldHVybnM+XHJcbiAgc2tpcEFyZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9za2lwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZpbGwgYW4gYXJndW1lbnQgZGF0YSBmcm9tIGEgcGFyYW1ldGVyIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyYW1WYWx1ZUF0dHJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyYW1WYWx1ZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwYXJhbU51bGxcIj48L3BhcmFtPlxyXG4gIGZpbGxEYXRhQnlQYXJhbXMocGFyYW1WYWx1ZUF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUsIHBhcmFtVmFsdWU6IHN0cmluZywgcGFyYW1OdWxsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl92YWx1ZUF0dHIgPSBwYXJhbVZhbHVlQXR0cjtcclxuICAgIHRoaXMuX3ZhbCA9IHBhcmFtVmFsdWU7XHJcbiAgICB0aGlzLl92YWx1ZUlzTnVsbCA9IHBhcmFtTnVsbDtcclxuXHJcbiAgICAvLyBUaGUgc2VydmVyIGluZGljYXRlcyBza2lwIG9uIGEgcGFyYW1ldGVyIGJ5IHNlbmRpbmcgREFUQV9UWVBFX1NLSVAgaW5zdGVhZCBvZiB0aGUgcmVhbCBhdHRyaWJ1dGUuXHJcbiAgICBpZiAodGhpcy5fdmFsdWVBdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLlNLSVApIHtcclxuICAgICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVAgLyonWCcqLztcclxuICAgICAgdGhpcy5fc2tpcCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFIC8qViovO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZXR1cm5zIGVtcHR5IHZhbHVlPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImlzQmxvYlwiPi0gdHJ1ZSBpcyB2YWx1ZSBpcyBmb3IgYmxvYjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RW1wdHlWYWx1ZShpc0Jsb2I6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGlzQmxvYiA/IChCbG9iVHlwZS5nZXRFbXB0eUJsb2JQcmVmaXgoJ1xcMCcpIC8qJ1x1MDAwMCcqLyArIFwiO1wiKSA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGZpbGwgdGhlIGFyZ3VtZW50IGZyb20gYSBzdHJpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImFyZ1N0clwiPjwvcGFyYW0+XHJcbiAgcHVibGljIEZpbGxGcm9tU3RyaW5nKGFyZ1N0cjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvLyB0eXBlIGlzIGFsd2F5cyBhIHZhbHVlXHJcbiAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU7XHJcblxyXG4gICAgbGV0IGFyZ1R5cGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICAvLyBJZiBzdHJpbmcgaXMgc2hvcnRlciB0aGFuIDMsIGFzc3VtZSBpdCBkb2VzIG5vdCBoYXZlIGFuIGF0dHJpYnV0ZSBpZGVudGlmaWVyXHJcbiAgICBpZiAoYXJnU3RyLmxlbmd0aCA+IDIpXHJcbiAgICAgIGFyZ1R5cGUgPSBhcmdTdHIuc3Vic3RyKDAsIDIpO1xyXG5cclxuICAgIHN3aXRjaCAoYXJnVHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfQUxQSEE6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX1VOSUNPREU6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfTlVNRVJJQzpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19ET1VCTEU6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfTE9HSUNBTDpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19OVUxMOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvLyBpZiBzdG9yYWdlIHR5cGUgaXMgbm90IGRlZmluZWQsIGFzc3VtZSBhbHBoYSBzdHJpbmcgYW5kIHRoZSBlbnRpcmUgc3RyaW5nIGlzIHRoZSB2YWx1ZVxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE7XHJcbiAgICAgICAgdGhpcy5fdmFsID0gYXJnU3RyO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIHRoZSBjYXNlIHRoZSBzdHJpbmcgaXMgdG9vIHNob3J0IHdhcyBkZWFsdCB3aXRoIGVhcmxpZXIgLSBpdCB3aWxsIGdldCB0byB0aGUgZGVmYXVsdCBjYXNlIGluIHRoZSBzd2l0Y2hcclxuICAgIC8vIGFuZCByZXR1cm4gZnJvbSB0aGVyZVxyXG4gICAgdGhpcy5fdmFsID0gYXJnU3RyLnN1YnN0cigyKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
@@ -1,103 +0,0 @@
1
- import { List } from '@magic-xpa/mscorelib';
2
- import { Argument } from './Argument';
3
- import { StrUtil } from '@magic-xpa/utils';
4
- export class ArgumentsList {
5
- _list = null;
6
- RefreshOnString = null;
7
- constructor(srcArgsOrExp_paramsOrArgument) {
8
- if (arguments.length === 0) {
9
- this.constructor_0();
10
- return;
11
- }
12
- if (arguments.length === 1 && (srcArgsOrExp_paramsOrArgument === null || srcArgsOrExp_paramsOrArgument instanceof Array)) {
13
- this.constructor_2(srcArgsOrExp_paramsOrArgument);
14
- return;
15
- }
16
- this.constructor_3(srcArgsOrExp_paramsOrArgument);
17
- }
18
- constructor_0() {
19
- }
20
- async Initialize(srcArgs) {
21
- this.constructor_0();
22
- if (srcArgs === null)
23
- this._list = null;
24
- else {
25
- this._list = new List();
26
- for (let i = 0; i < srcArgs.getSize(); i = i + 1) {
27
- let arg = new Argument(srcArgs.getArg(i));
28
- await arg.Initialize(srcArgs.getArg(i));
29
- this._list.push(arg);
30
- }
31
- }
32
- }
33
- constructor_2(Exp_params) {
34
- this.constructor_0();
35
- let argCnt = Exp_params.length;
36
- if (argCnt === 0)
37
- this._list = null;
38
- else {
39
- this._list = new List();
40
- for (let i = 0; i < argCnt; i = i + 1) {
41
- this._list.push(new Argument(Exp_params[i]));
42
- }
43
- }
44
- }
45
- constructor_3(argument) {
46
- this.Add(argument);
47
- }
48
- fillList(valueStr, srcTask) {
49
- let tok = StrUtil.tokenize(valueStr, "$");
50
- let size = tok.length;
51
- this._list = new List();
52
- for (let i = 0; i < size; i = i + 1) {
53
- let argument = new Argument();
54
- argument.fillData(tok[i], srcTask);
55
- this._list.push(argument);
56
- }
57
- }
58
- buildListFromParams(size, attrs, vals, nulls) {
59
- this._list = new List();
60
- for (let i = 0; i < size; i = i + 1) {
61
- let argument = new Argument();
62
- argument.fillDataByParams(attrs.charAt(i), vals[i], nulls.charAt(i) !== '0');
63
- this._list.push(argument);
64
- }
65
- }
66
- buildXML(message) {
67
- for (let i = 0; i < this._list.length; i = i + 1) {
68
- if (i > 0)
69
- message.Append('$');
70
- this._list.get_Item(i).buildXML(message);
71
- }
72
- }
73
- getSize() {
74
- return (this._list === null) ? 0 : this._list.length;
75
- }
76
- getArg(idx) {
77
- if (idx < 0 || idx >= this._list.length)
78
- return null;
79
- return this._list.get_Item(idx);
80
- }
81
- async getArgValue(idx, expType, expSize) {
82
- let arg = this.getArg(idx);
83
- if (arg === null)
84
- return null;
85
- return await arg.getValue(expType, expSize);
86
- }
87
- FillListFromString(argsString) {
88
- let pattern = new RegExp("(?<!\\\\),");
89
- let array = argsString.split(pattern);
90
- this._list = new List();
91
- for (let i = 0; i < array.length; i = i + 1) {
92
- let argument = new Argument();
93
- argument.FillFromString(array[i]);
94
- this._list.push(argument);
95
- }
96
- }
97
- Add(argument) {
98
- if (this._list === null)
99
- this._list = new List();
100
- this._list.push(argument);
101
- }
102
- }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnRzTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvQXJndW1lbnRzTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHdEMsT0FBTyxFQUFvQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RCxNQUFNLE9BQU8sYUFBYTtJQUNoQixLQUFLLEdBQW1CLElBQUksQ0FBQztJQUlyQyxlQUFlLEdBQVcsSUFBSSxDQUFDO0lBSy9CLFlBQVksNkJBQW1DO1FBQzdDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLE9BQU87U0FDUjtRQUNELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsS0FBSyxJQUFJLElBQUksNkJBQTZCLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDeEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2xELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBS08sYUFBYTtJQUNyQixDQUFDO0lBS00sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFzQjtRQUM1QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLEtBQUssSUFBSTtZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNmO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksRUFBWSxDQUFDO1lBRWxDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMs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R0FBRyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN4QyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQU1ELEdBQUcsQ0FBQyxRQUFrQjtRQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFZLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwVmFsIH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQgeyBMaXN0LCBTdHJpbmdCdWlsZGVyIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBBcmd1bWVudCB9IGZyb20gJy4vQXJndW1lbnQnO1xyXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFza3MvVGFzayc7XHJcbmltcG9ydCB7IFRhc2tCYXNlIH0gZnJvbSAnLi4vdGFza3MvVGFza0Jhc2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlQXR0cmlidXRlLCBTdHJVdGlsIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQXJndW1lbnRzTGlzdCB7XHJcbiAgcHJpdmF0ZSBfbGlzdDogTGlzdDxBcmd1bWVudD4gPSBudWxsO1xyXG5cclxuICAvLyBTdHJpbmcgZm9yIHN1YmZvcm0gYXJndW1lbnRzXHJcbiAgLy8gT25seSBmb3Igb2ZmbGluZS4gSXQncyByZWxldmFudCBmb3IgY2FsbCB3aXRoIGRlc3RpbmF0aW9uXHJcbiAgUmVmcmVzaE9uU3RyaW5nOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKEV4cF9wYXJhbXM6IEV4cFZhbFtdKTtcclxuICBjb25zdHJ1Y3Rvcihhcmd1bWVudDogQXJndW1lbnQpO1xyXG4gIGNvbnN0cnVjdG9yKHNyY0FyZ3NPckV4cF9wYXJhbXNPckFyZ3VtZW50PzogYW55KSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYgKHNyY0FyZ3NPckV4cF9wYXJhbXNPckFyZ3VtZW50ID09PSBudWxsIHx8IHNyY0FyZ3NPckV4cF9wYXJhbXNPckFyZ3VtZW50IGluc3RhbmNlb2YgQXJyYXkpKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMihzcmNBcmdzT3JFeHBfcGFyYW1zT3JBcmd1bWVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0b3JfMyhzcmNBcmdzT3JFeHBfcGFyYW1zT3JBcmd1bWVudCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8wKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1IgdGhhdCBjcmVhdGVzIGEgVkFMVUUgYXJndW1lbnQgbGlzdCB1c2luZyBhIGdpdmVuIGFyZ3VtZW50IGxpc3RcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHB1YmxpYyBhc3luYyBJbml0aWFsaXplKHNyY0FyZ3M6IEFyZ3VtZW50c0xpc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMCgpO1xyXG4gICAgaWYgKHNyY0FyZ3MgPT09IG51bGwpXHJcbiAgICAgIHRoaXMuX2xpc3QgPSBudWxsO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xpc3QgPSBuZXcgTGlzdDxBcmd1bWVudD4oKTtcclxuXHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBzcmNBcmdzLmdldFNpemUoKTsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgbGV0IGFyZyA9IG5ldyBBcmd1bWVudChzcmNBcmdzLmdldEFyZyhpKSk7XHJcbiAgICAgICAgYXdhaXQgYXJnLkluaXRpYWxpemUoc3JjQXJncy5nZXRBcmcoaSkpO1xyXG4gICAgICAgIHRoaXMuX2xpc3QucHVzaChhcmcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUiB0aGF0IGNyZWF0ZXMgYSBWQUxVRSBhcmd1bWVudCBsaXN0IHVzaW5nIGEgZ2l2ZW4gZXhwcmVzc2lvbiB2YWx1ZSBsaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzIoRXhwX3BhcmFtczogRXhwVmFsW10pOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMCgpO1xyXG4gICAgbGV0IGFyZ0NudDogbnVtYmVyID0gRXhwX3BhcmFtcy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGFyZ0NudCA9PT0gMClcclxuICAgICAgdGhpcy5fbGlzdCA9IG51bGw7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fbGlzdCA9IG5ldyBMaXN0PEFyZ3VtZW50PigpO1xyXG5cclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGFyZ0NudDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgdGhpcy5fbGlzdC5wdXNoKG5ldyBBcmd1bWVudChFeHBfcGFyYW1zW2ldKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUiAtIGNyZWF0ZSBhbiBhcmd1bWVudCBsaXN0IHdpdGggb25lIHNwZWNpZmllZCBhcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYXJndW1lbnRcIj48L3BhcmFtPlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMyhhcmd1bWVudDogQXJndW1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuQWRkKGFyZ3VtZW50KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmaWxsIHRoZSBhcmd1bWVudCBsaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbHVlU3RyXCI+c3RyaW5nIGluIHRoZSBmb3JtYXQgb2Y6IFwiW0Y6c3RyLHN0cl18W0U6c3RyXSQuLi5cIjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzcmNUYXNrXCI+dGhlIHNvdXJjZSB0YXNrIGZvciBwYXJzaW5nIGV4cHJlc3Npb24gYXJndW1lbnRzPC9wYXJhbT5cclxuICBmaWxsTGlzdCh2YWx1ZVN0cjogc3RyaW5nLCBzcmNUYXNrOiBUYXNrQmFzZSk6IHZvaWQge1xyXG4gICAgbGV0IHRvazogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKHZhbHVlU3RyLCBcIiRcIik7XHJcbiAgICBsZXQgc2l6ZTogbnVtYmVyID0gdG9rLmxlbmd0aDtcclxuXHJcbiAgICB0aGlzLl9saXN0ID0gbmV3IExpc3Q8QXJndW1lbnQ+KCk7XHJcblxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHNpemU7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgYXJndW1lbnQ6IEFyZ3VtZW50ID0gbmV3IEFyZ3VtZW50KCk7XHJcbiAgICAgIGFyZ3VtZW50LmZpbGxEYXRhKHRva1tpXSwgPFRhc2s+c3JjVGFzayk7XHJcbiAgICAgIHRoaXMuX2xpc3QucHVzaChhcmd1bWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYnVpbGRzIGFyZ3VtZW50IGxpc3QgZnJvbSB0aGUgZXZlbnQgcGFyYW1ldGVyc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzaXplXCI+ICAgLSBhcmd1bWVudCBudW1iZXIgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImF0dHJzXCI+ICAtIHN0cmluZyBvZiBhdHRyaWJ1dGVzPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbHNcIj4gICAtIHZhbHVlIHN0cmluZ3M8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibnVsbHNcIj4gIC0gYXJndW1lbnRzIG51bGxzPC9wYXJhbT5cclxuICBidWlsZExpc3RGcm9tUGFyYW1zKHNpemU6IG51bWJlciwgYXR0cnM6IHN0cmluZywgdmFsczogc3RyaW5nW10sIG51bGxzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xpc3QgPSBuZXcgTGlzdDxBcmd1bWVudD4oKTtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc2l6ZTsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGxldCBhcmd1bWVudDogQXJndW1lbnQgPSBuZXcgQXJndW1lbnQoKTtcclxuICAgICAgYXJndW1lbnQuZmlsbERhdGFCeVBhcmFtcyg8U3RvcmFnZUF0dHJpYnV0ZT5hdHRycy5jaGFyQXQoaSksIHZhbHNbaV0sIG51bGxzLmNoYXJBdChpKSAhPT0gJzAnLyonMCcqLyk7XHJcbiAgICAgIHRoaXMuX2xpc3QucHVzaChhcmd1bWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYnVpbGQgdGhlIFhNTCBzdHJpbmcgZm9yIHRoZSBhcmd1bWVudHMgbGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZXNzYWdlXCI+dGhlIFhNTCBzdHJpbmcgdG8gYXBwZW5kIHRoZSBhcmd1bWVudHMgdG88L3BhcmFtPlxyXG4gIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9saXN0Lmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGlmIChpID4gMClcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZCgnJCcpLyonJCcqLztcclxuICAgICAgdGhpcy5fbGlzdC5nZXRfSXRlbShpKS5idWlsZFhNTChtZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBsaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRTaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHRoaXMuX2xpc3QgPT09IG51bGwpID8gMCA6IHRoaXMuX2xpc3QubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgYW4gYXJndW1lbnQgaXRlbSBmcm9tIHRoZSBsaXN0IGJ5IGl0cyBpbmRleFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj50aGUgaW5kZXggb2YgdGhlIHJlcXVlc3RlZCBhcmd1bWVudDwvcGFyYW0+XHJcbiAgZ2V0QXJnKGlkeDogbnVtYmVyKTogQXJndW1lbnQge1xyXG4gICAgaWYgKGlkeCA8IDAgfHwgaWR4ID49IHRoaXMuX2xpc3QubGVuZ3RoKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5nZXRfSXRlbShpZHgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBWYWx1ZSBvZiBBcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj50aGUgaW5kZXggb2YgdGhlIHJlcXVlc3RlZCBhcmd1bWVudDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBUeXBlXCI+dHlwZSBvZiBleHBlY3RlZCB0eXBlIG9mIGV2YWx1YXRpb24sIGZvciBleHByZXNzaW9uIG9ubHk8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwU2l6ZVwiPnNpemUgb2YgZXhwZWN0ZWQgc3RyaW5nIGZyb20gZXZhbHVhdGlvbiwgZm9yIGV4cHJlc3Npb24gb25seTwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB2YWx1ZSBvZiBldmFsdWF0ZWQgQXJndW1lbnQ8L3JldHVybnM+XHJcbiAgYXN5bmMgZ2V0QXJnVmFsdWUoaWR4OiBudW1iZXIsIGV4cFR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIGV4cFNpemU6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBsZXQgYXJnOiBBcmd1bWVudCA9IHRoaXMuZ2V0QXJnKGlkeCk7XHJcbiAgICBpZiAoYXJnID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiBhd2FpdCBhcmcuZ2V0VmFsdWUoZXhwVHlwZSwgZXhwU2l6ZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGZpbGwgdGhlIGFyZ3VtZW50cyBsaXN0IGZyb20gYSBzdHJpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImFyZ3NTdHJpbmdcIj48L3BhcmFtPlxyXG4gIEZpbGxMaXN0RnJvbVN0cmluZyhhcmdzU3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBUT0RPIDogY2hlY2sgc2l6ZSBvZiBidW5kbGUgYW5kIGRlY2lkZSB3aGV0aGVyIHRvIHVzZSBSZWdFeHBcclxuICAgIGxldCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChcIig/PCFcXFxcXFxcXCksXCIpO1xyXG4gICAgbGV0IGFycmF5OiBzdHJpbmdbXSA9IGFyZ3NTdHJpbmcuc3BsaXQocGF0dGVybik7XHJcbiAgICB0aGlzLl9saXN0ID0gbmV3IExpc3Q8QXJndW1lbnQ+KCk7XHJcblxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGxldCBhcmd1bWVudDogQXJndW1lbnQgPSBuZXcgQXJndW1lbnQoKTtcclxuICAgICAgYXJndW1lbnQuRmlsbEZyb21TdHJpbmcoYXJyYXlbaV0pO1xyXG4gICAgICB0aGlzLl9saXN0LnB1c2goYXJndW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBhZGQgYW4gYXJndW1lbnQgdG8gdGhlIGxpc3RcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImFyZ3VtZW50XCI+PC9wYXJhbT5cclxuICBBZGQoYXJndW1lbnQ6IEFyZ3VtZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fbGlzdCA9PT0gbnVsbClcclxuICAgICAgdGhpcy5fbGlzdCA9IG5ldyBMaXN0PEFyZ3VtZW50PigpO1xyXG4gICAgdGhpcy5fbGlzdC5wdXNoKGFyZ3VtZW50KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,152 +0,0 @@
1
- import { ExpressionEvaluator, NullValueException } from "../exp/ExpressionEvaluator";
2
- import { DisplayConvertor, ExpVal } from "@magic-xpa/gui";
3
- import { StorageAttribute, StrUtil } from "@magic-xpa/utils";
4
- import { Char, NString } from "@magic-xpa/mscorelib";
5
- export class Boundary {
6
- _cacheTableFldId = 0;
7
- _max = null;
8
- _min = null;
9
- _retType = StorageAttribute.NONE;
10
- _size = 0;
11
- _maxExpVal = null;
12
- _minExpVal = null;
13
- DiscardMin = false;
14
- DiscardMax = false;
15
- MaxEqualsMin = false;
16
- constructor(task, minIdx, maxIdx, returnType, size, cacheTableId) {
17
- if (arguments.length === 5)
18
- this.constructor_0(task, minIdx, maxIdx, returnType, size);
19
- else
20
- this.constructor_1(task, minIdx, maxIdx, returnType, size, cacheTableId);
21
- }
22
- constructor_0(task, minIdx, maxIdx, returnType, size) {
23
- this.constructor_1(task, minIdx, maxIdx, returnType, size, -1);
24
- }
25
- constructor_1(task, minIdx, maxIdx, returnType, size, cacheTableId) {
26
- this._retType = returnType;
27
- this._size = size;
28
- this._cacheTableFldId = cacheTableId;
29
- if (minIdx !== -1)
30
- this._min = task.getExpById(minIdx);
31
- if (maxIdx !== -1)
32
- this._max = task.getExpById(maxIdx);
33
- }
34
- hasMinExp() {
35
- return this._min !== null;
36
- }
37
- hasMaxExp() {
38
- return this._max !== null;
39
- }
40
- getExpType() {
41
- return this._retType;
42
- }
43
- getCacheTableFldId() {
44
- return this._cacheTableFldId;
45
- }
46
- async compute(padValueWithMinMaxCharacters) {
47
- if (this.hasMinExp()) {
48
- let minVal = await this._min.evaluateWithResultTypeAndLength(this.getExpType(), this._size);
49
- if (minVal !== null) {
50
- minVal = NString.TrimEnd(minVal, new Array(0));
51
- }
52
- this._minExpVal = new ExpVal(this.getExpType(), minVal === null, minVal);
53
- this.MaxEqualsMin = this.IsMaxEqualsMin();
54
- if (!this._minExpVal.IsNull && (this._minExpVal.Attr === StorageAttribute.ALPHA || this._minExpVal.Attr === StorageAttribute.UNICODE)) {
55
- if (padValueWithMinMaxCharacters) {
56
- this._minExpVal.StrVal = DisplayConvertor.StringValueToMgValue(this._minExpVal.StrVal, this._minExpVal.Attr, Char.MinValue, this._size).toString();
57
- this.MaxEqualsMin = false;
58
- }
59
- this._minExpVal.StrVal = StrUtil.SearchAndReplaceWildChars(this._minExpVal.StrVal, this._size, Char.MinValue);
60
- }
61
- this.DiscardMin = await this._min.DiscardCndRangeResult();
62
- }
63
- if (this.hasMaxExp()) {
64
- let maxVal = await this._max.evaluateWithResultTypeAndLength(this.getExpType(), this._size);
65
- this._maxExpVal = new ExpVal(this.getExpType(), maxVal === null, maxVal);
66
- if (!this._maxExpVal.IsNull && (this._maxExpVal.Attr === StorageAttribute.ALPHA || this._maxExpVal.Attr === StorageAttribute.UNICODE)) {
67
- if (padValueWithMinMaxCharacters) {
68
- this._maxExpVal.StrVal = DisplayConvertor.StringValueToMgValue(this._maxExpVal.StrVal, this._maxExpVal.Attr, Char.MaxValue, this._size);
69
- }
70
- this._maxExpVal.StrVal = StrUtil.SearchAndReplaceWildChars(this._maxExpVal.StrVal, this._size, Char.MaxValue);
71
- }
72
- this.DiscardMax = await this._max.DiscardCndRangeResult();
73
- }
74
- }
75
- checkRange(val, IsNull) {
76
- let res = true;
77
- let cmpVal = new ExpVal(this.getExpType(), IsNull, val);
78
- if (cmpVal.IsNull && ((this.hasMinExp() && this._minExpVal.IsNull) || (this.hasMaxExp() && this._maxExpVal.IsNull))) {
79
- res = true;
80
- }
81
- else {
82
- if (this.hasMinExp()) {
83
- if (!this._minExpVal.IsNull && !cmpVal.IsNull) {
84
- try {
85
- if (ExpressionEvaluator.val_cmp_any(cmpVal, this._minExpVal) < 0)
86
- res = false;
87
- }
88
- catch (exception) {
89
- if (exception instanceof NullValueException) {
90
- res = false;
91
- }
92
- else
93
- throw exception;
94
- }
95
- }
96
- else {
97
- if (cmpVal.IsNull !== this._minExpVal.IsNull)
98
- res = false;
99
- }
100
- }
101
- if (this.hasMaxExp() && res) {
102
- if (!this._maxExpVal.IsNull && !cmpVal.IsNull) {
103
- try {
104
- if (ExpressionEvaluator.val_cmp_any(cmpVal, this._maxExpVal) > 0)
105
- res = false;
106
- }
107
- catch (exception) {
108
- if (exception instanceof NullValueException)
109
- res = false;
110
- else
111
- throw exception;
112
- }
113
- }
114
- else if (cmpVal.IsNull !== this._maxExpVal.IsNull)
115
- res = false;
116
- }
117
- }
118
- return res;
119
- }
120
- IsMaxEqualsMin() {
121
- let result = false;
122
- if (this.hasMaxExp() && this.hasMinExp()) {
123
- if (this._min.getId() === this._max.getId()) {
124
- if (this._retType === StorageAttribute.ALPHA || this._retType === StorageAttribute.UNICODE)
125
- result = !this.WildCharExist();
126
- else
127
- result = true;
128
- }
129
- }
130
- return result;
131
- }
132
- WildCharExist() {
133
- let wildChars = ["*", "?"];
134
- let result = false;
135
- if (!this._minExpVal.IsNull) {
136
- let stringValue = this._minExpVal.StrVal;
137
- for (let i = 0; i < wildChars.length; i = i + 1) {
138
- if (stringValue.endsWith(wildChars[i])) {
139
- result = true;
140
- break;
141
- }
142
- }
143
- }
144
- return result;
145
- }
146
- toString() {
147
- return NString.Format("{{Boundary: {0}-{1}, {2}, {3}}}", [
148
- this._max, this._max, this._retType, this._size
149
- ]);
150
- }
151
- }
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmRhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0JvdW5kYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHM0QsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtuRCxNQUFNLE9BQU8sUUFBUTtJQUNYLGdCQUFnQixHQUFXLENBQUMsQ0FBQztJQUM3QixJQUFJLEdBQWUsSUFBSSxDQUFDO0lBQ3hCLElBQUksR0FBZSxJQUFJLENBQUM7SUFDeEIsUUFBUSxHQUFxQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDbkQsS0FBSyxHQUFXLENBQUMsQ0FBQztJQUNsQixVQUFVLEdBQVcsSUFBSSxDQUFDO0lBQzFCLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFFbEMsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixVQUFVLEdBQVksS0FBSyxDQUFDO0lBQzVCLFlBQVksR0FBWSxLQUFLLENBQUM7SUFLOUIsWUFBWSxJQUFVLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxVQUE0QixFQUFFLElBQVksRUFBRSxZQUFxQjtRQUN2SCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQzs7WUFFM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFV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QUFFO1lBQzNCLElBQUksV0FBVyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBRWpELEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3RDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ2QsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V4cHJlc3Npb25FdmFsdWF0b3IsIE51bGxWYWx1ZUV4Y2VwdGlvbn0gZnJvbSBcIi4uL2V4cC9FeHByZXNzaW9uRXZhbHVhdG9yXCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvciwgRXhwVmFsfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlLCBTdHJVdGlsfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0V4cHJlc3Npb259IGZyb20gXCIuLi9leHAvRXhwcmVzc2lvblwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7Q2hhciwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIHRoaXMgY2xhc3MgcmVwcmVzZW50IGEgcmFuZ2Ugb3IgbG9jYXRlIHNlY3Rpb25zIC0gaS5lLiBtaW4vbWF4IGV4cHJlc3Npb25zXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBCb3VuZGFyeSB7XHJcbiAgcHJpdmF0ZSBfY2FjaGVUYWJsZUZsZElkOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX21heDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbWluOiBFeHByZXNzaW9uID0gbnVsbDtcclxuICBwcml2YXRlIF9yZXRUeXBlOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FO1xyXG4gIHByaXZhdGUgX3NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfbWF4RXhwVmFsOiBFeHBWYWwgPSBudWxsO1xyXG4gIHByaXZhdGUgX21pbkV4cFZhbDogRXhwVmFsID0gbnVsbDtcclxuXHJcbiAgRGlzY2FyZE1pbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIERpc2NhcmRNYXg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBNYXhFcXVhbHNNaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrLCBtaW5JZHg6IG51bWJlciwgbWF4SWR4OiBudW1iZXIsIHJldHVyblR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHNpemU6IG51bWJlciwgY2FjaGVUYWJsZUlkOiBudW1iZXIpO1xyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyLCBjYWNoZVRhYmxlSWQ/OiBudW1iZXIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA1KVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAodGFzaywgbWluSWR4LCBtYXhJZHgsIHJldHVyblR5cGUsIHNpemUpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEodGFzaywgbWluSWR4LCBtYXhJZHgsIHJldHVyblR5cGUsIHNpemUsIGNhY2hlVGFibGVJZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyBCb3VuZGFyeSBvYmplY3RcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1pbklkeFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibWF4SWR4XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJyZXR1cm5UeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzaXplXCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAodGFzazogVGFzaywgbWluSWR4OiBudW1iZXIsIG1heElkeDogbnVtYmVyLCByZXR1cm5UeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBzaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMSh0YXNrLCBtaW5JZHgsIG1heElkeCwgcmV0dXJuVHlwZSwgc2l6ZSwgLTEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyLCBjYWNoZVRhYmxlSWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fcmV0VHlwZSA9IHJldHVyblR5cGU7XHJcbiAgICB0aGlzLl9zaXplID0gc2l6ZTtcclxuICAgIHRoaXMuX2NhY2hlVGFibGVGbGRJZCA9IGNhY2hlVGFibGVJZDtcclxuICAgIGlmIChtaW5JZHggIT09IC0xKVxyXG4gICAgICB0aGlzLl9taW4gPSB0YXNrLmdldEV4cEJ5SWQobWluSWR4KTtcclxuXHJcbiAgICBpZiAobWF4SWR4ICE9PSAtMSlcclxuICAgICAgdGhpcy5fbWF4ID0gdGFzay5nZXRFeHBCeUlkKG1heElkeCk7XHJcbiAgfVxyXG5cclxuICAvLyBzb21ldGltZXMgdGhlIG1pbiBvciBtYXggZG9lcyBub3QgaGF2ZSBhbiBleHByZXNzaW9uXHJcbiAgaGFzTWluRXhwKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbiAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vIHNvbWV0aW1lcyB0aGUgbWluIG9yIG1heCBkb2VzIG5vdCBoYXZlIGFuIGV4cHJlc3Npb25cclxuICBoYXNNYXhFeHAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4ICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIG1pbi9tYXggZXhwcmVzc2lvbnMgcmV0dXJuIHR5cGUgLSBpdCBhY3R1YWxseSB0aGUgdHlwZSBvZiB0aGUgZmllbGQgdGhleSBhcmUgQXNzb2NpYXRlZCB3aXRoXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRFeHBUeXBlKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JldFR5cGU7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgaWQgb2YgdGhlIGNhY2hlZCB0YWJsZSBmaWVsZCB0aGlzIHJhbmdlIGNvcnJlc3BvbmRzIHRvXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRDYWNoZVRhYmxlRmxkSWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZVRhYmxlRmxkSWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY29tcHV0ZXMgdGhlIG1pbiBhbmQgbWF4IGV4cHJlc3Npb24gdG8gY2hlY2sgdGhlaXIgdmFsdWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhc3luYyBjb21wdXRlKHBhZFZhbHVlV2l0aE1pbk1heENoYXJhY3RlcnM6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmhhc01pbkV4cCgpKSB7XHJcblxyXG4gICAgICAvLyBldmFsdWF0ZSB0aGUgbWluIGV4cHJlc3Npb25cclxuICAgICAgbGV0IG1pblZhbDogc3RyaW5nID0gYXdhaXQgdGhpcy5fbWluLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgodGhpcy5nZXRFeHBUeXBlKCksIHRoaXMuX3NpemUpO1xyXG4gICAgICBpZiAobWluVmFsICE9PSBudWxsKSB7XHJcbiAgICAgICAgbWluVmFsID0gTlN0cmluZy5UcmltRW5kKG1pblZhbCwgbmV3IEFycmF5PHN0cmluZz4oMCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9taW5FeHBWYWwgPSBuZXcgRXhwVmFsKHRoaXMuZ2V0RXhwVHlwZSgpLCBtaW5WYWwgPT09IG51bGwsIG1pblZhbCk7XHJcblxyXG4gICAgICAvLyBjaGVjayBhbmQgc2V0IHRoZSBNYXhFcXVhbHNNaW4gYmVmb3JlIHRoZSB3aWxkIGNoYXJzIGFyZSByZXBsYWNlZCBvbiB0aGUgc3RyaW5nIHJlc3VsdFxyXG4gICAgICB0aGlzLk1heEVxdWFsc01pbiA9IHRoaXMuSXNNYXhFcXVhbHNNaW4oKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5fbWluRXhwVmFsLklzTnVsbCAmJiAodGhpcy5fbWluRXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdGhpcy5fbWluRXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSkpIHtcclxuICAgICAgICBpZiAocGFkVmFsdWVXaXRoTWluTWF4Q2hhcmFjdGVycykge1xyXG4gICAgICAgICAgdGhpcy5fbWluRXhwVmFsLlN0clZhbCA9IERpc3BsYXlDb252ZXJ0b3IuU3RyaW5nVmFsdWVUb01nVmFsdWUodGhpcy5fbWluRXhwVmFsLlN0clZhbCwgdGhpcy5fbWluRXhwVmFsLkF0dHIsIENoYXIuTWluVmFsdWUsIC8qJ1x1MDAwMCcqL3RoaXMuX3NpemUpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICB0aGlzLk1heEVxdWFsc01pbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5FeHBWYWwuU3RyVmFsID0gU3RyVXRpbC5TZWFyY2hBbmRSZXBsYWNlV2lsZENoYXJzKHRoaXMuX21pbkV4cFZhbC5TdHJWYWwsIHRoaXMuX3NpemUsIENoYXIuTWluVmFsdWUpLyonXHUwMDAwJyovO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuRGlzY2FyZE1pbiA9IGF3YWl0IHRoaXMuX21pbi5EaXNjYXJkQ25kUmFuZ2VSZXN1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSkge1xyXG5cclxuICAgICAgLy8gZXZhbHVhdGUgdGhlIG1heCBleHByZXNzaW9uXHJcbiAgICAgIGxldCBtYXhWYWw6IHN0cmluZyA9IGF3YWl0IHRoaXMuX21heC5ldmFsdWF0ZVdpdGhSZXN1bHRUeXBlQW5kTGVuZ3RoKHRoaXMuZ2V0RXhwVHlwZSgpLCB0aGlzLl9zaXplKTtcclxuICAgICAgdGhpcy5fbWF4RXhwVmFsID0gbmV3IEV4cFZhbCh0aGlzLmdldEV4cFR5cGUoKSwgbWF4VmFsID09PSBudWxsLCBtYXhWYWwpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLl9tYXhFeHBWYWwuSXNOdWxsICYmICh0aGlzLl9tYXhFeHBWYWwuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl9tYXhFeHBWYWwuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFKSkge1xyXG4gICAgICAgIGlmIChwYWRWYWx1ZVdpdGhNaW5NYXhDaGFyYWN0ZXJzKSB7XHJcbiAgICAgICAgICB0aGlzLl9tYXhFeHBWYWwuU3RyVmFsID0gRGlzcGxheUNvbnZlcnRvci5TdHJpbmdWYWx1ZVRvTWdWYWx1ZSh0aGlzLl9tYXhFeHBWYWwuU3RyVmFsLCB0aGlzLl9tYXhFeHBWYWwuQXR0ciwgQ2hhci5NYXhWYWx1ZSAvKifvv78nKi8sIHRoaXMuX3NpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9tYXhFeHBWYWwuU3RyVmFsID0gU3RyVXRpbC5TZWFyY2hBbmRSZXBsYWNlV2lsZENoYXJzKHRoaXMuX21heEV4cFZhbC5TdHJWYWwsIHRoaXMuX3NpemUsIENoYXIuTWF4VmFsdWUpLyon77+/JyovO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuRGlzY2FyZE1heCA9IGF3YWl0IHRoaXMuX21heC5EaXNjYXJkQ25kUmFuZ2VSZXN1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICB0aGlzIGZ1bmN0aW9uIGdldHMgYSB2YWx1ZSBhbmQgY2hlY2tzIHdoZXRoZXIgaXQgc2F0aXNmaWVzIHRoZSByYW5nZSBzZWN0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPi0gdGhlIHZhbHVlIHRvIGJlIGNvbXBhcmVkXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgY2hlY2tSYW5nZSh2YWw6IHN0cmluZywgSXNOdWxsOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgY21wVmFsOiBFeHBWYWwgPSBuZXcgRXhwVmFsKHRoaXMuZ2V0RXhwVHlwZSgpLCBJc051bGwsIHZhbCk7XHJcblxyXG4gICAgaWYgKGNtcFZhbC5Jc051bGwgJiYgKCh0aGlzLmhhc01pbkV4cCgpICYmIHRoaXMuX21pbkV4cFZhbC5Jc051bGwpIHx8ICh0aGlzLmhhc01heEV4cCgpICYmIHRoaXMuX21heEV4cFZhbC5Jc051bGwpKSkge1xyXG4gICAgICByZXMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIGNoZWNrIG1pbiBleHByZXNzaW9uIENvbXBsaWFuY2VcclxuICAgICAgaWYgKHRoaXMuaGFzTWluRXhwKCkpIHtcclxuXHJcbiAgICAgICAgLy8gaWYgYm90aCBvZiB0aGUgY29tcGFyZWQgdmFsdWVzIGFyZSBub3QgbnVsbFxyXG4gICAgICAgIGlmICghdGhpcy5fbWluRXhwVmFsLklzTnVsbCAmJiAhY21wVmFsLklzTnVsbCkge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gdGhlIGNvbXBhcmVkIHZhbHVlIG11c3QgYmUgZXF1YWwgb3IgZ3JlYXRlciB0byB0aGUgbWluIHZhbHVlXHJcbiAgICAgICAgICAgIGlmIChFeHByZXNzaW9uRXZhbHVhdG9yLnZhbF9jbXBfYW55KGNtcFZhbCwgdGhpcy5fbWluRXhwVmFsKSA8IDApXHJcbiAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChleGNlcHRpb24gaW5zdGFuY2VvZiBOdWxsVmFsdWVFeGNlcHRpb24pIHtcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChjbXBWYWwuSXNOdWxsICE9PSB0aGlzLl9taW5FeHBWYWwuSXNOdWxsKVxyXG4gICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2hlY2sgbWF4IGV4cHJlc3Npb24gQ29tcGxpYW5jZVxyXG4gICAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSAmJiByZXMpIHtcclxuICAgICAgICAvLyBpZiBib3RoIG9mIHRoZSBjb21wYXJlZCB2YWx1ZXMgYXJlIG5vdCBudWxsXHJcbiAgICAgICAgaWYgKCF0aGlzLl9tYXhFeHBWYWwuSXNOdWxsICYmICFjbXBWYWwuSXNOdWxsKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyB0aGUgY29tcGFyZWQgdmFsdWUgbXVzdCBiZSBlcXVhbCBvciBncmVhdGVyIHRvIHRoZSBtaW4gdmFsdWVcclxuICAgICAgICAgICAgaWYgKEV4cHJlc3Npb25FdmFsdWF0b3IudmFsX2NtcF9hbnkoY21wVmFsLCB0aGlzLl9tYXhFeHBWYWwpID4gMClcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhdGNoIChleGNlcHRpb24pIHtcclxuICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbiBpbnN0YW5jZW9mIE51bGxWYWx1ZUV4Y2VwdGlvbilcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIHRocm93IGV4Y2VwdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgb25lIG9mIHRoZW0gaXMgbnVsbCBhbmQgbnVsbCBpcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhlcmUgaXMgd2UgbXVzdCBjaGVjayB0aGF0IG1heEV4cFZhbCBpcyBub3QgbnVsbFxyXG4gICAgICAgIGVsc2UgaWYgKGNtcFZhbC5Jc051bGwgIT09IHRoaXMuX21heEV4cFZhbC5Jc051bGwpXHJcbiAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJucyB0cnVlIGlmIG1pbiBleHByZXNzaW9uIGVxdWFsIHRvIG1heCBleHByZXNzaW9uIGFuZCBubyB3aWxkIGNoYXJzICgqLCA/KSBleGlzdCBpbiB0aGUgcmFuZ2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgSXNNYXhFcXVhbHNNaW4oKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSAmJiB0aGlzLmhhc01pbkV4cCgpKSB7XHJcbiAgICAgIGlmICh0aGlzLl9taW4uZ2V0SWQoKSA9PT0gdGhpcy5fbWF4LmdldElkKCkpIHtcclxuICAgICAgICBpZiAodGhpcy5fcmV0VHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl9yZXRUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUpXHJcbiAgICAgICAgICByZXN1bHQgPSAhdGhpcy5XaWxkQ2hhckV4aXN0KCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY2hlY2tzIGlmIHdpbGQgY2hhciBleGlzdCBpbiB0bmUgdmFsdWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBXaWxkQ2hhckV4aXN0KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHdpbGRDaGFyczogc3RyaW5nW10gPSBbXCIqXCIsIFwiP1wiXTtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvLyBjaGVjayB0cmltXHJcbiAgICBpZiAoIXRoaXMuX21pbkV4cFZhbC5Jc051bGwpIHtcclxuICAgICAgbGV0IHN0cmluZ1ZhbHVlOiBzdHJpbmcgPSB0aGlzLl9taW5FeHBWYWwuU3RyVmFsO1xyXG5cclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHdpbGRDaGFycy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGlmIChzdHJpbmdWYWx1ZS5lbmRzV2l0aCh3aWxkQ2hhcnNbaV0pKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChcInt7Qm91bmRhcnk6IHswfS17MX0sIHsyfSwgezN9fX1cIiwgW1xyXG4gICAgICB0aGlzLl9tYXgsIHRoaXMuX21heCwgdGhpcy5fcmV0VHlwZSwgdGhpcy5fc2l6ZVxyXG4gICAgXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==