@bitgo/sdk-coin-sui 2.0.1 → 3.0.1

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 (122) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +37 -0
  3. package/dist/src/lib/constants.d.ts +3 -15
  4. package/dist/src/lib/constants.d.ts.map +1 -1
  5. package/dist/src/lib/constants.js +7 -20
  6. package/dist/src/lib/iface.d.ts +35 -181
  7. package/dist/src/lib/iface.d.ts.map +1 -1
  8. package/dist/src/lib/iface.js +11 -38
  9. package/dist/src/lib/index.d.ts +2 -0
  10. package/dist/src/lib/index.d.ts.map +1 -1
  11. package/dist/src/lib/index.js +6 -2
  12. package/dist/src/lib/keyPair.d.ts +4 -0
  13. package/dist/src/lib/keyPair.d.ts.map +1 -1
  14. package/dist/src/lib/keyPair.js +7 -10
  15. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
  16. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
  17. package/dist/src/lib/mystenlab/builder/Inputs.js +56 -0
  18. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +616 -0
  19. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
  20. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +260 -0
  21. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
  22. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
  23. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +171 -0
  24. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +992 -0
  25. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
  26. package/dist/src/lib/mystenlab/builder/Transactions.js +119 -0
  27. package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
  28. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
  29. package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
  30. package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
  31. package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
  32. package/dist/src/lib/mystenlab/builder/index.js +17 -0
  33. package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
  34. package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
  35. package/dist/src/lib/mystenlab/builder/serializer.js +101 -0
  36. package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
  37. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
  38. package/dist/src/lib/mystenlab/builder/utils.js +10 -0
  39. package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
  40. package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
  41. package/dist/src/lib/mystenlab/cryptography/hash.js +22 -0
  42. package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
  43. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
  44. package/dist/src/lib/mystenlab/framework/framework.js +138 -0
  45. package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
  46. package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
  47. package/dist/src/lib/mystenlab/framework/index.js +15 -0
  48. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +12 -0
  49. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
  50. package/dist/src/lib/mystenlab/framework/sui-system-state.js +19 -0
  51. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
  52. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
  53. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
  54. package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
  55. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
  56. package/dist/src/lib/mystenlab/types/coin.js +32 -0
  57. package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
  58. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
  59. package/dist/src/lib/mystenlab/types/common.js +84 -0
  60. package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
  61. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
  62. package/dist/src/lib/mystenlab/types/events.js +46 -0
  63. package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
  64. package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
  65. package/dist/src/lib/mystenlab/types/index.js +21 -0
  66. package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
  67. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
  68. package/dist/src/lib/mystenlab/types/normalized.js +111 -0
  69. package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
  70. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
  71. package/dist/src/lib/mystenlab/types/objects.js +302 -0
  72. package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
  73. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
  74. package/dist/src/lib/mystenlab/types/option.js +14 -0
  75. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
  76. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
  77. package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
  78. package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
  79. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
  80. package/dist/src/lib/mystenlab/types/transactions.js +405 -0
  81. package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
  82. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
  83. package/dist/src/lib/mystenlab/types/validator.js +156 -0
  84. package/dist/src/lib/stakingBuilder.d.ts +24 -35
  85. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  86. package/dist/src/lib/stakingBuilder.js +93 -129
  87. package/dist/src/lib/stakingTransaction.d.ts +5 -21
  88. package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
  89. package/dist/src/lib/stakingTransaction.js +77 -219
  90. package/dist/src/lib/transaction.d.ts +8 -6
  91. package/dist/src/lib/transaction.d.ts.map +1 -1
  92. package/dist/src/lib/transaction.js +74 -124
  93. package/dist/src/lib/transactionBuilder.d.ts +9 -9
  94. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  95. package/dist/src/lib/transactionBuilder.js +27 -16
  96. package/dist/src/lib/transactionBuilderFactory.d.ts +8 -5
  97. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  98. package/dist/src/lib/transactionBuilderFactory.js +17 -11
  99. package/dist/src/lib/transferBuilder.d.ts +15 -10
  100. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  101. package/dist/src/lib/transferBuilder.js +38 -101
  102. package/dist/src/lib/transferTransaction.d.ts +5 -4
  103. package/dist/src/lib/transferTransaction.d.ts.map +1 -1
  104. package/dist/src/lib/transferTransaction.js +45 -96
  105. package/dist/src/lib/unstakingBuilder.d.ts +55 -0
  106. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
  107. package/dist/src/lib/unstakingBuilder.js +148 -0
  108. package/dist/src/lib/unstakingTransaction.d.ts +51 -0
  109. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
  110. package/dist/src/lib/unstakingTransaction.js +206 -0
  111. package/dist/src/lib/utils.d.ts +30 -92
  112. package/dist/src/lib/utils.d.ts.map +1 -1
  113. package/dist/src/lib/utils.js +115 -177
  114. package/dist/src/sui.d.ts.map +1 -1
  115. package/dist/src/sui.js +23 -13
  116. package/package.json +9 -9
  117. package/dist/src/lib/bcs.d.ts +0 -3
  118. package/dist/src/lib/bcs.d.ts.map +0 -1
  119. package/dist/src/lib/bcs.js +0 -109
  120. package/dist/src/lib/txnSchema.d.ts +0 -7
  121. package/dist/src/lib/txnSchema.d.ts.map +0 -1
  122. package/dist/src/lib/txnSchema.js +0 -81
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/transactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,405 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExecutionStatusType = exports.getProgrammableTransaction = exports.getTransactionKindName = exports.getTransactionKind = exports.getConsensusCommitPrologueTransaction = exports.getChangeEpochTransaction = exports.getTransactionGasBudget = exports.getTransactionGasPrice = exports.getTransactionGasObject = exports.getGasData = exports.getTransactionSender = exports.getTransactionSignature = exports.getTransactionDigest = exports.getTransaction = exports.DryRunTransactionBlockResponse = exports.PaginatedTransactionResponse = exports.SuiTransactionBlockResponseOptions = exports.SuiTransactionBlockResponse = exports.BalanceChange = exports.SuiObjectChange = exports.SuiObjectChangeCreated = exports.SuiObjectChangeWrapped = exports.SuiObjectChangeDeleted = exports.SuiObjectChangeMutated = exports.SuiObjectChangeTransferred = exports.SuiObjectChangePublished = exports.SuiTransactionBlock = exports.AuthorityName = exports.DevInspectResults = exports.TransactionEvents = exports.TransactionEffects = exports.TransactionEffectsModifiedAtVersions = exports.OwnedObjectRef = exports.ExecutionStatus = exports.ExecutionStatusType = exports.GasCostSummary = exports.AuthorityQuorumSignInfo = exports.GenericAuthoritySignature = exports.AuthoritySignature = exports.SuiTransactionBlockData = exports.SuiTransactionBlockKind = exports.ProgrammableTransaction = exports.SuiCallArg = exports.SuiTransaction = exports.MoveCallSuiTransaction = exports.SuiArgument = exports.Genesis = exports.SuiConsensusCommitPrologue = exports.SuiChangeEpoch = exports.EpochId = void 0;
4
+ exports.getPublishedObjectChanges = exports.getObjectChanges = exports.getNewlyCreatedCoinRefsAfterSplit = exports.getTimestampFromTransactionResponse = exports.getCreatedObjects = exports.getEvents = exports.getTransactionEffects = exports.getTotalGasUsedUpperBound = exports.getTotalGasUsed = exports.getExecutionStatusGasSummary = exports.getExecutionStatusError = exports.getExecutionStatus = void 0;
5
+ const superstruct_1 = require("superstruct");
6
+ const common_1 = require("./common");
7
+ const events_1 = require("./events");
8
+ const objects_1 = require("./objects");
9
+ exports.EpochId = superstruct_1.string();
10
+ exports.SuiChangeEpoch = superstruct_1.object({
11
+ epoch: exports.EpochId,
12
+ storage_charge: superstruct_1.number(),
13
+ computation_charge: superstruct_1.number(),
14
+ storage_rebate: superstruct_1.number(),
15
+ epoch_start_timestamp_ms: superstruct_1.optional(superstruct_1.number()),
16
+ });
17
+ exports.SuiConsensusCommitPrologue = superstruct_1.object({
18
+ epoch: superstruct_1.number(),
19
+ round: superstruct_1.number(),
20
+ commit_timestamp_ms: superstruct_1.number(),
21
+ });
22
+ exports.Genesis = superstruct_1.object({
23
+ objects: superstruct_1.array(common_1.ObjectId),
24
+ });
25
+ exports.SuiArgument = superstruct_1.union([
26
+ superstruct_1.literal('GasCoin'),
27
+ superstruct_1.object({ Input: superstruct_1.number() }),
28
+ superstruct_1.object({ Result: superstruct_1.number() }),
29
+ superstruct_1.object({ NestedResult: superstruct_1.tuple([superstruct_1.number(), superstruct_1.number()]) }),
30
+ ]);
31
+ exports.MoveCallSuiTransaction = superstruct_1.object({
32
+ arguments: superstruct_1.optional(superstruct_1.array(exports.SuiArgument)),
33
+ type_arguments: superstruct_1.optional(superstruct_1.array(superstruct_1.string())),
34
+ package: common_1.ObjectId,
35
+ module: superstruct_1.string(),
36
+ function: superstruct_1.string(),
37
+ });
38
+ exports.SuiTransaction = superstruct_1.union([
39
+ superstruct_1.object({ MoveCall: exports.MoveCallSuiTransaction }),
40
+ superstruct_1.object({ TransferObjects: superstruct_1.tuple([superstruct_1.array(exports.SuiArgument), exports.SuiArgument]) }),
41
+ superstruct_1.object({ SplitCoins: superstruct_1.tuple([exports.SuiArgument, superstruct_1.array(exports.SuiArgument)]) }),
42
+ superstruct_1.object({ MergeCoins: superstruct_1.tuple([exports.SuiArgument, superstruct_1.array(exports.SuiArgument)]) }),
43
+ superstruct_1.object({ Publish: objects_1.SuiMovePackage }),
44
+ superstruct_1.object({ MakeMoveVec: superstruct_1.tuple([superstruct_1.nullable(superstruct_1.string()), superstruct_1.array(exports.SuiArgument)]) }),
45
+ ]);
46
+ exports.SuiCallArg = superstruct_1.union([
47
+ superstruct_1.object({
48
+ type: superstruct_1.literal('pure'),
49
+ valueType: superstruct_1.optional(superstruct_1.string()),
50
+ value: common_1.SuiJsonValue,
51
+ }),
52
+ superstruct_1.object({
53
+ type: superstruct_1.literal('object'),
54
+ objectType: superstruct_1.literal('immOrOwnedObject'),
55
+ objectId: common_1.ObjectId,
56
+ version: common_1.SequenceNumber,
57
+ digest: objects_1.ObjectDigest,
58
+ }),
59
+ superstruct_1.object({
60
+ type: superstruct_1.literal('object'),
61
+ objectType: superstruct_1.literal('sharedObject'),
62
+ objectId: common_1.ObjectId,
63
+ initialSharedVersion: common_1.SequenceNumber,
64
+ mutable: superstruct_1.boolean(),
65
+ }),
66
+ ]);
67
+ exports.ProgrammableTransaction = superstruct_1.object({
68
+ transactions: superstruct_1.array(exports.SuiTransaction),
69
+ inputs: superstruct_1.array(exports.SuiCallArg),
70
+ });
71
+ exports.SuiTransactionBlockKind = superstruct_1.union([
72
+ superstruct_1.assign(exports.SuiChangeEpoch, superstruct_1.object({ kind: superstruct_1.literal('ChangeEpoch') })),
73
+ superstruct_1.assign(exports.SuiConsensusCommitPrologue, superstruct_1.object({
74
+ kind: superstruct_1.literal('ConsensusCommitPrologue'),
75
+ })),
76
+ superstruct_1.assign(exports.Genesis, superstruct_1.object({ kind: superstruct_1.literal('Genesis') })),
77
+ superstruct_1.assign(exports.ProgrammableTransaction, superstruct_1.object({ kind: superstruct_1.literal('ProgrammableTransaction') })),
78
+ ]);
79
+ exports.SuiTransactionBlockData = superstruct_1.object({
80
+ // Eventually this will become union(literal('v1'), literal('v2'), ...)
81
+ messageVersion: superstruct_1.literal('v1'),
82
+ transaction: exports.SuiTransactionBlockKind,
83
+ sender: common_1.SuiAddress,
84
+ gasData: objects_1.SuiGasData,
85
+ });
86
+ exports.AuthoritySignature = superstruct_1.string();
87
+ exports.GenericAuthoritySignature = superstruct_1.union([exports.AuthoritySignature, superstruct_1.array(exports.AuthoritySignature)]);
88
+ exports.AuthorityQuorumSignInfo = superstruct_1.object({
89
+ epoch: exports.EpochId,
90
+ signature: exports.GenericAuthoritySignature,
91
+ signers_map: superstruct_1.array(superstruct_1.number()),
92
+ });
93
+ exports.GasCostSummary = superstruct_1.object({
94
+ computationCost: superstruct_1.string(),
95
+ storageCost: superstruct_1.string(),
96
+ storageRebate: superstruct_1.string(),
97
+ nonRefundableStorageFee: superstruct_1.string(),
98
+ });
99
+ exports.ExecutionStatusType = superstruct_1.union([superstruct_1.literal('success'), superstruct_1.literal('failure')]);
100
+ exports.ExecutionStatus = superstruct_1.object({
101
+ status: exports.ExecutionStatusType,
102
+ error: superstruct_1.optional(superstruct_1.string()),
103
+ });
104
+ exports.OwnedObjectRef = superstruct_1.object({
105
+ owner: common_1.ObjectOwner,
106
+ reference: objects_1.SuiObjectRef,
107
+ });
108
+ exports.TransactionEffectsModifiedAtVersions = superstruct_1.object({
109
+ objectId: common_1.ObjectId,
110
+ sequenceNumber: common_1.SequenceNumber,
111
+ });
112
+ exports.TransactionEffects = superstruct_1.object({
113
+ // Eventually this will become union(literal('v1'), literal('v2'), ...)
114
+ messageVersion: superstruct_1.literal('v1'),
115
+ /** The status of the execution */
116
+ status: exports.ExecutionStatus,
117
+ /** The epoch when this transaction was executed */
118
+ executedEpoch: exports.EpochId,
119
+ /** The version that every modified (mutated or deleted) object had before it was modified by this transaction. **/
120
+ modifiedAtVersions: superstruct_1.optional(superstruct_1.array(exports.TransactionEffectsModifiedAtVersions)),
121
+ gasUsed: exports.GasCostSummary,
122
+ /** The object references of the shared objects used in this transaction. Empty if no shared objects were used. */
123
+ sharedObjects: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
124
+ /** The transaction digest */
125
+ transactionDigest: common_1.TransactionDigest,
126
+ /** ObjectRef and owner of new objects created */
127
+ created: superstruct_1.optional(superstruct_1.array(exports.OwnedObjectRef)),
128
+ /** ObjectRef and owner of mutated objects, including gas object */
129
+ mutated: superstruct_1.optional(superstruct_1.array(exports.OwnedObjectRef)),
130
+ /**
131
+ * ObjectRef and owner of objects that are unwrapped in this transaction.
132
+ * Unwrapped objects are objects that were wrapped into other objects in the past,
133
+ * and just got extracted out.
134
+ */
135
+ unwrapped: superstruct_1.optional(superstruct_1.array(exports.OwnedObjectRef)),
136
+ /** Object Refs of objects now deleted (the old refs) */
137
+ deleted: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
138
+ /** Object Refs of objects now deleted (the old refs) */
139
+ unwrapped_then_deleted: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
140
+ /** Object refs of objects now wrapped in other objects */
141
+ wrapped: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
142
+ /**
143
+ * The updated gas object reference. Have a dedicated field for convenient access.
144
+ * It's also included in mutated.
145
+ */
146
+ gasObject: exports.OwnedObjectRef,
147
+ /** The events emitted during execution. Note that only successful transactions emit events */
148
+ eventsDigest: superstruct_1.optional(common_1.TransactionEventDigest),
149
+ /** The set of transaction digests this transaction depends on */
150
+ dependencies: superstruct_1.optional(superstruct_1.array(common_1.TransactionDigest)),
151
+ });
152
+ exports.TransactionEvents = superstruct_1.array(events_1.SuiEvent);
153
+ const ReturnValueType = superstruct_1.tuple([superstruct_1.array(superstruct_1.number()), superstruct_1.string()]);
154
+ const MutableReferenceOutputType = superstruct_1.tuple([exports.SuiArgument, superstruct_1.array(superstruct_1.number()), superstruct_1.string()]);
155
+ const ExecutionResultType = superstruct_1.object({
156
+ mutableReferenceOutputs: superstruct_1.optional(superstruct_1.array(MutableReferenceOutputType)),
157
+ returnValues: superstruct_1.optional(superstruct_1.array(ReturnValueType)),
158
+ });
159
+ exports.DevInspectResults = superstruct_1.object({
160
+ effects: exports.TransactionEffects,
161
+ events: exports.TransactionEvents,
162
+ results: superstruct_1.optional(superstruct_1.array(ExecutionResultType)),
163
+ error: superstruct_1.optional(superstruct_1.string()),
164
+ });
165
+ exports.AuthorityName = superstruct_1.string();
166
+ exports.SuiTransactionBlock = superstruct_1.object({
167
+ data: exports.SuiTransactionBlockData,
168
+ txSignatures: superstruct_1.array(superstruct_1.string()),
169
+ });
170
+ exports.SuiObjectChangePublished = superstruct_1.object({
171
+ type: superstruct_1.literal('published'),
172
+ packageId: common_1.ObjectId,
173
+ version: common_1.SequenceNumber,
174
+ digest: objects_1.ObjectDigest,
175
+ modules: superstruct_1.array(superstruct_1.string()),
176
+ });
177
+ exports.SuiObjectChangeTransferred = superstruct_1.object({
178
+ type: superstruct_1.literal('transferred'),
179
+ sender: common_1.SuiAddress,
180
+ recipient: common_1.ObjectOwner,
181
+ objectType: superstruct_1.string(),
182
+ objectId: common_1.ObjectId,
183
+ version: common_1.SequenceNumber,
184
+ digest: objects_1.ObjectDigest,
185
+ });
186
+ exports.SuiObjectChangeMutated = superstruct_1.object({
187
+ type: superstruct_1.literal('mutated'),
188
+ sender: common_1.SuiAddress,
189
+ owner: common_1.ObjectOwner,
190
+ objectType: superstruct_1.string(),
191
+ objectId: common_1.ObjectId,
192
+ version: common_1.SequenceNumber,
193
+ previousVersion: common_1.SequenceNumber,
194
+ digest: objects_1.ObjectDigest,
195
+ });
196
+ exports.SuiObjectChangeDeleted = superstruct_1.object({
197
+ type: superstruct_1.literal('deleted'),
198
+ sender: common_1.SuiAddress,
199
+ objectType: superstruct_1.string(),
200
+ objectId: common_1.ObjectId,
201
+ version: common_1.SequenceNumber,
202
+ });
203
+ exports.SuiObjectChangeWrapped = superstruct_1.object({
204
+ type: superstruct_1.literal('wrapped'),
205
+ sender: common_1.SuiAddress,
206
+ objectType: superstruct_1.string(),
207
+ objectId: common_1.ObjectId,
208
+ version: common_1.SequenceNumber,
209
+ });
210
+ exports.SuiObjectChangeCreated = superstruct_1.object({
211
+ type: superstruct_1.literal('created'),
212
+ sender: common_1.SuiAddress,
213
+ owner: common_1.ObjectOwner,
214
+ objectType: superstruct_1.string(),
215
+ objectId: common_1.ObjectId,
216
+ version: common_1.SequenceNumber,
217
+ digest: objects_1.ObjectDigest,
218
+ });
219
+ exports.SuiObjectChange = superstruct_1.union([
220
+ exports.SuiObjectChangePublished,
221
+ exports.SuiObjectChangeTransferred,
222
+ exports.SuiObjectChangeMutated,
223
+ exports.SuiObjectChangeDeleted,
224
+ exports.SuiObjectChangeWrapped,
225
+ exports.SuiObjectChangeCreated,
226
+ ]);
227
+ exports.BalanceChange = superstruct_1.object({
228
+ owner: common_1.ObjectOwner,
229
+ coinType: superstruct_1.string(),
230
+ /* Coin balance change(positive means receive, negative means send) */
231
+ amount: superstruct_1.string(),
232
+ });
233
+ exports.SuiTransactionBlockResponse = superstruct_1.object({
234
+ digest: common_1.TransactionDigest,
235
+ transaction: superstruct_1.optional(exports.SuiTransactionBlock),
236
+ effects: superstruct_1.optional(exports.TransactionEffects),
237
+ events: superstruct_1.optional(exports.TransactionEvents),
238
+ timestampMs: superstruct_1.optional(superstruct_1.number()),
239
+ checkpoint: superstruct_1.optional(superstruct_1.number()),
240
+ confirmedLocalExecution: superstruct_1.optional(superstruct_1.boolean()),
241
+ objectChanges: superstruct_1.optional(superstruct_1.array(exports.SuiObjectChange)),
242
+ balanceChanges: superstruct_1.optional(superstruct_1.array(exports.BalanceChange)),
243
+ /* Errors that occurred in fetching/serializing the transaction. */
244
+ errors: superstruct_1.optional(superstruct_1.array(superstruct_1.string())),
245
+ });
246
+ exports.SuiTransactionBlockResponseOptions = superstruct_1.object({
247
+ /* Whether to show transaction input data. Default to be false. */
248
+ showInput: superstruct_1.optional(superstruct_1.boolean()),
249
+ /* Whether to show transaction effects. Default to be false. */
250
+ showEffects: superstruct_1.optional(superstruct_1.boolean()),
251
+ /* Whether to show transaction events. Default to be false. */
252
+ showEvents: superstruct_1.optional(superstruct_1.boolean()),
253
+ /* Whether to show object changes. Default to be false. */
254
+ showObjectChanges: superstruct_1.optional(superstruct_1.boolean()),
255
+ /* Whether to show coin balance changes. Default to be false. */
256
+ showBalanceChanges: superstruct_1.optional(superstruct_1.boolean()),
257
+ });
258
+ exports.PaginatedTransactionResponse = superstruct_1.object({
259
+ data: superstruct_1.array(exports.SuiTransactionBlockResponse),
260
+ nextCursor: superstruct_1.union([common_1.TransactionDigest, superstruct_1.literal(null)]),
261
+ hasNextPage: superstruct_1.boolean(),
262
+ });
263
+ exports.DryRunTransactionBlockResponse = superstruct_1.object({
264
+ effects: exports.TransactionEffects,
265
+ events: exports.TransactionEvents,
266
+ objectChanges: superstruct_1.array(exports.SuiObjectChange),
267
+ balanceChanges: superstruct_1.array(exports.BalanceChange),
268
+ });
269
+ /* -------------------------------------------------------------------------- */
270
+ /* Helper functions */
271
+ /* -------------------------------------------------------------------------- */
272
+ function getTransaction(tx) {
273
+ return tx.transaction;
274
+ }
275
+ exports.getTransaction = getTransaction;
276
+ function getTransactionDigest(tx) {
277
+ return tx.digest;
278
+ }
279
+ exports.getTransactionDigest = getTransactionDigest;
280
+ function getTransactionSignature(tx) {
281
+ var _a;
282
+ return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.txSignatures;
283
+ }
284
+ exports.getTransactionSignature = getTransactionSignature;
285
+ /* ----------------------------- TransactionData ---------------------------- */
286
+ function getTransactionSender(tx) {
287
+ var _a;
288
+ return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.data.sender;
289
+ }
290
+ exports.getTransactionSender = getTransactionSender;
291
+ function getGasData(tx) {
292
+ var _a;
293
+ return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.data.gasData;
294
+ }
295
+ exports.getGasData = getGasData;
296
+ function getTransactionGasObject(tx) {
297
+ var _a;
298
+ return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.payment;
299
+ }
300
+ exports.getTransactionGasObject = getTransactionGasObject;
301
+ function getTransactionGasPrice(tx) {
302
+ var _a;
303
+ return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.price;
304
+ }
305
+ exports.getTransactionGasPrice = getTransactionGasPrice;
306
+ function getTransactionGasBudget(tx) {
307
+ var _a;
308
+ return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.budget;
309
+ }
310
+ exports.getTransactionGasBudget = getTransactionGasBudget;
311
+ function getChangeEpochTransaction(data) {
312
+ return data.kind === 'ChangeEpoch' ? data : undefined;
313
+ }
314
+ exports.getChangeEpochTransaction = getChangeEpochTransaction;
315
+ function getConsensusCommitPrologueTransaction(data) {
316
+ return data.kind === 'ConsensusCommitPrologue' ? data : undefined;
317
+ }
318
+ exports.getConsensusCommitPrologueTransaction = getConsensusCommitPrologueTransaction;
319
+ function getTransactionKind(data) {
320
+ var _a;
321
+ return (_a = data.transaction) === null || _a === void 0 ? void 0 : _a.data.transaction;
322
+ }
323
+ exports.getTransactionKind = getTransactionKind;
324
+ function getTransactionKindName(data) {
325
+ return data.kind;
326
+ }
327
+ exports.getTransactionKindName = getTransactionKindName;
328
+ function getProgrammableTransaction(data) {
329
+ return data.kind === 'ProgrammableTransaction' ? data : undefined;
330
+ }
331
+ exports.getProgrammableTransaction = getProgrammableTransaction;
332
+ /* ----------------------------- ExecutionStatus ---------------------------- */
333
+ function getExecutionStatusType(data) {
334
+ var _a;
335
+ return (_a = getExecutionStatus(data)) === null || _a === void 0 ? void 0 : _a.status;
336
+ }
337
+ exports.getExecutionStatusType = getExecutionStatusType;
338
+ function getExecutionStatus(data) {
339
+ var _a;
340
+ return (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.status;
341
+ }
342
+ exports.getExecutionStatus = getExecutionStatus;
343
+ function getExecutionStatusError(data) {
344
+ var _a;
345
+ return (_a = getExecutionStatus(data)) === null || _a === void 0 ? void 0 : _a.error;
346
+ }
347
+ exports.getExecutionStatusError = getExecutionStatusError;
348
+ function getExecutionStatusGasSummary(data) {
349
+ var _a;
350
+ if (superstruct_1.is(data, exports.TransactionEffects)) {
351
+ return data.gasUsed;
352
+ }
353
+ return (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.gasUsed;
354
+ }
355
+ exports.getExecutionStatusGasSummary = getExecutionStatusGasSummary;
356
+ function getTotalGasUsed(data) {
357
+ const gasSummary = getExecutionStatusGasSummary(data);
358
+ return gasSummary
359
+ ? BigInt(gasSummary.computationCost) + BigInt(gasSummary.storageCost) - BigInt(gasSummary.storageRebate)
360
+ : undefined;
361
+ }
362
+ exports.getTotalGasUsed = getTotalGasUsed;
363
+ function getTotalGasUsedUpperBound(data) {
364
+ const gasSummary = getExecutionStatusGasSummary(data);
365
+ return gasSummary ? BigInt(gasSummary.computationCost) + BigInt(gasSummary.storageCost) : undefined;
366
+ }
367
+ exports.getTotalGasUsedUpperBound = getTotalGasUsedUpperBound;
368
+ function getTransactionEffects(data) {
369
+ return data.effects;
370
+ }
371
+ exports.getTransactionEffects = getTransactionEffects;
372
+ /* ---------------------------- Transaction Effects --------------------------- */
373
+ function getEvents(data) {
374
+ return data.events;
375
+ }
376
+ exports.getEvents = getEvents;
377
+ function getCreatedObjects(data) {
378
+ var _a;
379
+ return (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.created;
380
+ }
381
+ exports.getCreatedObjects = getCreatedObjects;
382
+ /* --------------------------- TransactionResponse -------------------------- */
383
+ function getTimestampFromTransactionResponse(data) {
384
+ var _a;
385
+ return (_a = data.timestampMs) !== null && _a !== void 0 ? _a : undefined;
386
+ }
387
+ exports.getTimestampFromTransactionResponse = getTimestampFromTransactionResponse;
388
+ /**
389
+ * Get the newly created coin refs after a split.
390
+ */
391
+ function getNewlyCreatedCoinRefsAfterSplit(data) {
392
+ var _a, _b;
393
+ return (_b = (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.created) === null || _b === void 0 ? void 0 : _b.map((c) => c.reference);
394
+ }
395
+ exports.getNewlyCreatedCoinRefsAfterSplit = getNewlyCreatedCoinRefsAfterSplit;
396
+ function getObjectChanges(data) {
397
+ return data.objectChanges;
398
+ }
399
+ exports.getObjectChanges = getObjectChanges;
400
+ function getPublishedObjectChanges(data) {
401
+ var _a, _b;
402
+ return (_b = (_a = data.objectChanges) === null || _a === void 0 ? void 0 : _a.filter((a) => superstruct_1.is(a, exports.SuiObjectChangePublished))) !== null && _b !== void 0 ? _b : [];
403
+ }
404
+ exports.getPublishedObjectChanges = getPublishedObjectChanges;
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvdHJhbnNhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FjcUI7QUFFckIscUNBUWtCO0FBQ2xCLHFDQUFvQztBQUNwQyx1Q0FBbUY7QUFFdEUsUUFBQSxPQUFPLEdBQUcsb0JBQU0sRUFBRSxDQUFDO0FBRW5CLFFBQUEsY0FBYyxHQUFHLG9CQUFNLENBQUM7SUFDbkMsS0FBSyxFQUFFLGVBQU87SUFDZCxjQUFjLEVBQUUsb0JBQU0sRUFBRTtJQUN4QixrQkFBa0IsRUFBRSxvQkFBTSxFQUFFO0lBQzVCLGNBQWMsRUFBRSxvQkFBTSxFQUFFO0lBQ3hCLHdCQUF3QixFQUFFLHNCQUFRLENBQUMsb0JBQU0sRUFBRSxDQUFDO0NBQzdDLENBQUMsQ0FBQztBQUdVLFFBQUEsMEJBQTBCLEdBQUcsb0JBQU0sQ0FBQztJQUMvQyxLQUFLLEVBQUUsb0JBQU0sRUFBRTtJQUNmLEtBQUssRUFBRSxvQkFBTSxFQUFFO0lBQ2YsbUJBQW1CLEVBQUUsb0JBQU0sRUFBRTtDQUM5QixDQUFDLENBQUM7QUFHVSxRQUFBLE9BQU8sR0FBRyxvQkFBTSxDQUFDO0lBQzVCLE9BQU8sRUFBRSxtQkFBSyxDQUFDLGlCQUFRLENBQUM7Q0FDekIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxXQUFXLEdBQUcsbUJBQUssQ0FBQztJQUMvQixxQkFBTyxDQUFDLFNBQVMsQ0FBQztJQUNsQixvQkFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLG9CQUFNLEVBQUUsRUFBRSxDQUFDO0lBQzNCLG9CQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsb0JBQU0sRUFBRSxFQUFFLENBQUM7SUFDNUIsb0JBQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxtQkFBSyxDQUFDLENBQUMsb0JBQU0sRUFBRSxFQUFFLG9CQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUN0RCxDQUFDLENBQUM7QUFHVSxRQUFBLHNCQUFzQixHQUFHLG9CQUFNLENBQUM7SUFDM0MsU0FBUyxFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxtQkFBVyxDQUFDLENBQUM7SUFDdkMsY0FBYyxFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxvQkFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QyxPQUFPLEVBQUUsaUJBQVE7SUFDakIsTUFBTSxFQUFFLG9CQUFNLEVBQUU7SUFDaEIsUUFBUSxFQUFFLG9CQUFNLEVBQUU7Q0FDbkIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxjQUFjLEdBQUcsbUJBQUssQ0FBQztJQUNsQyxvQkFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLDhCQUFzQixFQUFFLENBQUM7SUFDNUMsb0JBQU0sQ0FBQyxFQUFFLGVBQWUsRUFBRSxtQkFBSyxDQUFDLENBQUMsbUJBQUssQ0FBQyxtQkFBVyxDQUFDLEVBQUUsbUJBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxvQkFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLG1CQUFLLENBQUMsQ0FBQyxtQkFBVyxFQUFFLG1CQUFLLENBQUMsbUJBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hFLG9CQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsbUJBQUssQ0FBQyxDQUFDLG1CQUFXLEVBQUUsbUJBQUssQ0FBQyxtQkFBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEUsb0JBQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBYyxFQUFFLENBQUM7SUFDbkMsb0JBQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxtQkFBSyxDQUFDLENBQUMsc0JBQVEsQ0FBQyxvQkFBTSxFQUFFLENBQUMsRUFBRSxtQkFBSyxDQUFDLG1CQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUN6RSxDQUFDLENBQUM7QUFFVSxRQUFBLFVBQVUsR0FBRyxtQkFBSyxDQUFDO0lBQzlCLG9CQUFNLENBQUM7UUFDTCxJQUFJLEVBQUUscUJBQU8sQ0FBQyxNQUFNLENBQUM7UUFDckIsU0FBUyxFQUFFLHNCQUFRLENBQUMsb0JBQU0sRUFBRSxDQUFDO1FBQzdCLEtBQUssRUFBRSxxQkFBWTtLQUNwQixDQUFDO0lBQ0Ysb0JBQU0sQ0FBQztRQUNMLElBQUksRUFBRSxxQkFBTyxDQUFDLFFBQVEsQ0FBQztRQUN2QixVQUFVLEVBQUUscUJBQU8sQ0FBQyxrQkFBa0IsQ0FBQztRQUN2QyxRQUFRLEVBQUUsaUJBQVE7UUFDbEIsT0FBTyxFQUFFLHVCQUFjO1FBQ3ZCLE1BQU0sRUFBRSxzQkFBWTtLQUNyQixDQUFDO0lBQ0Ysb0JBQU0sQ0FBQztRQUNMLElBQUksRUFBRSxxQkFBTyxDQUFDLFFBQVEsQ0FBQztRQUN2QixVQUFVLEVBQUUscUJBQU8sQ0FBQyxjQUFjLENBQUM7UUFDbkMsUUFBUSxFQUFFLGlCQUFRO1FBQ2xCLG9CQUFvQixFQUFFLHVCQUFjO1FBQ3BDLE9BQU8sRUFBRSxxQkFBTyxFQUFFO0tBQ25CLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFHVSxRQUFBLHVCQUF1QixHQUFHLG9CQUFNLENBQUM7SUFDNUMsWUFBWSxFQUFFLG1CQUFLLENBQUMsc0JBQWMsQ0FBQztJQUNuQyxNQUFNLEVBQUUsbUJBQUssQ0FBQyxrQkFBVSxDQUFDO0NBQzFCLENBQUMsQ0FBQztBQWlCVSxRQUFBLHVCQUF1QixHQUFHLG1CQUFLLENBQUM7SUFDM0Msb0JBQU0sQ0FBQyxzQkFBYyxFQUFFLG9CQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEUsb0JBQU0sQ0FDSixrQ0FBMEIsRUFDMUIsb0JBQU0sQ0FBQztRQUNMLElBQUksRUFBRSxxQkFBTyxDQUFDLHlCQUF5QixDQUFDO0tBQ3pDLENBQUMsQ0FDSDtJQUNELG9CQUFNLENBQUMsZUFBTyxFQUFFLG9CQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckQsb0JBQU0sQ0FBQywrQkFBdUIsRUFBRSxvQkFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFPLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDdEYsQ0FBQyxDQUFDO0FBR1UsUUFBQSx1QkFBdUIsR0FBRyxvQkFBTSxDQUFDO0lBQzVDLHVFQUF1RTtJQUN2RSxjQUFjLEVBQUUscUJBQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsV0FBVyxFQUFFLCtCQUF1QjtJQUNwQyxNQUFNLEVBQUUsbUJBQVU7SUFDbEIsT0FBTyxFQUFFLG9CQUFVO0NBQ3BCLENBQUMsQ0FBQztBQUdVLFFBQUEsa0JBQWtCLEdBQUcsb0JBQU0sRUFBRSxDQUFDO0FBQzlCLFFBQUEseUJBQXlCLEdBQUcsbUJBQUssQ0FBQyxDQUFDLDBCQUFrQixFQUFFLG1CQUFLLENBQUMsMEJBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFbkYsUUFBQSx1QkFBdUIsR0FBRyxvQkFBTSxDQUFDO0lBQzVDLEtBQUssRUFBRSxlQUFPO0lBQ2QsU0FBUyxFQUFFLGlDQUF5QjtJQUNwQyxXQUFXLEVBQUUsbUJBQUssQ0FBQyxvQkFBTSxFQUFFLENBQUM7Q0FDN0IsQ0FBQyxDQUFDO0FBR1UsUUFBQSxjQUFjLEdBQUcsb0JBQU0sQ0FBQztJQUNuQyxlQUFlLEVBQUUsb0JBQU0sRUFBRTtJQUN6QixXQUFXLEVBQUUsb0JBQU0sRUFBRTtJQUNyQixhQUFhLEVBQUUsb0JBQU0sRUFBRTtJQUN2Qix1QkFBdUIsRUFBRSxvQkFBTSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUdVLFFBQUEsbUJBQW1CLEdBQUcsbUJBQUssQ0FBQyxDQUFDLHFCQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUscUJBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFHdEUsUUFBQSxlQUFlLEdBQUcsb0JBQU0sQ0FBQztJQUNwQyxNQUFNLEVBQUUsMkJBQW1CO0lBQzNCLEtBQUssRUFBRSxzQkFBUSxDQUFDLG9CQUFNLEVBQUUsQ0FBQztDQUMxQixDQUFDLENBQUM7QUFHVSxRQUFBLGNBQWMsR0FBRyxvQkFBTSxDQUFDO0lBQ25DLEtBQUssRUFBRSxvQkFBVztJQUNsQixTQUFTLEVBQUUsc0JBQVk7Q0FDeEIsQ0FBQyxDQUFDO0FBRVUsUUFBQSxvQ0FBb0MsR0FBRyxvQkFBTSxDQUFDO0lBQ3pELFFBQVEsRUFBRSxpQkFBUTtJQUNsQixjQUFjLEVBQUUsdUJBQWM7Q0FDL0IsQ0FBQyxDQUFDO0FBRVUsUUFBQSxrQkFBa0IsR0FBRyxvQkFBTSxDQUFDO0lBQ3ZDLHVFQUF1RTtJQUN2RSxjQUFjLEVBQUUscUJBQU8sQ0FBQyxJQUFJLENBQUM7SUFFN0Isa0NBQWtDO0lBQ2xDLE1BQU0sRUFBRSx1QkFBZTtJQUN2QixtREFBbUQ7SUFDbkQsYUFBYSxFQUFFLGVBQU87SUFDdEIsbUhBQW1IO0lBQ25ILGtCQUFrQixFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyw0Q0FBb0MsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sRUFBRSxzQkFBYztJQUN2QixrSEFBa0g7SUFDbEgsYUFBYSxFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxzQkFBWSxDQUFDLENBQUM7SUFDNUMsNkJBQTZCO0lBQzdCLGlCQUFpQixFQUFFLDBCQUFpQjtJQUNwQyxpREFBaUQ7SUFDakQsT0FBTyxFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxzQkFBYyxDQUFDLENBQUM7SUFDeEMsbUVBQW1FO0lBQ25FLE9BQU8sRUFBRSxzQkFBUSxDQUFDLG1CQUFLLENBQUMsc0JBQWMsQ0FBQyxDQUFDO0lBQ3hDOzs7O09BSUc7SUFDSCxTQUFTLEVBQUUsc0JBQVEsQ0FBQyxtQkFBSyxDQUFDLHNCQUFjLENBQUMsQ0FBQztJQUMxQyx3REFBd0Q7SUFDeEQsT0FBTyxFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxzQkFBWSxDQUFDLENBQUM7SUFDdEMsd0RBQXdEO0lBQ3hELHNCQUFzQixFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxzQkFBWSxDQUFDLENBQUM7SUFDckQsMERBQTBEO0lBQzFELE9BQU8sRUFBRSxzQkFBUSxDQUFDLG1CQUFLLENBQUMsc0JBQVksQ0FBQyxDQUFDO0lBQ3RDOzs7T0FHRztJQUNILFNBQVMsRUFBRSxzQkFBYztJQUN6Qiw4RkFBOEY7SUFDOUYsWUFBWSxFQUFFLHNCQUFRLENBQUMsK0JBQXNCLENBQUM7SUFDOUMsaUVBQWlFO0lBQ2pFLFlBQVksRUFBRSxzQkFBUSxDQUFDLG1CQUFLLENBQUMsMEJBQWlCLENBQUMsQ0FBQztDQUNqRCxDQUFDLENBQUM7QUFHVSxRQUFBLGlCQUFpQixHQUFHLG1CQUFLLENBQUMsaUJBQVEsQ0FBQyxDQUFDO0FBR2pELE1BQU0sZUFBZSxHQUFHLG1CQUFLLENBQUMsQ0FBQyxtQkFBSyxDQUFDLG9CQUFNLEVBQUUsQ0FBQyxFQUFFLG9CQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsTUFBTSwwQkFBMEIsR0FBRyxtQkFBSyxDQUFDLENBQUMsbUJBQVcsRUFBRSxtQkFBSyxDQUFDLG9CQUFNLEVBQUUsQ0FBQyxFQUFFLG9CQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkYsTUFBTSxtQkFBbUIsR0FBRyxvQkFBTSxDQUFDO0lBQ2pDLHVCQUF1QixFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3BFLFlBQVksRUFBRSxzQkFBUSxDQUFDLG1CQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7Q0FDL0MsQ0FBQyxDQUFDO0FBRVUsUUFBQSxpQkFBaUIsR0FBRyxvQkFBTSxDQUFDO0lBQ3RDLE9BQU8sRUFBRSwwQkFBa0I7SUFDM0IsTUFBTSxFQUFFLHlCQUFpQjtJQUN6QixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxtQkFBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDN0MsS0FBSyxFQUFFLHNCQUFRLENBQUMsb0JBQU0sRUFBRSxDQUFDO0NBQzFCLENBQUMsQ0FBQztBQXVCVSxRQUFBLGFBQWEsR0FBRyxvQkFBTSxFQUFFLENBQUM7QUFFekIsUUFBQSxtQkFBbUIsR0FBRyxvQkFBTSxDQUFDO0lBQ3hDLElBQUksRUFBRSwrQkFBdUI7SUFDN0IsWUFBWSxFQUFFLG1CQUFLLENBQUMsb0JBQU0sRUFBRSxDQUFDO0NBQzlCLENBQUMsQ0FBQztBQUdVLFFBQUEsd0JBQXdCLEdBQUcsb0JBQU0sQ0FBQztJQUM3QyxJQUFJLEVBQUUscUJBQU8sQ0FBQyxXQUFXLENBQUM7SUFDMUIsU0FBUyxFQUFFLGlCQUFRO0lBQ25CLE9BQU8sRUFBRSx1QkFBYztJQUN2QixNQUFNLEVBQUUsc0JBQVk7SUFDcEIsT0FBTyxFQUFFLG1CQUFLLENBQUMsb0JBQU0sRUFBRSxDQUFDO0NBQ3pCLENBQUMsQ0FBQztBQUdVLFFBQUEsMEJBQTBCLEdBQUcsb0JBQU0sQ0FBQztJQUMvQyxJQUFJLEVBQUUscUJBQU8sQ0FBQyxhQUFhLENBQUM7SUFDNUIsTUFBTSxFQUFFLG1CQUFVO0lBQ2xCLFNBQVMsRUFBRSxvQkFBVztJQUN0QixVQUFVLEVBQUUsb0JBQU0sRUFBRTtJQUNwQixRQUFRLEVBQUUsaUJBQVE7SUFDbEIsT0FBTyxFQUFFLHVCQUFjO0lBQ3ZCLE1BQU0sRUFBRSxzQkFBWTtDQUNyQixDQUFDLENBQUM7QUFHVSxRQUFBLHNCQUFzQixHQUFHLG9CQUFNLENBQUM7SUFDM0MsSUFBSSxFQUFFLHFCQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3hCLE1BQU0sRUFBRSxtQkFBVTtJQUNsQixLQUFLLEVBQUUsb0JBQVc7SUFDbEIsVUFBVSxFQUFFLG9CQUFNLEVBQUU7SUFDcEIsUUFBUSxFQUFFLGlCQUFRO0lBQ2xCLE9BQU8sRUFBRSx1QkFBYztJQUN2QixlQUFlLEVBQUUsdUJBQWM7SUFDL0IsTUFBTSxFQUFFLHNCQUFZO0NBQ3JCLENBQUMsQ0FBQztBQUdVLFFBQUEsc0JBQXNCLEdBQUcsb0JBQU0sQ0FBQztJQUMzQyxJQUFJLEVBQUUscUJBQU8sQ0FBQyxTQUFTLENBQUM7SUFDeEIsTUFBTSxFQUFFLG1CQUFVO0lBQ2xCLFVBQVUsRUFBRSxvQkFBTSxFQUFFO0lBQ3BCLFFBQVEsRUFBRSxpQkFBUTtJQUNsQixPQUFPLEVBQUUsdUJBQWM7Q0FDeEIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxzQkFBc0IsR0FBRyxvQkFBTSxDQUFDO0lBQzNDLElBQUksRUFBRSxxQkFBTyxDQUFDLFNBQVMsQ0FBQztJQUN4QixNQUFNLEVBQUUsbUJBQVU7SUFDbEIsVUFBVSxFQUFFLG9CQUFNLEVBQUU7SUFDcEIsUUFBUSxFQUFFLGlCQUFRO0lBQ2xCLE9BQU8sRUFBRSx1QkFBYztDQUN4QixDQUFDLENBQUM7QUFHVSxRQUFBLHNCQUFzQixHQUFHLG9CQUFNLENBQUM7SUFDM0MsSUFBSSxFQUFFLHFCQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3hCLE1BQU0sRUFBRSxtQkFBVTtJQUNsQixLQUFLLEVBQUUsb0JBQVc7SUFDbEIsVUFBVSxFQUFFLG9CQUFNLEVBQUU7SUFDcEIsUUFBUSxFQUFFLGlCQUFRO0lBQ2xCLE9BQU8sRUFBRSx1QkFBYztJQUN2QixNQUFNLEVBQUUsc0JBQVk7Q0FDckIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxlQUFlLEdBQUcsbUJBQUssQ0FBQztJQUNuQyxnQ0FBd0I7SUFDeEIsa0NBQTBCO0lBQzFCLDhCQUFzQjtJQUN0Qiw4QkFBc0I7SUFDdEIsOEJBQXNCO0lBQ3RCLDhCQUFzQjtDQUN2QixDQUFDLENBQUM7QUFHVSxRQUFBLGFBQWEsR0FBRyxvQkFBTSxDQUFDO0lBQ2xDLEtBQUssRUFBRSxvQkFBVztJQUNsQixRQUFRLEVBQUUsb0JBQU0sRUFBRTtJQUNsQixzRUFBc0U7SUFDdEUsTUFBTSxFQUFFLG9CQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFDO0FBRVUsUUFBQSwyQkFBMkIsR0FBRyxvQkFBTSxDQUFDO0lBQ2hELE1BQU0sRUFBRSwwQkFBaUI7SUFDekIsV0FBVyxFQUFFLHNCQUFRLENBQUMsMkJBQW1CLENBQUM7SUFDMUMsT0FBTyxFQUFFLHNCQUFRLENBQUMsMEJBQWtCLENBQUM7SUFDckMsTUFBTSxFQUFFLHNCQUFRLENBQUMseUJBQWlCLENBQUM7SUFDbkMsV0FBVyxFQUFFLHNCQUFRLENBQUMsb0JBQU0sRUFBRSxDQUFDO0lBQy9CLFVBQVUsRUFBRSxzQkFBUSxDQUFDLG9CQUFNLEVBQUUsQ0FBQztJQUM5Qix1QkFBdUIsRUFBRSxzQkFBUSxDQUFDLHFCQUFPLEVBQUUsQ0FBQztJQUM1QyxhQUFhLEVBQUUsc0JBQVEsQ0FBQyxtQkFBSyxDQUFDLHVCQUFlLENBQUMsQ0FBQztJQUMvQyxjQUFjLEVBQUUsc0JBQVEsQ0FBQyxtQkFBSyxDQUFDLHFCQUFhLENBQUMsQ0FBQztJQUM5QyxtRUFBbUU7SUFDbkUsTUFBTSxFQUFFLHNCQUFRLENBQUMsbUJBQUssQ0FBQyxvQkFBTSxFQUFFLENBQUMsQ0FBQztDQUNsQyxDQUFDLENBQUM7QUFHVSxRQUFBLGtDQUFrQyxHQUFHLG9CQUFNLENBQUM7SUFDdkQsa0VBQWtFO0lBQ2xFLFNBQVMsRUFBRSxzQkFBUSxDQUFDLHFCQUFPLEVBQUUsQ0FBQztJQUM5QiwrREFBK0Q7SUFDL0QsV0FBVyxFQUFFLHNCQUFRLENBQUMscUJBQU8sRUFBRSxDQUFDO0lBQ2hDLDhEQUE4RDtJQUM5RCxVQUFVLEVBQUUsc0JBQVEsQ0FBQyxxQkFBTyxFQUFFLENBQUM7SUFDL0IsMERBQTBEO0lBQzFELGlCQUFpQixFQUFFLHNCQUFRLENBQUMscUJBQU8sRUFBRSxDQUFDO0lBQ3RDLGdFQUFnRTtJQUNoRSxrQkFBa0IsRUFBRSxzQkFBUSxDQUFDLHFCQUFPLEVBQUUsQ0FBQztDQUN4QyxDQUFDLENBQUM7QUFJVSxRQUFBLDRCQUE0QixHQUFHLG9CQUFNLENBQUM7SUFDakQsSUFBSSxFQUFFLG1CQUFLLENBQUMsbUNBQTJCLENBQUM7SUFDeEMsVUFBVSxFQUFFLG1CQUFLLENBQUMsQ0FBQywwQkFBaUIsRUFBRSxxQkFBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckQsV0FBVyxFQUFFLHFCQUFPLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDO0FBRVUsUUFBQSw4QkFBOEIsR0FBRyxvQkFBTSxDQUFDO0lBQ25ELE9BQU8sRUFBRSwwQkFBa0I7SUFDM0IsTUFBTSxFQUFFLHlCQUFpQjtJQUN6QixhQUFhLEVBQUUsbUJBQUssQ0FBQyx1QkFBZSxDQUFDO0lBQ3JDLGNBQWMsRUFBRSxtQkFBSyxDQUFDLHFCQUFhLENBQUM7Q0FDckMsQ0FBQyxDQUFDO0FBR0gsZ0ZBQWdGO0FBQ2hGLGdGQUFnRjtBQUNoRixnRkFBZ0Y7QUFFaEYsU0FBZ0IsY0FBYyxDQUFDLEVBQStCO0lBQzVELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztBQUN4QixDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxFQUErQjtJQUNsRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDbkIsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsRUFBK0I7O0lBQ3JFLE9BQU8sTUFBQSxFQUFFLENBQUMsV0FBVywwQ0FBRSxZQUFZLENBQUM7QUFDdEMsQ0FBQztBQUZELDBEQUVDO0FBRUQsZ0ZBQWdGO0FBRWhGLFNBQWdCLG9CQUFvQixDQUFDLEVBQStCOztJQUNsRSxPQUFPLE1BQUEsRUFBRSxDQUFDLFdBQVcsMENBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUNyQyxDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixVQUFVLENBQUMsRUFBK0I7O0lBQ3hELE9BQU8sTUFBQSxFQUFFLENBQUMsV0FBVywwQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3RDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLEVBQStCOztJQUNyRSxPQUFPLE1BQUEsVUFBVSxDQUFDLEVBQUUsQ0FBQywwQ0FBRSxPQUFPLENBQUM7QUFDakMsQ0FBQztBQUZELDBEQUVDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsRUFBK0I7O0lBQ3BFLE9BQU8sTUFBQSxVQUFVLENBQUMsRUFBRSxDQUFDLDBDQUFFLEtBQUssQ0FBQztBQUMvQixDQUFDO0FBRkQsd0RBRUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxFQUErQjs7SUFDckUsT0FBTyxNQUFBLFVBQVUsQ0FBQyxFQUFFLENBQUMsMENBQUUsTUFBTSxDQUFDO0FBQ2hDLENBQUM7QUFGRCwwREFFQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLElBQTZCO0lBQ3JFLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3hELENBQUM7QUFGRCw4REFFQztBQUVELFNBQWdCLHFDQUFxQyxDQUNuRCxJQUE2QjtJQUU3QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUsseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3BFLENBQUM7QUFKRCxzRkFJQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLElBQWlDOztJQUNsRSxPQUFPLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztBQUM1QyxDQUFDO0FBRkQsZ0RBRUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxJQUE2QjtJQUNsRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDbkIsQ0FBQztBQUZELHdEQUVDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsSUFBNkI7SUFDdEUsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsZ0VBRUM7QUFFRCxnRkFBZ0Y7QUFFaEYsU0FBZ0Isc0JBQXNCLENBQUMsSUFBaUM7O0lBQ3RFLE9BQU8sTUFBQSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsMENBQUUsTUFBTSxDQUFDO0FBQzFDLENBQUM7QUFGRCx3REFFQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLElBQWlDOztJQUNsRSxPQUFPLE1BQUEscUJBQXFCLENBQUMsSUFBSSxDQUFDLDBDQUFFLE1BQU0sQ0FBQztBQUM3QyxDQUFDO0FBRkQsZ0RBRUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFpQzs7SUFDdkUsT0FBTyxNQUFBLGtCQUFrQixDQUFDLElBQUksQ0FBQywwQ0FBRSxLQUFLLENBQUM7QUFDekMsQ0FBQztBQUZELDBEQUVDO0FBRUQsU0FBZ0IsNEJBQTRCLENBQzFDLElBQXNEOztJQUV0RCxJQUFJLGdCQUFFLENBQUMsSUFBSSxFQUFFLDBCQUFrQixDQUFDLEVBQUU7UUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0tBQ3JCO0lBQ0QsT0FBTyxNQUFBLHFCQUFxQixDQUFDLElBQUksQ0FBQywwQ0FBRSxPQUFPLENBQUM7QUFDOUMsQ0FBQztBQVBELG9FQU9DO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLElBQXNEO0lBQ3BGLE1BQU0sVUFBVSxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE9BQU8sVUFBVTtRQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDeEcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBTEQsMENBS0M7QUFFRCxTQUFnQix5QkFBeUIsQ0FBQyxJQUFzRDtJQUM5RixNQUFNLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDdEcsQ0FBQztBQUhELDhEQUdDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsSUFBaUM7SUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3RCLENBQUM7QUFGRCxzREFFQztBQUVELGtGQUFrRjtBQUVsRixTQUFnQixTQUFTLENBQUMsSUFBaUM7SUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3JCLENBQUM7QUFGRCw4QkFFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLElBQWlDOztJQUNqRSxPQUFPLE1BQUEscUJBQXFCLENBQUMsSUFBSSxDQUFDLDBDQUFFLE9BQU8sQ0FBQztBQUM5QyxDQUFDO0FBRkQsOENBRUM7QUFFRCxnRkFBZ0Y7QUFFaEYsU0FBZ0IsbUNBQW1DLENBQUMsSUFBaUM7O0lBQ25GLE9BQU8sTUFBQSxJQUFJLENBQUMsV0FBVyxtQ0FBSSxTQUFTLENBQUM7QUFDdkMsQ0FBQztBQUZELGtGQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQ0FBaUMsQ0FBQyxJQUFpQzs7SUFDakYsT0FBTyxNQUFBLE1BQUEscUJBQXFCLENBQUMsSUFBSSxDQUFDLDBDQUFFLE9BQU8sMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUZELDhFQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBaUM7SUFDaEUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0FBQzVCLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLElBQWlDOztJQUN6RSxPQUFPLE1BQUMsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFFLENBQUMsQ0FBQyxFQUFFLGdDQUF3QixDQUFDLENBQWdDLG1DQUFJLEVBQUUsQ0FBQztBQUNsSCxDQUFDO0FBRkQsOERBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpcyxcbiAgYXJyYXksXG4gIEluZmVyLFxuICBsaXRlcmFsLFxuICBudW1iZXIsXG4gIG9iamVjdCxcbiAgb3B0aW9uYWwsXG4gIHN0cmluZyxcbiAgdW5pb24sXG4gIGJvb2xlYW4sXG4gIHR1cGxlLFxuICBhc3NpZ24sXG4gIG51bGxhYmxlLFxufSBmcm9tICdzdXBlcnN0cnVjdCc7XG5cbmltcG9ydCB7XG4gIE9iamVjdElkLFxuICBPYmplY3RPd25lcixcbiAgU2VxdWVuY2VOdW1iZXIsXG4gIFN1aUFkZHJlc3MsXG4gIFN1aUpzb25WYWx1ZSxcbiAgVHJhbnNhY3Rpb25EaWdlc3QsXG4gIFRyYW5zYWN0aW9uRXZlbnREaWdlc3QsXG59IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFN1aUV2ZW50IH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgT2JqZWN0RGlnZXN0LCBTdWlHYXNEYXRhLCBTdWlNb3ZlUGFja2FnZSwgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi9vYmplY3RzJztcblxuZXhwb3J0IGNvbnN0IEVwb2NoSWQgPSBzdHJpbmcoKTtcblxuZXhwb3J0IGNvbnN0IFN1aUNoYW5nZUVwb2NoID0gb2JqZWN0KHtcbiAgZXBvY2g6IEVwb2NoSWQsXG4gIHN0b3JhZ2VfY2hhcmdlOiBudW1iZXIoKSxcbiAgY29tcHV0YXRpb25fY2hhcmdlOiBudW1iZXIoKSxcbiAgc3RvcmFnZV9yZWJhdGU6IG51bWJlcigpLFxuICBlcG9jaF9zdGFydF90aW1lc3RhbXBfbXM6IG9wdGlvbmFsKG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpQ2hhbmdlRXBvY2ggPSBJbmZlcjx0eXBlb2YgU3VpQ2hhbmdlRXBvY2g+O1xuXG5leHBvcnQgY29uc3QgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgPSBvYmplY3Qoe1xuICBlcG9jaDogbnVtYmVyKCksXG4gIHJvdW5kOiBudW1iZXIoKSxcbiAgY29tbWl0X3RpbWVzdGFtcF9tczogbnVtYmVyKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlID0gSW5mZXI8dHlwZW9mIFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlPjtcblxuZXhwb3J0IGNvbnN0IEdlbmVzaXMgPSBvYmplY3Qoe1xuICBvYmplY3RzOiBhcnJheShPYmplY3RJZCksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmVzaXMgPSBJbmZlcjx0eXBlb2YgR2VuZXNpcz47XG5cbmV4cG9ydCBjb25zdCBTdWlBcmd1bWVudCA9IHVuaW9uKFtcbiAgbGl0ZXJhbCgnR2FzQ29pbicpLFxuICBvYmplY3QoeyBJbnB1dDogbnVtYmVyKCkgfSksXG4gIG9iamVjdCh7IFJlc3VsdDogbnVtYmVyKCkgfSksXG4gIG9iamVjdCh7IE5lc3RlZFJlc3VsdDogdHVwbGUoW251bWJlcigpLCBudW1iZXIoKV0pIH0pLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlBcmd1bWVudCA9IEluZmVyPHR5cGVvZiBTdWlBcmd1bWVudD47XG5cbmV4cG9ydCBjb25zdCBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAgYXJndW1lbnRzOiBvcHRpb25hbChhcnJheShTdWlBcmd1bWVudCkpLFxuICB0eXBlX2FyZ3VtZW50czogb3B0aW9uYWwoYXJyYXkoc3RyaW5nKCkpKSxcbiAgcGFja2FnZTogT2JqZWN0SWQsXG4gIG1vZHVsZTogc3RyaW5nKCksXG4gIGZ1bmN0aW9uOiBzdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgTW92ZUNhbGxTdWlUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uPjtcblxuZXhwb3J0IGNvbnN0IFN1aVRyYW5zYWN0aW9uID0gdW5pb24oW1xuICBvYmplY3QoeyBNb3ZlQ2FsbDogTW92ZUNhbGxTdWlUcmFuc2FjdGlvbiB9KSxcbiAgb2JqZWN0KHsgVHJhbnNmZXJPYmplY3RzOiB0dXBsZShbYXJyYXkoU3VpQXJndW1lbnQpLCBTdWlBcmd1bWVudF0pIH0pLFxuICBvYmplY3QoeyBTcGxpdENvaW5zOiB0dXBsZShbU3VpQXJndW1lbnQsIGFycmF5KFN1aUFyZ3VtZW50KV0pIH0pLFxuICBvYmplY3QoeyBNZXJnZUNvaW5zOiB0dXBsZShbU3VpQXJndW1lbnQsIGFycmF5KFN1aUFyZ3VtZW50KV0pIH0pLFxuICBvYmplY3QoeyBQdWJsaXNoOiBTdWlNb3ZlUGFja2FnZSB9KSxcbiAgb2JqZWN0KHsgTWFrZU1vdmVWZWM6IHR1cGxlKFtudWxsYWJsZShzdHJpbmcoKSksIGFycmF5KFN1aUFyZ3VtZW50KV0pIH0pLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBTdWlDYWxsQXJnID0gdW5pb24oW1xuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ3B1cmUnKSxcbiAgICB2YWx1ZVR5cGU6IG9wdGlvbmFsKHN0cmluZygpKSxcbiAgICB2YWx1ZTogU3VpSnNvblZhbHVlLFxuICB9KSxcbiAgb2JqZWN0KHtcbiAgICB0eXBlOiBsaXRlcmFsKCdvYmplY3QnKSxcbiAgICBvYmplY3RUeXBlOiBsaXRlcmFsKCdpbW1Pck93bmVkT2JqZWN0JyksXG4gICAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICAgIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICAgIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxuICB9KSxcbiAgb2JqZWN0KHtcbiAgICB0eXBlOiBsaXRlcmFsKCdvYmplY3QnKSxcbiAgICBvYmplY3RUeXBlOiBsaXRlcmFsKCdzaGFyZWRPYmplY3QnKSxcbiAgICBvYmplY3RJZDogT2JqZWN0SWQsXG4gICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICAgIG11dGFibGU6IGJvb2xlYW4oKSxcbiAgfSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aUNhbGxBcmcgPSBJbmZlcjx0eXBlb2YgU3VpQ2FsbEFyZz47XG5cbmV4cG9ydCBjb25zdCBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiA9IG9iamVjdCh7XG4gIHRyYW5zYWN0aW9uczogYXJyYXkoU3VpVHJhbnNhY3Rpb24pLFxuICBpbnB1dHM6IGFycmF5KFN1aUNhbGxBcmcpLFxufSk7XG5leHBvcnQgdHlwZSBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj47XG5leHBvcnQgdHlwZSBTdWlUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbj47XG5cbi8qKlxuICogMS4gV2FpdEZvckVmZmVjdHNDZXJ0OiB3YWl0cyBmb3IgVHJhbnNhY3Rpb25FZmZlY3RzQ2VydCBhbmQgdGhlbiByZXR1cm5zIHRvIHRoZSBjbGllbnQuXG4gKiAgICBUaGlzIG1vZGUgaXMgYSBwcm94eSBmb3IgdHJhbnNhY3Rpb24gZmluYWxpdHkuXG4gKiAyLiBXYWl0Rm9yTG9jYWxFeGVjdXRpb246IHdhaXRzIGZvciBUcmFuc2FjdGlvbkVmZmVjdHNDZXJ0IGFuZCBtYWtlcyBzdXJlIHRoZSBub2RlXG4gKiAgICBleGVjdXRlZCB0aGUgdHJhbnNhY3Rpb24gbG9jYWxseSBiZWZvcmUgcmV0dXJuaW5nIHRvIHRoZSBjbGllbnQuIFRoZSBsb2NhbCBleGVjdXRpb25cbiAqICAgIG1ha2VzIHN1cmUgdGhpcyBub2RlIGlzIGF3YXJlIG9mIHRoaXMgdHJhbnNhY3Rpb24gd2hlbiB0aGUgY2xpZW50IGZpcmVzIHN1YnNlcXVlbnQgcXVlcmllcy5cbiAqICAgIEhvd2V2ZXIsIGlmIHRoZSBub2RlIGZhaWxzIHRvIGV4ZWN1dGUgdGhlIHRyYW5zYWN0aW9uIGxvY2FsbHkgaW4gYSB0aW1lbHkgbWFubmVyLFxuICogICAgYSBib29sIHR5cGUgaW4gdGhlIHJlc3BvbnNlIGlzIHNldCB0byBmYWxzZSB0byBpbmRpY2F0ZSB0aGUgY2FzZS5cbiAqL1xuZXhwb3J0IHR5cGUgRXhlY3V0ZVRyYW5zYWN0aW9uUmVxdWVzdFR5cGUgPSAnV2FpdEZvckVmZmVjdHNDZXJ0JyB8ICdXYWl0Rm9yTG9jYWxFeGVjdXRpb24nO1xuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbktpbmROYW1lID0gJ0NoYW5nZUVwb2NoJyB8ICdDb25zZW5zdXNDb21taXRQcm9sb2d1ZScgfCAnR2VuZXNpcycgfCAnUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQgPSB1bmlvbihbXG4gIGFzc2lnbihTdWlDaGFuZ2VFcG9jaCwgb2JqZWN0KHsga2luZDogbGl0ZXJhbCgnQ2hhbmdlRXBvY2gnKSB9KSksXG4gIGFzc2lnbihcbiAgICBTdWlDb25zZW5zdXNDb21taXRQcm9sb2d1ZSxcbiAgICBvYmplY3Qoe1xuICAgICAga2luZDogbGl0ZXJhbCgnQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUnKSxcbiAgICB9KVxuICApLFxuICBhc3NpZ24oR2VuZXNpcywgb2JqZWN0KHsga2luZDogbGl0ZXJhbCgnR2VuZXNpcycpIH0pKSxcbiAgYXNzaWduKFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbicpIH0pKSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQ+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGEgPSBvYmplY3Qoe1xuICAvLyBFdmVudHVhbGx5IHRoaXMgd2lsbCBiZWNvbWUgdW5pb24obGl0ZXJhbCgndjEnKSwgbGl0ZXJhbCgndjInKSwgLi4uKVxuICBtZXNzYWdlVmVyc2lvbjogbGl0ZXJhbCgndjEnKSxcbiAgdHJhbnNhY3Rpb246IFN1aVRyYW5zYWN0aW9uQmxvY2tLaW5kLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIGdhc0RhdGE6IFN1aUdhc0RhdGEsXG59KTtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tEYXRhID0gSW5mZXI8dHlwZW9mIFN1aVRyYW5zYWN0aW9uQmxvY2tEYXRhPjtcblxuZXhwb3J0IGNvbnN0IEF1dGhvcml0eVNpZ25hdHVyZSA9IHN0cmluZygpO1xuZXhwb3J0IGNvbnN0IEdlbmVyaWNBdXRob3JpdHlTaWduYXR1cmUgPSB1bmlvbihbQXV0aG9yaXR5U2lnbmF0dXJlLCBhcnJheShBdXRob3JpdHlTaWduYXR1cmUpXSk7XG5cbmV4cG9ydCBjb25zdCBBdXRob3JpdHlRdW9ydW1TaWduSW5mbyA9IG9iamVjdCh7XG4gIGVwb2NoOiBFcG9jaElkLFxuICBzaWduYXR1cmU6IEdlbmVyaWNBdXRob3JpdHlTaWduYXR1cmUsXG4gIHNpZ25lcnNfbWFwOiBhcnJheShudW1iZXIoKSksXG59KTtcbmV4cG9ydCB0eXBlIEF1dGhvcml0eVF1b3J1bVNpZ25JbmZvID0gSW5mZXI8dHlwZW9mIEF1dGhvcml0eVF1b3J1bVNpZ25JbmZvPjtcblxuZXhwb3J0IGNvbnN0IEdhc0Nvc3RTdW1tYXJ5ID0gb2JqZWN0KHtcbiAgY29tcHV0YXRpb25Db3N0OiBzdHJpbmcoKSxcbiAgc3RvcmFnZUNvc3Q6IHN0cmluZygpLFxuICBzdG9yYWdlUmViYXRlOiBzdHJpbmcoKSxcbiAgbm9uUmVmdW5kYWJsZVN0b3JhZ2VGZWU6IHN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBHYXNDb3N0U3VtbWFyeSA9IEluZmVyPHR5cGVvZiBHYXNDb3N0U3VtbWFyeT47XG5cbmV4cG9ydCBjb25zdCBFeGVjdXRpb25TdGF0dXNUeXBlID0gdW5pb24oW2xpdGVyYWwoJ3N1Y2Nlc3MnKSwgbGl0ZXJhbCgnZmFpbHVyZScpXSk7XG5leHBvcnQgdHlwZSBFeGVjdXRpb25TdGF0dXNUeXBlID0gSW5mZXI8dHlwZW9mIEV4ZWN1dGlvblN0YXR1c1R5cGU+O1xuXG5leHBvcnQgY29uc3QgRXhlY3V0aW9uU3RhdHVzID0gb2JqZWN0KHtcbiAgc3RhdHVzOiBFeGVjdXRpb25TdGF0dXNUeXBlLFxuICBlcnJvcjogb3B0aW9uYWwoc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBFeGVjdXRpb25TdGF0dXMgPSBJbmZlcjx0eXBlb2YgRXhlY3V0aW9uU3RhdHVzPjtcblxuZXhwb3J0IGNvbnN0IE93bmVkT2JqZWN0UmVmID0gb2JqZWN0KHtcbiAgb3duZXI6IE9iamVjdE93bmVyLFxuICByZWZlcmVuY2U6IFN1aU9iamVjdFJlZixcbn0pO1xuZXhwb3J0IHR5cGUgT3duZWRPYmplY3RSZWYgPSBJbmZlcjx0eXBlb2YgT3duZWRPYmplY3RSZWY+O1xuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uRWZmZWN0c01vZGlmaWVkQXRWZXJzaW9ucyA9IG9iamVjdCh7XG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgc2VxdWVuY2VOdW1iZXI6IFNlcXVlbmNlTnVtYmVyLFxufSk7XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkVmZmVjdHMgPSBvYmplY3Qoe1xuICAvLyBFdmVudHVhbGx5IHRoaXMgd2lsbCBiZWNvbWUgdW5pb24obGl0ZXJhbCgndjEnKSwgbGl0ZXJhbCgndjInKSwgLi4uKVxuICBtZXNzYWdlVmVyc2lvbjogbGl0ZXJhbCgndjEnKSxcblxuICAvKiogVGhlIHN0YXR1cyBvZiB0aGUgZXhlY3V0aW9uICovXG4gIHN0YXR1czogRXhlY3V0aW9uU3RhdHVzLFxuICAvKiogVGhlIGVwb2NoIHdoZW4gdGhpcyB0cmFuc2FjdGlvbiB3YXMgZXhlY3V0ZWQgKi9cbiAgZXhlY3V0ZWRFcG9jaDogRXBvY2hJZCxcbiAgLyoqIFRoZSB2ZXJzaW9uIHRoYXQgZXZlcnkgbW9kaWZpZWQgKG11dGF0ZWQgb3IgZGVsZXRlZCkgb2JqZWN0IGhhZCBiZWZvcmUgaXQgd2FzIG1vZGlmaWVkIGJ5IHRoaXMgdHJhbnNhY3Rpb24uICoqL1xuICBtb2RpZmllZEF0VmVyc2lvbnM6IG9wdGlvbmFsKGFycmF5KFRyYW5zYWN0aW9uRWZmZWN0c01vZGlmaWVkQXRWZXJzaW9ucykpLFxuICBnYXNVc2VkOiBHYXNDb3N0U3VtbWFyeSxcbiAgLyoqIFRoZSBvYmplY3QgcmVmZXJlbmNlcyBvZiB0aGUgc2hhcmVkIG9iamVjdHMgdXNlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLiBFbXB0eSBpZiBubyBzaGFyZWQgb2JqZWN0cyB3ZXJlIHVzZWQuICovXG4gIHNoYXJlZE9iamVjdHM6IG9wdGlvbmFsKGFycmF5KFN1aU9iamVjdFJlZikpLFxuICAvKiogVGhlIHRyYW5zYWN0aW9uIGRpZ2VzdCAqL1xuICB0cmFuc2FjdGlvbkRpZ2VzdDogVHJhbnNhY3Rpb25EaWdlc3QsXG4gIC8qKiBPYmplY3RSZWYgYW5kIG93bmVyIG9mIG5ldyBvYmplY3RzIGNyZWF0ZWQgKi9cbiAgY3JlYXRlZDogb3B0aW9uYWwoYXJyYXkoT3duZWRPYmplY3RSZWYpKSxcbiAgLyoqIE9iamVjdFJlZiBhbmQgb3duZXIgb2YgbXV0YXRlZCBvYmplY3RzLCBpbmNsdWRpbmcgZ2FzIG9iamVjdCAqL1xuICBtdXRhdGVkOiBvcHRpb25hbChhcnJheShPd25lZE9iamVjdFJlZikpLFxuICAvKipcbiAgICogT2JqZWN0UmVmIGFuZCBvd25lciBvZiBvYmplY3RzIHRoYXQgYXJlIHVud3JhcHBlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBVbndyYXBwZWQgb2JqZWN0cyBhcmUgb2JqZWN0cyB0aGF0IHdlcmUgd3JhcHBlZCBpbnRvIG90aGVyIG9iamVjdHMgaW4gdGhlIHBhc3QsXG4gICAqIGFuZCBqdXN0IGdvdCBleHRyYWN0ZWQgb3V0LlxuICAgKi9cbiAgdW53cmFwcGVkOiBvcHRpb25hbChhcnJheShPd25lZE9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0IFJlZnMgb2Ygb2JqZWN0cyBub3cgZGVsZXRlZCAodGhlIG9sZCByZWZzKSAqL1xuICBkZWxldGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqIE9iamVjdCBSZWZzIG9mIG9iamVjdHMgbm93IGRlbGV0ZWQgKHRoZSBvbGQgcmVmcykgKi9cbiAgdW53cmFwcGVkX3RoZW5fZGVsZXRlZDogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0UmVmKSksXG4gIC8qKiBPYmplY3QgcmVmcyBvZiBvYmplY3RzIG5vdyB3cmFwcGVkIGluIG90aGVyIG9iamVjdHMgKi9cbiAgd3JhcHBlZDogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0UmVmKSksXG4gIC8qKlxuICAgKiBUaGUgdXBkYXRlZCBnYXMgb2JqZWN0IHJlZmVyZW5jZS4gSGF2ZSBhIGRlZGljYXRlZCBmaWVsZCBmb3IgY29udmVuaWVudCBhY2Nlc3MuXG4gICAqIEl0J3MgYWxzbyBpbmNsdWRlZCBpbiBtdXRhdGVkLlxuICAgKi9cbiAgZ2FzT2JqZWN0OiBPd25lZE9iamVjdFJlZixcbiAgLyoqIFRoZSBldmVudHMgZW1pdHRlZCBkdXJpbmcgZXhlY3V0aW9uLiBOb3RlIHRoYXQgb25seSBzdWNjZXNzZnVsIHRyYW5zYWN0aW9ucyBlbWl0IGV2ZW50cyAqL1xuICBldmVudHNEaWdlc3Q6IG9wdGlvbmFsKFRyYW5zYWN0aW9uRXZlbnREaWdlc3QpLFxuICAvKiogVGhlIHNldCBvZiB0cmFuc2FjdGlvbiBkaWdlc3RzIHRoaXMgdHJhbnNhY3Rpb24gZGVwZW5kcyBvbiAqL1xuICBkZXBlbmRlbmNpZXM6IG9wdGlvbmFsKGFycmF5KFRyYW5zYWN0aW9uRGlnZXN0KSksXG59KTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRWZmZWN0cyA9IEluZmVyPHR5cGVvZiBUcmFuc2FjdGlvbkVmZmVjdHM+O1xuXG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25FdmVudHMgPSBhcnJheShTdWlFdmVudCk7XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkV2ZW50cyA9IEluZmVyPHR5cGVvZiBUcmFuc2FjdGlvbkV2ZW50cz47XG5cbmNvbnN0IFJldHVyblZhbHVlVHlwZSA9IHR1cGxlKFthcnJheShudW1iZXIoKSksIHN0cmluZygpXSk7XG5jb25zdCBNdXRhYmxlUmVmZXJlbmNlT3V0cHV0VHlwZSA9IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkobnVtYmVyKCkpLCBzdHJpbmcoKV0pO1xuY29uc3QgRXhlY3V0aW9uUmVzdWx0VHlwZSA9IG9iamVjdCh7XG4gIG11dGFibGVSZWZlcmVuY2VPdXRwdXRzOiBvcHRpb25hbChhcnJheShNdXRhYmxlUmVmZXJlbmNlT3V0cHV0VHlwZSkpLFxuICByZXR1cm5WYWx1ZXM6IG9wdGlvbmFsKGFycmF5KFJldHVyblZhbHVlVHlwZSkpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZXZJbnNwZWN0UmVzdWx0cyA9IG9iamVjdCh7XG4gIGVmZmVjdHM6IFRyYW5zYWN0aW9uRWZmZWN0cyxcbiAgZXZlbnRzOiBUcmFuc2FjdGlvbkV2ZW50cyxcbiAgcmVzdWx0czogb3B0aW9uYWwoYXJyYXkoRXhlY3V0aW9uUmVzdWx0VHlwZSkpLFxuICBlcnJvcjogb3B0aW9uYWwoc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBEZXZJbnNwZWN0UmVzdWx0cyA9IEluZmVyPHR5cGVvZiBEZXZJbnNwZWN0UmVzdWx0cz47XG5cbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZVF1ZXJ5ID0ge1xuICBmaWx0ZXI/OiBUcmFuc2FjdGlvbkZpbHRlcjtcbiAgb3B0aW9ucz86IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZU9wdGlvbnM7XG59O1xuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkZpbHRlciA9XG4gIHwge1xuICAgICAgTW92ZUZ1bmN0aW9uOiB7XG4gICAgICAgIHBhY2thZ2U6IE9iamVjdElkO1xuICAgICAgICBtb2R1bGU6IHN0cmluZyB8IG51bGw7XG4gICAgICAgIGZ1bmN0aW9uOiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICB9XG4gIHwgeyBJbnB1dE9iamVjdDogT2JqZWN0SWQgfVxuICB8IHsgQ2hhbmdlZE9iamVjdDogT2JqZWN0SWQgfVxuICB8IHsgRnJvbUFkZHJlc3M6IFN1aUFkZHJlc3MgfVxuICB8IHsgVG9BZGRyZXNzOiBTdWlBZGRyZXNzIH07XG5cbmV4cG9ydCB0eXBlIEVtcHR5U2lnbkluZm8gPSBvYmplY3Q7XG5leHBvcnQgdHlwZSBBdXRob3JpdHlOYW1lID0gSW5mZXI8dHlwZW9mIEF1dGhvcml0eU5hbWU+O1xuZXhwb3J0IGNvbnN0IEF1dGhvcml0eU5hbWUgPSBzdHJpbmcoKTtcblxuZXhwb3J0IGNvbnN0IFN1aVRyYW5zYWN0aW9uQmxvY2sgPSBvYmplY3Qoe1xuICBkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrRGF0YSxcbiAgdHhTaWduYXR1cmVzOiBhcnJheShzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2sgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9jaz47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCdwdWJsaXNoZWQnKSxcbiAgcGFja2FnZUlkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxuICBtb2R1bGVzOiBhcnJheShzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlVHJhbnNmZXJyZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCd0cmFuc2ZlcnJlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIHJlY2lwaWVudDogT2JqZWN0T3duZXIsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBkaWdlc3Q6IE9iamVjdERpZ2VzdCxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlVHJhbnNmZXJyZWQgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlVHJhbnNmZXJyZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlTXV0YXRlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ211dGF0ZWQnKSxcbiAgc2VuZGVyOiBTdWlBZGRyZXNzLFxuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBwcmV2aW91c1ZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBkaWdlc3Q6IE9iamVjdERpZ2VzdCxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlTXV0YXRlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZURlbGV0ZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCdkZWxldGVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdENoYW5nZURlbGV0ZWQgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VXcmFwcGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnd3JhcHBlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VXcmFwcGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZVdyYXBwZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlQ3JlYXRlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ2NyZWF0ZWQnKSxcbiAgc2VuZGVyOiBTdWlBZGRyZXNzLFxuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBkaWdlc3Q6IE9iamVjdERpZ2VzdCxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlQ3JlYXRlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZSA9IHVuaW9uKFtcbiAgU3VpT2JqZWN0Q2hhbmdlUHVibGlzaGVkLFxuICBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlTXV0YXRlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlV3JhcHBlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlQ3JlYXRlZCxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZT47XG5cbmV4cG9ydCBjb25zdCBCYWxhbmNlQ2hhbmdlID0gb2JqZWN0KHtcbiAgb3duZXI6IE9iamVjdE93bmVyLFxuICBjb2luVHlwZTogc3RyaW5nKCksXG4gIC8qIENvaW4gYmFsYW5jZSBjaGFuZ2UocG9zaXRpdmUgbWVhbnMgcmVjZWl2ZSwgbmVnYXRpdmUgbWVhbnMgc2VuZCkgKi9cbiAgYW1vdW50OiBzdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgdHJhbnNhY3Rpb246IG9wdGlvbmFsKFN1aVRyYW5zYWN0aW9uQmxvY2spLFxuICBlZmZlY3RzOiBvcHRpb25hbChUcmFuc2FjdGlvbkVmZmVjdHMpLFxuICBldmVudHM6IG9wdGlvbmFsKFRyYW5zYWN0aW9uRXZlbnRzKSxcbiAgdGltZXN0YW1wTXM6IG9wdGlvbmFsKG51bWJlcigpKSxcbiAgY2hlY2twb2ludDogb3B0aW9uYWwobnVtYmVyKCkpLFxuICBjb25maXJtZWRMb2NhbEV4ZWN1dGlvbjogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgb2JqZWN0Q2hhbmdlczogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0Q2hhbmdlKSksXG4gIGJhbGFuY2VDaGFuZ2VzOiBvcHRpb25hbChhcnJheShCYWxhbmNlQ2hhbmdlKSksXG4gIC8qIEVycm9ycyB0aGF0IG9jY3VycmVkIGluIGZldGNoaW5nL3NlcmlhbGl6aW5nIHRoZSB0cmFuc2FjdGlvbi4gKi9cbiAgZXJyb3JzOiBvcHRpb25hbChhcnJheShzdHJpbmcoKSkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlPjtcblxuZXhwb3J0IGNvbnN0IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZU9wdGlvbnMgPSBvYmplY3Qoe1xuICAvKiBXaGV0aGVyIHRvIHNob3cgdHJhbnNhY3Rpb24gaW5wdXQgZGF0YS4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0lucHV0OiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIHNob3cgdHJhbnNhY3Rpb24gZWZmZWN0cy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0VmZmVjdHM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBldmVudHMuIERlZmF1bHQgdG8gYmUgZmFsc2UuICovXG4gIHNob3dFdmVudHM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyBvYmplY3QgY2hhbmdlcy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd09iamVjdENoYW5nZXM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyBjb2luIGJhbGFuY2UgY2hhbmdlcy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0JhbGFuY2VDaGFuZ2VzOiBvcHRpb25hbChib29sZWFuKCkpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZU9wdGlvbnMgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucz47XG5cbmV4cG9ydCBjb25zdCBQYWdpbmF0ZWRUcmFuc2FjdGlvblJlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogYXJyYXkoU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSxcbiAgbmV4dEN1cnNvcjogdW5pb24oW1RyYW5zYWN0aW9uRGlnZXN0LCBsaXRlcmFsKG51bGwpXSksXG4gIGhhc05leHRQYWdlOiBib29sZWFuKCksXG59KTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZFRyYW5zYWN0aW9uUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgUGFnaW5hdGVkVHJhbnNhY3Rpb25SZXNwb25zZT47XG5leHBvcnQgY29uc3QgRHJ5UnVuVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlID0gb2JqZWN0KHtcbiAgZWZmZWN0czogVHJhbnNhY3Rpb25FZmZlY3RzLFxuICBldmVudHM6IFRyYW5zYWN0aW9uRXZlbnRzLFxuICBvYmplY3RDaGFuZ2VzOiBhcnJheShTdWlPYmplY3RDaGFuZ2UpLFxuICBiYWxhbmNlQ2hhbmdlczogYXJyYXkoQmFsYW5jZUNoYW5nZSksXG59KTtcbmV4cG9ydCB0eXBlIERyeVJ1blRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBEcnlSdW5UcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2U+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwZXIgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpVHJhbnNhY3Rpb25CbG9jayB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRGlnZXN0KHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBUcmFuc2FjdGlvbkRpZ2VzdCB7XG4gIHJldHVybiB0eC5kaWdlc3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvblNpZ25hdHVyZSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHgudHJhbnNhY3Rpb24/LnR4U2lnbmF0dXJlcztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHJhbnNhY3Rpb25EYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uU2VuZGVyKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlBZGRyZXNzIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR4LnRyYW5zYWN0aW9uPy5kYXRhLnNlbmRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdhc0RhdGEodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUdhc0RhdGEgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHgudHJhbnNhY3Rpb24/LmRhdGEuZ2FzRGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uR2FzT2JqZWN0KHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlPYmplY3RSZWZbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8ucGF5bWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uR2FzUHJpY2UodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSkge1xuICByZXR1cm4gZ2V0R2FzRGF0YSh0eCk/LnByaWNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNCdWRnZXQodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSkge1xuICByZXR1cm4gZ2V0R2FzRGF0YSh0eCk/LmJ1ZGdldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENoYW5nZUVwb2NoVHJhbnNhY3Rpb24oZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQpOiBTdWlDaGFuZ2VFcG9jaCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLmtpbmQgPT09ICdDaGFuZ2VFcG9jaCcgPyBkYXRhIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uc2Vuc3VzQ29tbWl0UHJvbG9ndWVUcmFuc2FjdGlvbihcbiAgZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmRcbik6IFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEua2luZCA9PT0gJ0NvbnNlbnN1c0NvbW1pdFByb2xvZ3VlJyA/IGRhdGEgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbktpbmQoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS50cmFuc2FjdGlvbj8uZGF0YS50cmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uS2luZE5hbWUoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQpOiBUcmFuc2FjdGlvbktpbmROYW1lIHtcbiAgcmV0dXJuIGRhdGEua2luZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tLaW5kKTogUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5raW5kID09PSAnUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24nID8gZGF0YSA6IHVuZGVmaW5lZDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRXhlY3V0aW9uU3RhdHVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1c1R5cGUoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogRXhlY3V0aW9uU3RhdHVzVHlwZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRFeGVjdXRpb25TdGF0dXMoZGF0YSk/LnN0YXR1cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1cyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBFeGVjdXRpb25TdGF0dXMgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5zdGF0dXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeGVjdXRpb25TdGF0dXNFcnJvcihkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0RXhlY3V0aW9uU3RhdHVzKGRhdGEpPy5lcnJvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1c0dhc1N1bW1hcnkoXG4gIGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0c1xuKTogR2FzQ29zdFN1bW1hcnkgfCB1bmRlZmluZWQge1xuICBpZiAoaXMoZGF0YSwgVHJhbnNhY3Rpb25FZmZlY3RzKSkge1xuICAgIHJldHVybiBkYXRhLmdhc1VzZWQ7XG4gIH1cbiAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRWZmZWN0cyhkYXRhKT8uZ2FzVXNlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvdGFsR2FzVXNlZChkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgfCBUcmFuc2FjdGlvbkVmZmVjdHMpOiBiaWdpbnQgfCB1bmRlZmluZWQge1xuICBjb25zdCBnYXNTdW1tYXJ5ID0gZ2V0RXhlY3V0aW9uU3RhdHVzR2FzU3VtbWFyeShkYXRhKTtcbiAgcmV0dXJuIGdhc1N1bW1hcnlcbiAgICA/IEJpZ0ludChnYXNTdW1tYXJ5LmNvbXB1dGF0aW9uQ29zdCkgKyBCaWdJbnQoZ2FzU3VtbWFyeS5zdG9yYWdlQ29zdCkgLSBCaWdJbnQoZ2FzU3VtbWFyeS5zdG9yYWdlUmViYXRlKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG90YWxHYXNVc2VkVXBwZXJCb3VuZChkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgfCBUcmFuc2FjdGlvbkVmZmVjdHMpOiBiaWdpbnQgfCB1bmRlZmluZWQge1xuICBjb25zdCBnYXNTdW1tYXJ5ID0gZ2V0RXhlY3V0aW9uU3RhdHVzR2FzU3VtbWFyeShkYXRhKTtcbiAgcmV0dXJuIGdhc1N1bW1hcnkgPyBCaWdJbnQoZ2FzU3VtbWFyeS5jb21wdXRhdGlvbkNvc3QpICsgQmlnSW50KGdhc1N1bW1hcnkuc3RvcmFnZUNvc3QpIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFRyYW5zYWN0aW9uRWZmZWN0cyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLmVmZmVjdHM7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHJhbnNhY3Rpb24gRWZmZWN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50cyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlFdmVudFtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEuZXZlbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRlZE9iamVjdHMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogT3duZWRPYmplY3RSZWZbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YSk/LmNyZWF0ZWQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvblJlc3BvbnNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaW1lc3RhbXBGcm9tVHJhbnNhY3Rpb25SZXNwb25zZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS50aW1lc3RhbXBNcyA/PyB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBuZXdseSBjcmVhdGVkIGNvaW4gcmVmcyBhZnRlciBhIHNwbGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3bHlDcmVhdGVkQ29pblJlZnNBZnRlclNwbGl0KGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aU9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRWZmZWN0cyhkYXRhKT8uY3JlYXRlZD8ubWFwKChjKSA9PiBjLnJlZmVyZW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDaGFuZ2VzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aU9iamVjdENoYW5nZVtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEub2JqZWN0Q2hhbmdlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1Ymxpc2hlZE9iamVjdENoYW5nZXMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0Q2hhbmdlUHVibGlzaGVkW10ge1xuICByZXR1cm4gKGRhdGEub2JqZWN0Q2hhbmdlcz8uZmlsdGVyKChhKSA9PiBpcyhhLCBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQpKSBhcyBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWRbXSkgPz8gW107XG59XG4iXX0=