@bitgo-beta/sdk-coin-hbar 1.3.3-alpha.236 → 1.3.3-alpha.238
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.
- package/CHANGELOG.md +36 -0
- package/dist/src/hbar.d.ts +0 -1
- package/dist/src/hbar.d.ts.map +1 -1
- package/dist/src/hbar.js +22 -14
- package/dist/src/hbarToken.js +1 -1
- package/dist/src/lib/coinTransferBuilder.js +18 -8
- package/dist/src/lib/constants.js +2 -2
- package/dist/src/lib/index.js +18 -8
- package/dist/src/lib/keyPair.js +1 -1
- package/dist/src/lib/tokenAssociateBuilder.js +1 -1
- package/dist/src/lib/tokenTransferBuilder.js +18 -8
- package/dist/src/lib/transaction.js +23 -14
- package/dist/src/lib/transactionBuilder.js +18 -8
- package/dist/src/lib/transactionBuilderFactory.js +1 -1
- package/dist/src/lib/transferBuilder.js +1 -1
- package/dist/src/lib/utils.js +49 -39
- package/dist/src/lib/walletInitializationBuilder.js +18 -8
- package/dist/src/seedValidator.js +18 -8
- package/package.json +7 -7
package/dist/src/lib/utils.js
CHANGED
|
@@ -15,18 +15,58 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
39
|
+
exports.toUint8Array = exports.toHex = void 0;
|
|
40
|
+
exports.isValidAddress = isValidAddress;
|
|
41
|
+
exports.isValidTransactionId = isValidTransactionId;
|
|
42
|
+
exports.isValidPublicKey = isValidPublicKey;
|
|
43
|
+
exports.isNodeEnvironment = isNodeEnvironment;
|
|
44
|
+
exports.getCurrentTime = getCurrentTime;
|
|
45
|
+
exports.isValidTimeString = isValidTimeString;
|
|
46
|
+
exports.isValidAmount = isValidAmount;
|
|
47
|
+
exports.isValidRawTransactionFormat = isValidRawTransactionFormat;
|
|
48
|
+
exports.stringifyAccountId = stringifyAccountId;
|
|
49
|
+
exports.stringifyTokenId = stringifyTokenId;
|
|
50
|
+
exports.stringifyTxTime = stringifyTxTime;
|
|
51
|
+
exports.removePrefix = removePrefix;
|
|
52
|
+
exports.isValidMemo = isValidMemo;
|
|
53
|
+
exports.createRawKey = createRawKey;
|
|
54
|
+
exports.convertFromStellarPub = convertFromStellarPub;
|
|
55
|
+
exports.isSameBaseAddress = isSameBaseAddress;
|
|
56
|
+
exports.getBaseAddress = getBaseAddress;
|
|
57
|
+
exports.getAddressDetails = getAddressDetails;
|
|
58
|
+
exports.normalizeAddress = normalizeAddress;
|
|
59
|
+
exports.isValidAddressWithPaymentId = isValidAddressWithPaymentId;
|
|
60
|
+
exports.buildHederaTokenID = buildHederaTokenID;
|
|
61
|
+
exports.buildHederaAccountID = buildHederaAccountID;
|
|
62
|
+
exports.isValidHederaTokenID = isValidHederaTokenID;
|
|
63
|
+
exports.getHederaTokenIdFromName = getHederaTokenIdFromName;
|
|
64
|
+
exports.getHederaTokenNameFromId = getHederaTokenNameFromId;
|
|
65
|
+
exports.isTokenTransfer = isTokenTransfer;
|
|
66
|
+
exports.validateStartTime = validateStartTime;
|
|
67
|
+
exports.normalizeStarttime = normalizeStarttime;
|
|
68
|
+
exports.sleep = sleep;
|
|
69
|
+
exports.shouldBroadcastNow = shouldBroadcastNow;
|
|
30
70
|
const _ = __importStar(require("lodash"));
|
|
31
71
|
const sdk_1 = require("@hashgraph/sdk");
|
|
32
72
|
const proto_1 = require("@hashgraph/proto");
|
|
@@ -62,7 +102,6 @@ function isValidAddress(address) {
|
|
|
62
102
|
return false;
|
|
63
103
|
}
|
|
64
104
|
}
|
|
65
|
-
exports.isValidAddress = isValidAddress;
|
|
66
105
|
/**
|
|
67
106
|
* Returns whether the string is a valid Hedera transaction id
|
|
68
107
|
*
|
|
@@ -84,7 +123,6 @@ function isValidTransactionId(txId) {
|
|
|
84
123
|
return false;
|
|
85
124
|
}
|
|
86
125
|
}
|
|
87
|
-
exports.isValidTransactionId = isValidTransactionId;
|
|
88
126
|
/**
|
|
89
127
|
Returns whether the string is a valid Hedera public key
|
|
90
128
|
*
|
|
@@ -103,7 +141,6 @@ function isValidPublicKey(key) {
|
|
|
103
141
|
return false;
|
|
104
142
|
}
|
|
105
143
|
}
|
|
106
|
-
exports.isValidPublicKey = isValidPublicKey;
|
|
107
144
|
/**
|
|
108
145
|
* Checks whether nodeJS.process exist and if a node version is defined to determine if this is an nodeJS environment
|
|
109
146
|
*
|
|
@@ -112,7 +149,6 @@ exports.isValidPublicKey = isValidPublicKey;
|
|
|
112
149
|
function isNodeEnvironment() {
|
|
113
150
|
return typeof process !== 'undefined' && typeof process.versions.node !== 'undefined';
|
|
114
151
|
}
|
|
115
|
-
exports.isNodeEnvironment = isNodeEnvironment;
|
|
116
152
|
/**
|
|
117
153
|
* Calculate the current time with nanoseconds precision
|
|
118
154
|
*
|
|
@@ -128,7 +164,6 @@ function getCurrentTime() {
|
|
|
128
164
|
return (performance.timeOrigin + performance.now()).toFixed(9);
|
|
129
165
|
}
|
|
130
166
|
}
|
|
131
|
-
exports.getCurrentTime = getCurrentTime;
|
|
132
167
|
/**
|
|
133
168
|
* Returns whether the string is a valid timestamp
|
|
134
169
|
*
|
|
@@ -140,7 +175,6 @@ exports.getCurrentTime = getCurrentTime;
|
|
|
140
175
|
function isValidTimeString(time) {
|
|
141
176
|
return /^\d+(\.\d+)?$/.test(time);
|
|
142
177
|
}
|
|
143
|
-
exports.isValidTimeString = isValidTimeString;
|
|
144
178
|
/**
|
|
145
179
|
* Returns whether the string is a valid amount number
|
|
146
180
|
*
|
|
@@ -153,7 +187,6 @@ function isValidAmount(amount) {
|
|
|
153
187
|
bigNumberAmount.isGreaterThanOrEqualTo(0) &&
|
|
154
188
|
bigNumberAmount.isLessThanOrEqualTo(MAX_TINYBARS_AMOUNT));
|
|
155
189
|
}
|
|
156
|
-
exports.isValidAmount = isValidAmount;
|
|
157
190
|
/**
|
|
158
191
|
* Returns whether the provided raw transaction accommodates to bitgo's preferred format
|
|
159
192
|
*
|
|
@@ -165,7 +198,6 @@ function isValidRawTransactionFormat(rawTransaction) {
|
|
|
165
198
|
const isValidBuffer = Buffer.isBuffer(rawTransaction) && !!Uint8Array.from(rawTransaction);
|
|
166
199
|
return isAlphaNumeric || isValidBuffer;
|
|
167
200
|
}
|
|
168
|
-
exports.isValidRawTransactionFormat = isValidRawTransactionFormat;
|
|
169
201
|
/**
|
|
170
202
|
* Returns a string representation of an {proto.IAccountID} object
|
|
171
203
|
*
|
|
@@ -175,7 +207,6 @@ exports.isValidRawTransactionFormat = isValidRawTransactionFormat;
|
|
|
175
207
|
function stringifyAccountId({ shardNum, realmNum, accountNum }) {
|
|
176
208
|
return `${shardNum || 0}.${realmNum || 0}.${accountNum}`;
|
|
177
209
|
}
|
|
178
|
-
exports.stringifyAccountId = stringifyAccountId;
|
|
179
210
|
/**
|
|
180
211
|
* Returns a string representation of an {proto.ITokenID} object
|
|
181
212
|
*
|
|
@@ -185,7 +216,6 @@ exports.stringifyAccountId = stringifyAccountId;
|
|
|
185
216
|
function stringifyTokenId({ shardNum, realmNum, tokenNum }) {
|
|
186
217
|
return `${shardNum || 0}.${realmNum || 0}.${tokenNum}`;
|
|
187
218
|
}
|
|
188
|
-
exports.stringifyTokenId = stringifyTokenId;
|
|
189
219
|
/**
|
|
190
220
|
* Returns a string representation of an {proto.ITimestamp} object
|
|
191
221
|
*
|
|
@@ -195,7 +225,6 @@ exports.stringifyTokenId = stringifyTokenId;
|
|
|
195
225
|
function stringifyTxTime({ seconds, nanos }) {
|
|
196
226
|
return `${seconds}.${nanos}`;
|
|
197
227
|
}
|
|
198
|
-
exports.stringifyTxTime = stringifyTxTime;
|
|
199
228
|
/**
|
|
200
229
|
* Remove the specified prefix from a string only if it starts with that prefix
|
|
201
230
|
*
|
|
@@ -209,7 +238,6 @@ function removePrefix(prefix, key) {
|
|
|
209
238
|
}
|
|
210
239
|
return key;
|
|
211
240
|
}
|
|
212
|
-
exports.removePrefix = removePrefix;
|
|
213
241
|
/**
|
|
214
242
|
* Check if this is a valid memo
|
|
215
243
|
*
|
|
@@ -219,7 +247,6 @@ exports.removePrefix = removePrefix;
|
|
|
219
247
|
function isValidMemo(memo) {
|
|
220
248
|
return !(_.isEmpty(memo) || Buffer.from(memo).length > 100);
|
|
221
249
|
}
|
|
222
|
-
exports.isValidMemo = isValidMemo;
|
|
223
250
|
/**
|
|
224
251
|
* Uses the native hashgraph SDK function to get a raw key.
|
|
225
252
|
*
|
|
@@ -229,7 +256,6 @@ exports.isValidMemo = isValidMemo;
|
|
|
229
256
|
function createRawKey(prv) {
|
|
230
257
|
return sdk_1.PrivateKey.fromString(prv);
|
|
231
258
|
}
|
|
232
|
-
exports.createRawKey = createRawKey;
|
|
233
259
|
/**
|
|
234
260
|
* Converts a stellar public key to ed25519 hex format
|
|
235
261
|
*
|
|
@@ -243,7 +269,6 @@ function convertFromStellarPub(stellarPub) {
|
|
|
243
269
|
const rawKey = stellar.StrKey.decodeEd25519PublicKey(stellarPub);
|
|
244
270
|
return rawKey.toString('hex');
|
|
245
271
|
}
|
|
246
|
-
exports.convertFromStellarPub = convertFromStellarPub;
|
|
247
272
|
/**
|
|
248
273
|
* Checks if two addresses have the same base address
|
|
249
274
|
*
|
|
@@ -257,7 +282,6 @@ function isSameBaseAddress(address, baseAddress) {
|
|
|
257
282
|
}
|
|
258
283
|
return getBaseAddress(address) === getBaseAddress(baseAddress);
|
|
259
284
|
}
|
|
260
|
-
exports.isSameBaseAddress = isSameBaseAddress;
|
|
261
285
|
/**
|
|
262
286
|
* Returns the base address portion of an address
|
|
263
287
|
*
|
|
@@ -268,7 +292,6 @@ function getBaseAddress(address) {
|
|
|
268
292
|
const addressDetails = getAddressDetails(address);
|
|
269
293
|
return addressDetails.address;
|
|
270
294
|
}
|
|
271
|
-
exports.getBaseAddress = getBaseAddress;
|
|
272
295
|
/**
|
|
273
296
|
* Process address into address and memo id
|
|
274
297
|
*
|
|
@@ -302,7 +325,6 @@ function getAddressDetails(rawAddress) {
|
|
|
302
325
|
memoId,
|
|
303
326
|
};
|
|
304
327
|
}
|
|
305
|
-
exports.getAddressDetails = getAddressDetails;
|
|
306
328
|
/**
|
|
307
329
|
* Validate and return address with appended memo id
|
|
308
330
|
*
|
|
@@ -315,7 +337,6 @@ function normalizeAddress({ address, memoId }) {
|
|
|
315
337
|
}
|
|
316
338
|
return address;
|
|
317
339
|
}
|
|
318
|
-
exports.normalizeAddress = normalizeAddress;
|
|
319
340
|
/**
|
|
320
341
|
* Return boolean indicating whether input is a valid address with memo id
|
|
321
342
|
*
|
|
@@ -331,7 +352,6 @@ function isValidAddressWithPaymentId(address) {
|
|
|
331
352
|
return false;
|
|
332
353
|
}
|
|
333
354
|
}
|
|
334
|
-
exports.isValidAddressWithPaymentId = isValidAddressWithPaymentId;
|
|
335
355
|
/**
|
|
336
356
|
* Build hedera {proto.TokenID} object from token ID string
|
|
337
357
|
*
|
|
@@ -346,7 +366,6 @@ function buildHederaTokenID(tokenID) {
|
|
|
346
366
|
shardNum: tokenData.shard,
|
|
347
367
|
});
|
|
348
368
|
}
|
|
349
|
-
exports.buildHederaTokenID = buildHederaTokenID;
|
|
350
369
|
/**
|
|
351
370
|
* Build hedera {proto.AccountID} object from account ID string
|
|
352
371
|
*
|
|
@@ -361,7 +380,6 @@ function buildHederaAccountID(accountID) {
|
|
|
361
380
|
accountNum: accountId.num,
|
|
362
381
|
});
|
|
363
382
|
}
|
|
364
|
-
exports.buildHederaAccountID = buildHederaAccountID;
|
|
365
383
|
/**
|
|
366
384
|
* Check if Hedera token ID is valid and supported
|
|
367
385
|
*
|
|
@@ -373,7 +391,6 @@ function isValidHederaTokenID(tokenId) {
|
|
|
373
391
|
const isTokenSupported = getHederaTokenNameFromId(tokenId) !== undefined;
|
|
374
392
|
return isFormatValid && isTokenSupported;
|
|
375
393
|
}
|
|
376
|
-
exports.isValidHederaTokenID = isValidHederaTokenID;
|
|
377
394
|
/**
|
|
378
395
|
* Get the associated hedera token ID from token name, if supported
|
|
379
396
|
*
|
|
@@ -389,7 +406,6 @@ function getHederaTokenIdFromName(tokenName) {
|
|
|
389
406
|
}
|
|
390
407
|
return undefined;
|
|
391
408
|
}
|
|
392
|
-
exports.getHederaTokenIdFromName = getHederaTokenIdFromName;
|
|
393
409
|
/**
|
|
394
410
|
* Get the associated hedera token from token ID, if supported
|
|
395
411
|
*
|
|
@@ -404,7 +420,6 @@ function getHederaTokenNameFromId(tokenId) {
|
|
|
404
420
|
.map((token) => token); // flatten coin map to array
|
|
405
421
|
return tokensArray.length > 0 ? tokensArray[0] : undefined;
|
|
406
422
|
}
|
|
407
|
-
exports.getHederaTokenNameFromId = getHederaTokenNameFromId;
|
|
408
423
|
/**
|
|
409
424
|
* Return boolean indicating whether input is a valid token transfer transaction
|
|
410
425
|
*
|
|
@@ -414,7 +429,6 @@ exports.getHederaTokenNameFromId = getHederaTokenNameFromId;
|
|
|
414
429
|
function isTokenTransfer(transferTxBody) {
|
|
415
430
|
return !!transferTxBody && !!transferTxBody.tokenTransfers && transferTxBody.tokenTransfers.length > 0;
|
|
416
431
|
}
|
|
417
|
-
exports.isTokenTransfer = isTokenTransfer;
|
|
418
432
|
/** validates a startTime string to be a valid timestamp and in the future
|
|
419
433
|
* @param {string} startTime - The startTime to be validated
|
|
420
434
|
* @throws {Error} - if startTime is not a valid timestamp or is in the past
|
|
@@ -431,11 +445,9 @@ function validateStartTime(startTime) {
|
|
|
431
445
|
throw new Error('startTime must be a future timestamp, got: ' + startTime);
|
|
432
446
|
}
|
|
433
447
|
}
|
|
434
|
-
exports.validateStartTime = validateStartTime;
|
|
435
448
|
function normalizeStarttime(startTime) {
|
|
436
449
|
return new bignumber_js_1.default(startTime).toFixed(9);
|
|
437
450
|
}
|
|
438
|
-
exports.normalizeStarttime = normalizeStarttime;
|
|
439
451
|
/**
|
|
440
452
|
* Await for a given amount of time in milliseconds
|
|
441
453
|
* @param ms - The amount of time to wait in milliseconds
|
|
@@ -445,7 +457,6 @@ function sleep(ms) {
|
|
|
445
457
|
console.log(`sleeping for ${ms} ms`);
|
|
446
458
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
447
459
|
}
|
|
448
|
-
exports.sleep = sleep;
|
|
449
460
|
/**
|
|
450
461
|
* Check if the startTime is within the broadcast window (5 seconds after and 175 seconds after the startTime)
|
|
451
462
|
*/
|
|
@@ -467,5 +478,4 @@ function shouldBroadcastNow(startTime) {
|
|
|
467
478
|
return (new bignumber_js_1.default(currentTime).isGreaterThanOrEqualTo(startingTimeWindow) &&
|
|
468
479
|
new bignumber_js_1.default(currentTime).isLessThanOrEqualTo(endingTimeWindow));
|
|
469
480
|
}
|
|
470
|
-
exports.shouldBroadcastNow = shouldBroadcastNow;
|
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQTRCO0FBQzVCLHdDQUEwRjtBQUMxRiw0Q0FBeUM7QUFDekMsZ0VBQXFDO0FBQ3JDLHFEQUF1QztBQUV2Qyw4Q0FBc0I7QUFDdEIsbURBQXVFO0FBRTlELHNGQUZBLGdCQUFLLE9BRUE7QUFBRSw2RkFGQSx1QkFBWSxPQUVBO0FBRDVCLGlEQUFtRTtBQUduRSxNQUFNLG1CQUFtQixHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9DLElBQ0UsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7UUFDMUQsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEQ7UUFDQSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSTtRQUNGLE1BQU0sR0FBRyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdB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QWdCLGtCQUFrQixDQUFDLFNBQWlCO0lBQ2xELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3JDLDJCQUEyQjtJQUMzQixNQUFNLGtCQUFrQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLDZCQUE2QjtJQUM3QixNQUFNLGdCQUFnQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVFLElBQUksSUFBSSxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUNBQWlDO1lBQy9CLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsV0FBVztZQUNYLHNCQUFzQjtZQUN0QixnQkFBZ0IsQ0FDbkIsQ0FBQztLQUNIO0lBRUQsT0FBTyxDQUNMLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQztRQUNyRSxJQUFJLHNCQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FDakUsQ0FBQztBQUNKLENBQUM7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWNjb3VudElkLCBQcml2YXRlS2V5LCBQdWJsaWNLZXksIFRva2VuSWQsIFRyYW5zYWN0aW9uSWQgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0ICogYXMgc3RlbGxhciBmcm9tICdzdGVsbGFyLXNkayc7XG5pbXBvcnQgeyBBZGRyZXNzRGV0YWlscyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IHsgdG9IZXgsIHRvVWludDhBcnJheSwgVXRpbHNFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luLCBjb2lucywgSGVkZXJhVG9rZW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmV4cG9ydCB7IHRvSGV4LCB0b1VpbnQ4QXJyYXkgfTtcblxuY29uc3QgTUFYX1RJTllCQVJTX0FNT1VOVCA9IG5ldyBCaWdOdW1iZXIoMikucG93KDYzKS5taW51cygxKTtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSBhY2NvdW50IGFkZHJlc3NcbiAqXG4gKiBJbiBhbnkgZm9ybSwgYHNoYXJkYCBhbmQgYHJlYWxtYCBhcmUgYXNzdW1lZCB0byBiZSAwIGlmIG5vdCBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYWRkcmVzc0FycmF5ID0gYWRkcmVzcy5zcGxpdCgnP21lbW9JZD0nKTtcblxuICBpZiAoXG4gICAgXy5pc0VtcHR5KGFkZHJlc3MpIHx8XG4gICAgIVsxLCAyXS5pbmNsdWRlcyhhZGRyZXNzQXJyYXkubGVuZ3RoKSB8fFxuICAgICFhZGRyZXNzQXJyYXlbMF0ubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKSB8fFxuICAgIChhZGRyZXNzQXJyYXlbMV0gJiYgIWlzVmFsaWRNZW1vKGFkZHJlc3NBcnJheVsxXSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgYWNjID0gQWNjb3VudElkLmZyb21TdHJpbmcoYWRkcmVzc0FycmF5WzBdKTtcbiAgICByZXR1cm4gIV8uaXNOYU4oYWNjLm51bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSB0cmFuc2FjdGlvbiBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eElkIC0gVGhlIHRyYW5zYWN0aW9uIGlkIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eSh0eElkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb25JZC5mcm9tU3RyaW5nKHR4SWQpO1xuICAgIGlmIChfLmlzTmlsKHR4LmFjY291bnRJZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFfLmlzTmFOKHR4LmFjY291bnRJZC5udW0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSGVkZXJhIHB1YmxpYyBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eShrZXkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcHViS2V5ID0gUHVibGljS2V5LmZyb21TdHJpbmcoa2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIHJldHVybiAhXy5pc05hTihwdWJLZXkudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBub2RlSlMucHJvY2VzcyBleGlzdCBhbmQgaWYgYSBub2RlIHZlcnNpb24gaXMgZGVmaW5lZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBub2RlSlMgZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZUVudmlyb25tZW50KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgY3VycmVudCB0aW1lIHdpdGggbmFub3NlY29uZHMgcHJlY2lzaW9uXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgY3VycmVudCB0aW1lIGluIHNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRUaW1lKCk6IHN0cmluZyB7XG4gIGlmIChpc05vZGVFbnZpcm9ubWVudCgpKSB7XG4gICAgY29uc3QgbmFub3MgPSBwcm9jZXNzLmhydGltZSgpWzFdO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoRGF0ZS5ub3coKSAqIDEwMDAwMDAgKyBuYW5vcykgLyAxMDAwMDAwMDAwO1xuICAgIHJldHVybiBzZWNvbmRzLnRvRml4ZWQoOSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCkpLnRvRml4ZWQoOSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHRpbWVzdGFtcFxuICpcbiAqIE5hbm9zZWNvbmRzIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHBhc3NlZCBhZnRlciBhIGRvdCwgZm9yIGV4YW1wbGU6IDE1OTUzNzQ3MjMuMzU2OTgxNjg5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBUaGUgdGltZXN0YW1wIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGltZVN0cmluZyh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRpbWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gKFxuICAgIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJlxuICAgIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApICYmXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzTGVzc1RoYW5PckVxdWFsVG8oTUFYX1RJTllCQVJTX0FNT1VOVClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHJhdyB0cmFuc2FjdGlvbiBhY2NvbW1vZGF0ZXMgdG8gYml0Z28ncyBwcmVmZXJyZWQgZm9ybWF0XG4gKlxuICogQHBhcmFtIHthbnl9IHJhd1RyYW5zYWN0aW9uIC0gVGhlIHJhdyB0cmFuc2FjdGlvbiB0byBiZSBjaGVja2VkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdChyYXdUcmFuc2FjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzQWxwaGFOdW1lcmljID0gdHlwZW9mIHJhd1RyYW5zYWN0aW9uID09PSAnc3RyaW5nJyAmJiAvXltcXGRhLWZBLUZdKyQvLnRlc3QocmF3VHJhbnNhY3Rpb24pO1xuICBjb25zdCBpc1ZhbGlkQnVmZmVyID0gQnVmZmVyLmlzQnVmZmVyKHJhd1RyYW5zYWN0aW9uKSAmJiAhIVVpbnQ4QXJyYXkuZnJvbShyYXdUcmFuc2FjdGlvbik7XG5cbiAgcmV0dXJuIGlzQWxwaGFOdW1lcmljIHx8IGlzVmFsaWRCdWZmZXI7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiB7cHJvdG8uSUFjY291bnRJRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JQWNjb3VudElEfSBhY2NvdW50SWQgLSBBY2NvdW50IGlkIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JQWNjb3VudElEfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5QWNjb3VudElkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCBhY2NvdW50TnVtIH06IHByb3RvLklBY2NvdW50SUQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2hhcmROdW0gfHwgMH0uJHtyZWFsbU51bSB8fCAwfS4ke2FjY291bnROdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVG9rZW5JRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JVG9rZW5JRH0gLSB0b2tlbiBpZCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRva2VuSUR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbklkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCB0b2tlbk51bSB9OiBwcm90by5JVG9rZW5JRCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaGFyZE51bSB8fCAwfS4ke3JlYWxtTnVtIHx8IDB9LiR7dG9rZW5OdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVGltZXN0YW1wfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklUaW1lc3RhbXB9IHRpbWVzdGFtcCAtIFRpbWVzdGFtcCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRpbWVzdGFtcH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVR4VGltZSh7IHNlY29uZHMsIG5hbm9zIH06IHByb3RvLklUaW1lc3RhbXApOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2Vjb25kc30uJHtuYW5vc31gO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHByZWZpeCBmcm9tIGEgc3RyaW5nIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggdGhhdCBwcmVmaXhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IC0gVGhlIHByZWZpeCB0byBiZSByZW1vdmVkXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG9yaWdpbmFsIHN0cmluZywgdXN1YWxseSBhIHByaXZhdGUgb3IgcHVibGljIGtleVxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHdpdGhvdXQgcHJlZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcmVmaXgocHJlZml4OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBrZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIG1lbW9cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtb1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVtbyhtZW1vOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEoXy5pc0VtcHR5KG1lbW8pIHx8IEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+IDEwMCk7XG59XG5cbi8qKlxuICogVXNlcyB0aGUgbmF0aXZlIGhhc2hncmFwaCBTREsgZnVuY3Rpb24gdG8gZ2V0IGEgcmF3IGtleS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IC0gUHJpdmF0ZSBrZXlcbiAqIEByZXR1cm5zIHtQcml2YXRlS2V5fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmF3S2V5KHBydjogc3RyaW5nKTogUHJpdmF0ZUtleSB7XG4gIHJldHVybiBQcml2YXRlS2V5LmZyb21TdHJpbmcocHJ2KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0ZWxsYXIgcHVibGljIGtleSB0byBlZDI1NTE5IGhleCBmb3JtYXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RlbGxhclB1YlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGcm9tU3RlbGxhclB1YihzdGVsbGFyUHViOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0ZWxsYXIuU3RyS2V5LmlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHN0ZWxsYXJQdWIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSB2YWxpZCBzdGVsbGFyIHB1Yi4nKTtcbiAgfVxuXG4gIGNvbnN0IHJhd0tleTogQnVmZmVyID0gc3RlbGxhci5TdHJLZXkuZGVjb2RlRWQyNTUxOVB1YmxpY0tleShzdGVsbGFyUHViKTtcbiAgcmV0dXJuIHJhd0tleS50b1N0cmluZygnaGV4Jyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHR3byBhZGRyZXNzZXMgaGF2ZSB0aGUgc2FtZSBiYXNlIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGJhc2VBZGRyZXNzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgYmFzZUFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuICByZXR1cm4gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzcykgPT09IGdldEJhc2VBZGRyZXNzKGJhc2VBZGRyZXNzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIGFkZHJlc3MgcG9ydGlvbiBvZiBhbiBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IC0gdGhlIGJhc2UgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzLmFkZHJlc3M7XG59XG5cbi8qKlxuICogUHJvY2VzcyBhZGRyZXNzIGludG8gYWRkcmVzcyBhbmQgbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByYXdBZGRyZXNzXG4gKiBAcmV0dXJucyB7QWRkcmVzc0RldGFpbHN9IC0gb2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcyBhbmQgbWVtbyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0RldGFpbHMocmF3QWRkcmVzczogc3RyaW5nKTogQWRkcmVzc0RldGFpbHMge1xuICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IHVybC5wYXJzZShyYXdBZGRyZXNzKTtcbiAgY29uc3QgcXVlcnlEZXRhaWxzID0gYWRkcmVzc0RldGFpbHMucXVlcnkgPyBuZXcgVVJMU2VhcmNoUGFyYW1zKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYmFzZUFkZHJlc3MgPSBhZGRyZXNzRGV0YWlscy5wYXRobmFtZSBhcyBzdHJpbmc7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHtyYXdBZGRyZXNzfWApO1xuICB9XG5cbiAgLy8gYWRkcmVzcyBkb2Vzbid0IGhhdmUgYSBtZW1vIGlkIG9yIG1lbW9JZCBpcyBlbXB0eVxuICBpZiAoYmFzZUFkZHJlc3MgPT09IHJhd0FkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogcmF3QWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBpZiAoIXF1ZXJ5RGV0YWlscyB8fCBfLmlzTmlsKHF1ZXJ5RGV0YWlscy5nZXQoJ21lbW9JZCcpKSkge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBtb3JlIHByb3BlcnRpZXMsIHRoZSBxdWVyeSBkZXRhaWxzIG5lZWQgdG8gY29udGFpbiB0aGUgbWVtbyBpZCBwcm9wZXJ0eVxuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3Mgd2l0aCBtZW1vIGlkOiAke3Jhd0FkZHJlc3N9YCk7XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gcXVlcnlEZXRhaWxzLmdldCgnbWVtb0lkJykgYXMgc3RyaW5nO1xuICBpZiAoIWlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAnJHtyYXdBZGRyZXNzfScsIG1lbW9JZCBpcyBub3QgdmFsaWRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlscyAtIEFkZHJlc3Mgd2hpY2ggdG8gYXBwZW5kIG1lbW8gaWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gQWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzLCBtZW1vSWQgfTogQWRkcmVzc0RldGFpbHMpOiBzdHJpbmcge1xuICBpZiAobWVtb0lkICYmIGlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICByZXR1cm4gYCR7YWRkcmVzc30/bWVtb0lkPSR7bWVtb0lkfWA7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIEFkZHJlc3MgaW4gdGhlIGZvcm0gPGFkZHJlc3M+P21lbW9JZD08bWVtb0lkPlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiBpbnB1dCBpcyBhIHZhbGlkIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgIHJldHVybiBhZGRyZXNzID09PSBub3JtYWxpemVBZGRyZXNzKGFkZHJlc3NEZXRhaWxzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIGhlZGVyYSB7cHJvdG8uVG9rZW5JRH0gb2JqZWN0IGZyb20gdG9rZW4gSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRva2VuSUQgLSBUaGUgdG9rZW4gSUQgdG8gYnVpbGRcbiAqIEByZXR1cm5zIHtwcm90by5Ub2tlbklEfSAtIFRoZSByZXN1bHRpbmcgcHJvdG8gVG9rZW5JRCBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGVkZXJhVG9rZW5JRCh0b2tlbklEOiBzdHJpbmcpOiBwcm90by5Ub2tlbklEIHtcbiAgY29uc3QgdG9rZW5EYXRhID0gVG9rZW5JZC5mcm9tU3RyaW5nKHRva2VuSUQpO1xuICByZXR1cm4gbmV3IHByb3RvLlRva2VuSUQoe1xuICAgIHRva2VuTnVtOiB0b2tlbkRhdGEubnVtLFxuICAgIHJlYWxtTnVtOiB0b2tlbkRhdGEucmVhbG0sXG4gICAgc2hhcmROdW06IHRva2VuRGF0YS5zaGFyZCxcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGQgaGVkZXJhIHtwcm90by5BY2NvdW50SUR9IG9iamVjdCBmcm9tIGFjY291bnQgSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJRCAtIFRoZSBhY2NvdW50IElEIHRvIGJ1aWxkXG4gKiBAcmV0dXJucyB7cHJvdG99IC0gVGhlIHJlc3VsdGluZyBwcm90byBBY2NvdW50SUQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEhlZGVyYUFjY291bnRJRChhY2NvdW50SUQ6IHN0cmluZyk6IHByb3RvLkFjY291bnRJRCB7XG4gIGNvbnN0IGFjY291bnRJZCA9IEFjY291bnRJZC5mcm9tU3RyaW5nKGFjY291bnRJRCk7XG4gIHJldHVybiBuZXcgcHJvdG8uQWNjb3VudElEKHtcbiAgICBzaGFyZE51bTogYWNjb3VudElkLnNoYXJkLFxuICAgIHJlYWxtTnVtOiBhY2NvdW50SWQucmVhbG0sXG4gICAgYWNjb3VudE51bTogYWNjb3VudElkLm51bSxcbiAgfSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgSGVkZXJhIHRva2VuIElEIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9rZW5JZCAtIFRoZSB0b2tlbiBJRCB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiB0b2tlbklkIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRIZWRlcmFUb2tlbklEKHRva2VuSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBpc0Zvcm1hdFZhbGlkID0gIV8uaXNFbXB0eSh0b2tlbklkKSAmJiAhIXRva2VuSWQubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKTtcbiAgY29uc3QgaXNUb2tlblN1cHBvcnRlZCA9IGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkKSAhPT0gdW5kZWZpbmVkO1xuXG4gIHJldHVybiBpc0Zvcm1hdFZhbGlkICYmIGlzVG9rZW5TdXBwb3J0ZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBJRCBmcm9tIHRva2VuIG5hbWUsIGlmIHN1cHBvcnRlZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUgLSBUaGUgaGVkZXJhIHRva2VuIG5hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSBhc3NvY2lhdGVkIHRva2VuIElEIG9yIHVuZGVmaW5lZCBpZiBub3Qgc3VwcG9ydGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUodG9rZW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoY29pbnMuaGFzKHRva2VuTmFtZSkpIHtcbiAgICBjb25zdCB0b2tlbiA9IGNvaW5zLmdldCh0b2tlbk5hbWUpO1xuICAgIGlmICh0b2tlbi5pc1Rva2VuICYmIHRva2VuIGluc3RhbmNlb2YgSGVkZXJhVG9rZW4pIHtcbiAgICAgIHJldHVybiB0b2tlbi50b2tlbklkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBmcm9tIHRva2VuIElELCBpZiBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0gdG9rZW5JZCAtIFRoZSB0b2tlbiBhZGRyZXNzXG4gKiBAcmV0dXJucyB7QmFzZUNvaW59IC0gQmFzZUNvaW4gb2JqZWN0IGZvciB0aGUgbWF0Y2hpbmcgdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkOiBzdHJpbmcpOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBjb25zdCB0b2tlbnNBcnJheSA9IGNvaW5zXG4gICAgLmZpbHRlcigoY29pbikgPT4ge1xuICAgICAgcmV0dXJuIGNvaW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbiAmJiBjb2luLnRva2VuSWQgPT09IHRva2VuSWQ7XG4gICAgfSlcbiAgICAubWFwKCh0b2tlbikgPT4gdG9rZW4pOyAvLyBmbGF0dGVuIGNvaW4gbWFwIHRvIGFycmF5XG5cbiAgcmV0dXJuIHRva2Vuc0FycmF5Lmxlbmd0aCA+IDAgPyB0b2tlbnNBcnJheVswXSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCB0b2tlbiB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICpcbiAqIEBwYXJhbSB7cHJvdG8uSUNyeXB0b1RyYW5zZmVyVHJhbnNhY3Rpb25Cb2R5IHwgbnVsbH0gdHJhbnNmZXJUeEJvZHkgaXMgYSB0cmFuc2ZlciB0cmFuc2FjdGlvbiBib2R5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpcyBpbnB1dCBpcyBhIHZhbGlkIHRva2VuIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rva2VuVHJhbnNmZXIodHJhbnNmZXJUeEJvZHk6IHByb3RvLklDcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keSB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhdHJhbnNmZXJUeEJvZHkgJiYgISF0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycyAmJiB0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycy5sZW5ndGggPiAwO1xufVxuXG4vKiogdmFsaWRhdGVzIGEgc3RhcnRUaW1lIHN0cmluZyB0byBiZSBhIHZhbGlkIHRpbWVzdGFtcCBhbmQgaW4gdGhlIGZ1dHVyZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0YXJ0VGltZSAtIFRoZSBzdGFydFRpbWUgdG8gYmUgdmFsaWRhdGVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBpZiBzdGFydFRpbWUgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIG9yIGlzIGluIHRoZSBwYXN0XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGFydFRpbWUoc3RhcnRUaW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFpc1ZhbGlkVGltZVN0cmluZyhzdGFydFRpbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHN0YXJ0VGltZSwgZ290OiAnICsgc3RhcnRUaW1lKTtcbiAgfVxuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIGNvbnN0IHN0YXJ0VGltZUZpeGVkID0gbm9ybWFsaXplU3RhcnR0aW1lKHN0YXJ0VGltZSk7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBCaWdOdW1iZXIoc3RhcnRUaW1lRml4ZWQpLmlzTGVzc1RoYW5PckVxdWFsVG8oY3VycmVudFRpbWUpO1xuICBpZiAocmVzdWx0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzdGFydFRpbWUgbXVzdCBiZSBhIGZ1dHVyZSB0aW1lc3RhbXAsIGdvdDogJyArIHN0YXJ0VGltZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZSkudG9GaXhlZCg5KTtcbn1cblxuLyoqXG4gKiBBd2FpdCBmb3IgYSBnaXZlbiBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSBtcyAtIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kc1xuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIGdpdmVuIGFtb3VudCBvZiB0aW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnNvbGUubG9nKGBzbGVlcGluZyBmb3IgJHttc30gbXNgKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHN0YXJ0VGltZSBpcyB3aXRoaW4gdGhlIGJyb2FkY2FzdCB3aW5kb3cgKDUgc2Vjb25kcyBhZnRlciBhbmQgMTc1IHNlY29uZHMgYWZ0ZXIgdGhlIHN0YXJ0VGltZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZEJyb2FkY2FzdE5vdyhzdGFydFRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBzdGFydFRpbWVGaXhlZCA9IG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWUpO1xuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDUgc2Vjb25kc1xuICBjb25zdCBzdGFydGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDUpLnRvRml4ZWQoOSk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDE3MCBzZWNvbmRzXG4gIGNvbnN0IGVuZGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDE3NSkudG9GaXhlZCg5KTtcblxuICBpZiAobmV3IEJpZ051bWJlcihjdXJyZW50VGltZSkuaXNHcmVhdGVyVGhhbihlbmRpbmdUaW1lV2luZG93KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdzdGFydFRpbWUgd2luZG93IGV4cGlyZWQsIGdvdDogJyArXG4gICAgICAgIHN0YXJ0VGltZUZpeGVkICtcbiAgICAgICAgJyAtIGN1cnJlbnRUaW1lOiAnICtcbiAgICAgICAgY3VycmVudFRpbWUgK1xuICAgICAgICAnIC0gZW5kaW5nVGltZVdpbmRvdyAnICtcbiAgICAgICAgZW5kaW5nVGltZVdpbmRvd1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzR3JlYXRlclRoYW5PckVxdWFsVG8oc3RhcnRpbmdUaW1lV2luZG93KSAmJlxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzTGVzc1RoYW5PckVxdWFsVG8oZW5kaW5nVGltZVdpbmRvdylcbiAgKTtcbn1cbiJdfQ==
|
|
481
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSx3Q0FrQkM7QUFRRCxvREFhQztBQVFELDRDQVVDO0FBT0QsOENBRUM7QUFPRCx3Q0FRQztBQVVELDhDQUVDO0FBUUQsc0NBT0M7QUFRRCxrRUFLQztBQVFELGdEQUVDO0FBUUQsNENBRUM7QUFRRCwwQ0FFQztBQVNELG9DQUtDO0FBUUQsa0NBRUM7QUFRRCxvQ0FFQztBQVFELHNEQU9DO0FBU0QsOENBS0M7QUFRRCx3Q0FHQztBQVFELDhDQTZCQztBQVFELDRDQUtDO0FBUUQsa0VBT0M7QUFRRCxnREFPQztBQVFELG9EQU9DO0FBUUQsb0RBS0M7QUFRRCw0REFTQztBQVFELDREQVFDO0FBUUQsMENBRUM7QUFPRCw4Q0FVQztBQUVELGdEQUVDO0FBT0Qsc0JBR0M7QUFLRCxnREF1QkM7QUF4Y0QsMENBQTRCO0FBQzVCLHdDQUEwRjtBQUMxRiw0Q0FBeUM7QUFDekMsZ0VBQXFDO0FBQ3JDLHFEQUF1QztBQUV2Qyw4Q0FBc0I7QUFDdEIsbURBQXVFO0FBRTlELHNGQUZBLGdCQUFLLE9BRUE7QUFBRSw2RkFGQSx1QkFBWSxPQUVBO0FBRDVCLGlEQUFtRTtBQUduRSxNQUFNLG1CQUFtQixHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9DLElBQ0UsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7UUFDMUQsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsSUFBWTtJQUMvQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsR0FBRyxtQkFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEdBQVc7SUFDMUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsZUFBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsaUJBQWlCO0lBQy9CLE9BQU8sT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0FBQ3hGLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYztJQUM1QixJQUFJLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUM1RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsSUFBWTtJQUM1QyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLE1BQWM7SUFDMUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FDTCxlQUFlLENBQUMsU0FBUyxFQUFFO1FBQzNCLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFDekMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQ3pELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQiwyQkFBMkIsQ0FBQyxjQUFtQjtJQUM3RCxNQUFNLGNBQWMsR0FBRyxPQUFPLGNBQWMsS0FBSyxRQUFRLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTNGLE9BQU8sY0FBYyxJQUFJLGFBQWEsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFvQjtJQUNyRixPQUFPLEdBQUcsUUFBUSxJQUFJLENBQUMsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWtCO0lBQy9FLE9BQU8sR0FBRyxRQUFRLElBQUksQ0FBQyxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7QUFDekQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBb0I7SUFDbEUsT0FBTyxHQUFHLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUMvQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWMsRUFBRSxHQUFXO0lBQ3RELElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLElBQVk7SUFDdEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQUMsR0FBVztJQUN0QyxPQUFPLGdCQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLFVBQWtCO0lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZSxFQUFFLFdBQW1CO0lBQ3BFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxxQkFBVSxDQUFDLG9CQUFvQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDNUMsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDO0FBQ2hDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFVBQWtCO0lBQ2xELE1BQU0sY0FBYyxHQUFHLGFBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxlQUFlLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEcsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQWtCLENBQUM7SUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxxQkFBVSxDQUFDLG9CQUFvQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxXQUFXLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0IsT0FBTztZQUNMLE9BQU8sRUFBRSxVQUFVO1lBQ25CLE1BQU0sRUFBRSxTQUFTO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pELHVGQUF1RjtRQUN2RixNQUFNLElBQUkscUJBQVUsQ0FBQyxpQ0FBaUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLHFCQUFVLENBQUMscUJBQXFCLFVBQVUsd0JBQXdCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFrQjtJQUNsRSxJQUFJLE1BQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEdBQUcsT0FBTyxXQUFXLE1BQU0sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQiwyQkFBMkIsQ0FBQyxPQUFlO0lBQ3pELElBQUksQ0FBQztRQUNILE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE9BQU8sT0FBTyxLQUFLLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsT0FBZTtJQUNoRCxNQUFNLFNBQVMsR0FBRyxhQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE9BQU8sSUFBSSxhQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRztRQUN2QixRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUs7UUFDekIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLO0tBQzFCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLFNBQWlCO0lBQ3BELE1BQU0sU0FBUyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsT0FBTyxJQUFJLGFBQUssQ0FBQyxTQUFTLENBQUM7UUFDekIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQ3pCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSztRQUN6QixVQUFVLEVBQUUsU0FBUyxDQUFDLEdBQUc7S0FDMUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsT0FBZTtJQUNsRCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNqRyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUV6RSxPQUFPLGFBQWEsSUFBSSxnQkFBZ0IsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxTQUFpQjtJQUN4RCxJQUFJLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLFlBQVkscUJBQVcsRUFBRSxDQUFDO1lBQ2xELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLE9BQWU7SUFDdEQsTUFBTSxXQUFXLEdBQUcsZUFBSztTQUN0QixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNmLE9BQU8sSUFBSSxZQUFZLHFCQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUM7SUFDakUsQ0FBQyxDQUFDO1NBQ0QsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtJQUV0RCxPQUFPLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM3RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsY0FBMkQ7SUFDekYsT0FBTyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsY0FBYyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUN6RyxDQUFDO0FBRUQ7Ozs7S0FJSztBQUNMLFNBQWdCLGlCQUFpQixDQUFDLFNBQWlCO0lBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUM3RSxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLFNBQWlCO0lBQ2xELE9BQU8sSUFBSSxzQkFBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLEtBQUssQ0FBQyxFQUFVO0lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLFNBQWlCO0lBQ2xELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3JDLDJCQUEyQjtJQUMzQixNQUFNLGtCQUFrQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLDZCQUE2QjtJQUM3QixNQUFNLGdCQUFnQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVFLElBQUksSUFBSSxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FDYixpQ0FBaUM7WUFDL0IsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixXQUFXO1lBQ1gsc0JBQXNCO1lBQ3RCLGdCQUFnQixDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FDTCxJQUFJLHNCQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUM7UUFDckUsSUFBSSxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQ2pFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWNjb3VudElkLCBQcml2YXRlS2V5LCBQdWJsaWNLZXksIFRva2VuSWQsIFRyYW5zYWN0aW9uSWQgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0ICogYXMgc3RlbGxhciBmcm9tICdzdGVsbGFyLXNkayc7XG5pbXBvcnQgeyBBZGRyZXNzRGV0YWlscyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IHsgdG9IZXgsIHRvVWludDhBcnJheSwgVXRpbHNFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luLCBjb2lucywgSGVkZXJhVG9rZW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmV4cG9ydCB7IHRvSGV4LCB0b1VpbnQ4QXJyYXkgfTtcblxuY29uc3QgTUFYX1RJTllCQVJTX0FNT1VOVCA9IG5ldyBCaWdOdW1iZXIoMikucG93KDYzKS5taW51cygxKTtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSBhY2NvdW50IGFkZHJlc3NcbiAqXG4gKiBJbiBhbnkgZm9ybSwgYHNoYXJkYCBhbmQgYHJlYWxtYCBhcmUgYXNzdW1lZCB0byBiZSAwIGlmIG5vdCBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYWRkcmVzc0FycmF5ID0gYWRkcmVzcy5zcGxpdCgnP21lbW9JZD0nKTtcblxuICBpZiAoXG4gICAgXy5pc0VtcHR5KGFkZHJlc3MpIHx8XG4gICAgIVsxLCAyXS5pbmNsdWRlcyhhZGRyZXNzQXJyYXkubGVuZ3RoKSB8fFxuICAgICFhZGRyZXNzQXJyYXlbMF0ubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKSB8fFxuICAgIChhZGRyZXNzQXJyYXlbMV0gJiYgIWlzVmFsaWRNZW1vKGFkZHJlc3NBcnJheVsxXSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgYWNjID0gQWNjb3VudElkLmZyb21TdHJpbmcoYWRkcmVzc0FycmF5WzBdKTtcbiAgICByZXR1cm4gIV8uaXNOYU4oYWNjLm51bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSB0cmFuc2FjdGlvbiBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eElkIC0gVGhlIHRyYW5zYWN0aW9uIGlkIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eSh0eElkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb25JZC5mcm9tU3RyaW5nKHR4SWQpO1xuICAgIGlmIChfLmlzTmlsKHR4LmFjY291bnRJZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFfLmlzTmFOKHR4LmFjY291bnRJZC5udW0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSGVkZXJhIHB1YmxpYyBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eShrZXkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcHViS2V5ID0gUHVibGljS2V5LmZyb21TdHJpbmcoa2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIHJldHVybiAhXy5pc05hTihwdWJLZXkudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBub2RlSlMucHJvY2VzcyBleGlzdCBhbmQgaWYgYSBub2RlIHZlcnNpb24gaXMgZGVmaW5lZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBub2RlSlMgZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZUVudmlyb25tZW50KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgY3VycmVudCB0aW1lIHdpdGggbmFub3NlY29uZHMgcHJlY2lzaW9uXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgY3VycmVudCB0aW1lIGluIHNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRUaW1lKCk6IHN0cmluZyB7XG4gIGlmIChpc05vZGVFbnZpcm9ubWVudCgpKSB7XG4gICAgY29uc3QgbmFub3MgPSBwcm9jZXNzLmhydGltZSgpWzFdO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoRGF0ZS5ub3coKSAqIDEwMDAwMDAgKyBuYW5vcykgLyAxMDAwMDAwMDAwO1xuICAgIHJldHVybiBzZWNvbmRzLnRvRml4ZWQoOSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCkpLnRvRml4ZWQoOSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHRpbWVzdGFtcFxuICpcbiAqIE5hbm9zZWNvbmRzIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHBhc3NlZCBhZnRlciBhIGRvdCwgZm9yIGV4YW1wbGU6IDE1OTUzNzQ3MjMuMzU2OTgxNjg5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBUaGUgdGltZXN0YW1wIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGltZVN0cmluZyh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRpbWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gKFxuICAgIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJlxuICAgIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApICYmXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzTGVzc1RoYW5PckVxdWFsVG8oTUFYX1RJTllCQVJTX0FNT1VOVClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHJhdyB0cmFuc2FjdGlvbiBhY2NvbW1vZGF0ZXMgdG8gYml0Z28ncyBwcmVmZXJyZWQgZm9ybWF0XG4gKlxuICogQHBhcmFtIHthbnl9IHJhd1RyYW5zYWN0aW9uIC0gVGhlIHJhdyB0cmFuc2FjdGlvbiB0byBiZSBjaGVja2VkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdChyYXdUcmFuc2FjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzQWxwaGFOdW1lcmljID0gdHlwZW9mIHJhd1RyYW5zYWN0aW9uID09PSAnc3RyaW5nJyAmJiAvXltcXGRhLWZBLUZdKyQvLnRlc3QocmF3VHJhbnNhY3Rpb24pO1xuICBjb25zdCBpc1ZhbGlkQnVmZmVyID0gQnVmZmVyLmlzQnVmZmVyKHJhd1RyYW5zYWN0aW9uKSAmJiAhIVVpbnQ4QXJyYXkuZnJvbShyYXdUcmFuc2FjdGlvbik7XG5cbiAgcmV0dXJuIGlzQWxwaGFOdW1lcmljIHx8IGlzVmFsaWRCdWZmZXI7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiB7cHJvdG8uSUFjY291bnRJRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JQWNjb3VudElEfSBhY2NvdW50SWQgLSBBY2NvdW50IGlkIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JQWNjb3VudElEfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5QWNjb3VudElkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCBhY2NvdW50TnVtIH06IHByb3RvLklBY2NvdW50SUQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2hhcmROdW0gfHwgMH0uJHtyZWFsbU51bSB8fCAwfS4ke2FjY291bnROdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVG9rZW5JRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JVG9rZW5JRH0gLSB0b2tlbiBpZCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRva2VuSUR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbklkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCB0b2tlbk51bSB9OiBwcm90by5JVG9rZW5JRCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaGFyZE51bSB8fCAwfS4ke3JlYWxtTnVtIHx8IDB9LiR7dG9rZW5OdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVGltZXN0YW1wfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklUaW1lc3RhbXB9IHRpbWVzdGFtcCAtIFRpbWVzdGFtcCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRpbWVzdGFtcH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVR4VGltZSh7IHNlY29uZHMsIG5hbm9zIH06IHByb3RvLklUaW1lc3RhbXApOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2Vjb25kc30uJHtuYW5vc31gO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHByZWZpeCBmcm9tIGEgc3RyaW5nIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggdGhhdCBwcmVmaXhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IC0gVGhlIHByZWZpeCB0byBiZSByZW1vdmVkXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG9yaWdpbmFsIHN0cmluZywgdXN1YWxseSBhIHByaXZhdGUgb3IgcHVibGljIGtleVxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHdpdGhvdXQgcHJlZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcmVmaXgocHJlZml4OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBrZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIG1lbW9cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtb1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVtbyhtZW1vOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEoXy5pc0VtcHR5KG1lbW8pIHx8IEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+IDEwMCk7XG59XG5cbi8qKlxuICogVXNlcyB0aGUgbmF0aXZlIGhhc2hncmFwaCBTREsgZnVuY3Rpb24gdG8gZ2V0IGEgcmF3IGtleS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IC0gUHJpdmF0ZSBrZXlcbiAqIEByZXR1cm5zIHtQcml2YXRlS2V5fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmF3S2V5KHBydjogc3RyaW5nKTogUHJpdmF0ZUtleSB7XG4gIHJldHVybiBQcml2YXRlS2V5LmZyb21TdHJpbmcocHJ2KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0ZWxsYXIgcHVibGljIGtleSB0byBlZDI1NTE5IGhleCBmb3JtYXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RlbGxhclB1YlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGcm9tU3RlbGxhclB1YihzdGVsbGFyUHViOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0ZWxsYXIuU3RyS2V5LmlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHN0ZWxsYXJQdWIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSB2YWxpZCBzdGVsbGFyIHB1Yi4nKTtcbiAgfVxuXG4gIGNvbnN0IHJhd0tleTogQnVmZmVyID0gc3RlbGxhci5TdHJLZXkuZGVjb2RlRWQyNTUxOVB1YmxpY0tleShzdGVsbGFyUHViKTtcbiAgcmV0dXJuIHJhd0tleS50b1N0cmluZygnaGV4Jyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHR3byBhZGRyZXNzZXMgaGF2ZSB0aGUgc2FtZSBiYXNlIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGJhc2VBZGRyZXNzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgYmFzZUFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuICByZXR1cm4gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzcykgPT09IGdldEJhc2VBZGRyZXNzKGJhc2VBZGRyZXNzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIGFkZHJlc3MgcG9ydGlvbiBvZiBhbiBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IC0gdGhlIGJhc2UgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzLmFkZHJlc3M7XG59XG5cbi8qKlxuICogUHJvY2VzcyBhZGRyZXNzIGludG8gYWRkcmVzcyBhbmQgbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByYXdBZGRyZXNzXG4gKiBAcmV0dXJucyB7QWRkcmVzc0RldGFpbHN9IC0gb2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcyBhbmQgbWVtbyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0RldGFpbHMocmF3QWRkcmVzczogc3RyaW5nKTogQWRkcmVzc0RldGFpbHMge1xuICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IHVybC5wYXJzZShyYXdBZGRyZXNzKTtcbiAgY29uc3QgcXVlcnlEZXRhaWxzID0gYWRkcmVzc0RldGFpbHMucXVlcnkgPyBuZXcgVVJMU2VhcmNoUGFyYW1zKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYmFzZUFkZHJlc3MgPSBhZGRyZXNzRGV0YWlscy5wYXRobmFtZSBhcyBzdHJpbmc7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHtyYXdBZGRyZXNzfWApO1xuICB9XG5cbiAgLy8gYWRkcmVzcyBkb2Vzbid0IGhhdmUgYSBtZW1vIGlkIG9yIG1lbW9JZCBpcyBlbXB0eVxuICBpZiAoYmFzZUFkZHJlc3MgPT09IHJhd0FkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogcmF3QWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBpZiAoIXF1ZXJ5RGV0YWlscyB8fCBfLmlzTmlsKHF1ZXJ5RGV0YWlscy5nZXQoJ21lbW9JZCcpKSkge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBtb3JlIHByb3BlcnRpZXMsIHRoZSBxdWVyeSBkZXRhaWxzIG5lZWQgdG8gY29udGFpbiB0aGUgbWVtbyBpZCBwcm9wZXJ0eVxuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3Mgd2l0aCBtZW1vIGlkOiAke3Jhd0FkZHJlc3N9YCk7XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gcXVlcnlEZXRhaWxzLmdldCgnbWVtb0lkJykgYXMgc3RyaW5nO1xuICBpZiAoIWlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAnJHtyYXdBZGRyZXNzfScsIG1lbW9JZCBpcyBub3QgdmFsaWRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlscyAtIEFkZHJlc3Mgd2hpY2ggdG8gYXBwZW5kIG1lbW8gaWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gQWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzLCBtZW1vSWQgfTogQWRkcmVzc0RldGFpbHMpOiBzdHJpbmcge1xuICBpZiAobWVtb0lkICYmIGlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICByZXR1cm4gYCR7YWRkcmVzc30/bWVtb0lkPSR7bWVtb0lkfWA7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIEFkZHJlc3MgaW4gdGhlIGZvcm0gPGFkZHJlc3M+P21lbW9JZD08bWVtb0lkPlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiBpbnB1dCBpcyBhIHZhbGlkIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgIHJldHVybiBhZGRyZXNzID09PSBub3JtYWxpemVBZGRyZXNzKGFkZHJlc3NEZXRhaWxzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIGhlZGVyYSB7cHJvdG8uVG9rZW5JRH0gb2JqZWN0IGZyb20gdG9rZW4gSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRva2VuSUQgLSBUaGUgdG9rZW4gSUQgdG8gYnVpbGRcbiAqIEByZXR1cm5zIHtwcm90by5Ub2tlbklEfSAtIFRoZSByZXN1bHRpbmcgcHJvdG8gVG9rZW5JRCBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGVkZXJhVG9rZW5JRCh0b2tlbklEOiBzdHJpbmcpOiBwcm90by5Ub2tlbklEIHtcbiAgY29uc3QgdG9rZW5EYXRhID0gVG9rZW5JZC5mcm9tU3RyaW5nKHRva2VuSUQpO1xuICByZXR1cm4gbmV3IHByb3RvLlRva2VuSUQoe1xuICAgIHRva2VuTnVtOiB0b2tlbkRhdGEubnVtLFxuICAgIHJlYWxtTnVtOiB0b2tlbkRhdGEucmVhbG0sXG4gICAgc2hhcmROdW06IHRva2VuRGF0YS5zaGFyZCxcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGQgaGVkZXJhIHtwcm90by5BY2NvdW50SUR9IG9iamVjdCBmcm9tIGFjY291bnQgSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJRCAtIFRoZSBhY2NvdW50IElEIHRvIGJ1aWxkXG4gKiBAcmV0dXJucyB7cHJvdG99IC0gVGhlIHJlc3VsdGluZyBwcm90byBBY2NvdW50SUQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEhlZGVyYUFjY291bnRJRChhY2NvdW50SUQ6IHN0cmluZyk6IHByb3RvLkFjY291bnRJRCB7XG4gIGNvbnN0IGFjY291bnRJZCA9IEFjY291bnRJZC5mcm9tU3RyaW5nKGFjY291bnRJRCk7XG4gIHJldHVybiBuZXcgcHJvdG8uQWNjb3VudElEKHtcbiAgICBzaGFyZE51bTogYWNjb3VudElkLnNoYXJkLFxuICAgIHJlYWxtTnVtOiBhY2NvdW50SWQucmVhbG0sXG4gICAgYWNjb3VudE51bTogYWNjb3VudElkLm51bSxcbiAgfSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgSGVkZXJhIHRva2VuIElEIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9rZW5JZCAtIFRoZSB0b2tlbiBJRCB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiB0b2tlbklkIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRIZWRlcmFUb2tlbklEKHRva2VuSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBpc0Zvcm1hdFZhbGlkID0gIV8uaXNFbXB0eSh0b2tlbklkKSAmJiAhIXRva2VuSWQubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKTtcbiAgY29uc3QgaXNUb2tlblN1cHBvcnRlZCA9IGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkKSAhPT0gdW5kZWZpbmVkO1xuXG4gIHJldHVybiBpc0Zvcm1hdFZhbGlkICYmIGlzVG9rZW5TdXBwb3J0ZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBJRCBmcm9tIHRva2VuIG5hbWUsIGlmIHN1cHBvcnRlZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUgLSBUaGUgaGVkZXJhIHRva2VuIG5hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSBhc3NvY2lhdGVkIHRva2VuIElEIG9yIHVuZGVmaW5lZCBpZiBub3Qgc3VwcG9ydGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUodG9rZW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoY29pbnMuaGFzKHRva2VuTmFtZSkpIHtcbiAgICBjb25zdCB0b2tlbiA9IGNvaW5zLmdldCh0b2tlbk5hbWUpO1xuICAgIGlmICh0b2tlbi5pc1Rva2VuICYmIHRva2VuIGluc3RhbmNlb2YgSGVkZXJhVG9rZW4pIHtcbiAgICAgIHJldHVybiB0b2tlbi50b2tlbklkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBmcm9tIHRva2VuIElELCBpZiBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0gdG9rZW5JZCAtIFRoZSB0b2tlbiBhZGRyZXNzXG4gKiBAcmV0dXJucyB7QmFzZUNvaW59IC0gQmFzZUNvaW4gb2JqZWN0IGZvciB0aGUgbWF0Y2hpbmcgdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkOiBzdHJpbmcpOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBjb25zdCB0b2tlbnNBcnJheSA9IGNvaW5zXG4gICAgLmZpbHRlcigoY29pbikgPT4ge1xuICAgICAgcmV0dXJuIGNvaW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbiAmJiBjb2luLnRva2VuSWQgPT09IHRva2VuSWQ7XG4gICAgfSlcbiAgICAubWFwKCh0b2tlbikgPT4gdG9rZW4pOyAvLyBmbGF0dGVuIGNvaW4gbWFwIHRvIGFycmF5XG5cbiAgcmV0dXJuIHRva2Vuc0FycmF5Lmxlbmd0aCA+IDAgPyB0b2tlbnNBcnJheVswXSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCB0b2tlbiB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICpcbiAqIEBwYXJhbSB7cHJvdG8uSUNyeXB0b1RyYW5zZmVyVHJhbnNhY3Rpb25Cb2R5IHwgbnVsbH0gdHJhbnNmZXJUeEJvZHkgaXMgYSB0cmFuc2ZlciB0cmFuc2FjdGlvbiBib2R5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpcyBpbnB1dCBpcyBhIHZhbGlkIHRva2VuIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rva2VuVHJhbnNmZXIodHJhbnNmZXJUeEJvZHk6IHByb3RvLklDcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keSB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhdHJhbnNmZXJUeEJvZHkgJiYgISF0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycyAmJiB0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycy5sZW5ndGggPiAwO1xufVxuXG4vKiogdmFsaWRhdGVzIGEgc3RhcnRUaW1lIHN0cmluZyB0byBiZSBhIHZhbGlkIHRpbWVzdGFtcCBhbmQgaW4gdGhlIGZ1dHVyZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0YXJ0VGltZSAtIFRoZSBzdGFydFRpbWUgdG8gYmUgdmFsaWRhdGVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBpZiBzdGFydFRpbWUgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIG9yIGlzIGluIHRoZSBwYXN0XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGFydFRpbWUoc3RhcnRUaW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFpc1ZhbGlkVGltZVN0cmluZyhzdGFydFRpbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHN0YXJ0VGltZSwgZ290OiAnICsgc3RhcnRUaW1lKTtcbiAgfVxuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIGNvbnN0IHN0YXJ0VGltZUZpeGVkID0gbm9ybWFsaXplU3RhcnR0aW1lKHN0YXJ0VGltZSk7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBCaWdOdW1iZXIoc3RhcnRUaW1lRml4ZWQpLmlzTGVzc1RoYW5PckVxdWFsVG8oY3VycmVudFRpbWUpO1xuICBpZiAocmVzdWx0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzdGFydFRpbWUgbXVzdCBiZSBhIGZ1dHVyZSB0aW1lc3RhbXAsIGdvdDogJyArIHN0YXJ0VGltZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZSkudG9GaXhlZCg5KTtcbn1cblxuLyoqXG4gKiBBd2FpdCBmb3IgYSBnaXZlbiBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSBtcyAtIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kc1xuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIGdpdmVuIGFtb3VudCBvZiB0aW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnNvbGUubG9nKGBzbGVlcGluZyBmb3IgJHttc30gbXNgKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHN0YXJ0VGltZSBpcyB3aXRoaW4gdGhlIGJyb2FkY2FzdCB3aW5kb3cgKDUgc2Vjb25kcyBhZnRlciBhbmQgMTc1IHNlY29uZHMgYWZ0ZXIgdGhlIHN0YXJ0VGltZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZEJyb2FkY2FzdE5vdyhzdGFydFRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBzdGFydFRpbWVGaXhlZCA9IG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWUpO1xuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDUgc2Vjb25kc1xuICBjb25zdCBzdGFydGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDUpLnRvRml4ZWQoOSk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDE3MCBzZWNvbmRzXG4gIGNvbnN0IGVuZGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDE3NSkudG9GaXhlZCg5KTtcblxuICBpZiAobmV3IEJpZ051bWJlcihjdXJyZW50VGltZSkuaXNHcmVhdGVyVGhhbihlbmRpbmdUaW1lV2luZG93KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdzdGFydFRpbWUgd2luZG93IGV4cGlyZWQsIGdvdDogJyArXG4gICAgICAgIHN0YXJ0VGltZUZpeGVkICtcbiAgICAgICAgJyAtIGN1cnJlbnRUaW1lOiAnICtcbiAgICAgICAgY3VycmVudFRpbWUgK1xuICAgICAgICAnIC0gZW5kaW5nVGltZVdpbmRvdyAnICtcbiAgICAgICAgZW5kaW5nVGltZVdpbmRvd1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzR3JlYXRlclRoYW5PckVxdWFsVG8oc3RhcnRpbmdUaW1lV2luZG93KSAmJlxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzTGVzc1RoYW5PckVxdWFsVG8oZW5kaW5nVGltZVdpbmRvdylcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.WalletInitializationBuilder = void 0;
|
|
27
37
|
const Long = __importStar(require("long"));
|
|
@@ -111,4 +121,4 @@ class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilde
|
|
|
111
121
|
}
|
|
112
122
|
}
|
|
113
123
|
exports.WalletInitializationBuilder = WalletInitializationBuilder;
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkNBQTZCO0FBQzdCLDRDQUF5QztBQUN6QyxtREFBOEU7QUFDOUUsNkRBQTBEO0FBRTFELG1DQUFnRTtBQUNoRSx5QkFBNkI7QUFDN0IsMkNBQW9EO0FBRXBELE1BQWEsMkJBQTRCLFNBQVEsdUNBQWtCO0lBSWpFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSGIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUk3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBSyxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLElBQUksYUFBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxRSxPQUFPLE1BQU0sS0FB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LEtBQUssaUNBQXFCLEVBQUUsQ0FBQztZQUNsRCxNQUFNLElBQUksZ0NBQXFCLENBQzdCLDREQUE0RCxpQ0FBcUIsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUNuSCxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FFRjtBQTVGRCxrRUE0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgKiBhcyBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0IHsgcHJvdG8gfSBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGlzVmFsaWRQdWJsaWNLZXksIHRvSGV4LCB0b1VpbnQ4QXJyYXkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBERUZBVUxUX1NJR05FUl9OVU1CRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHk7XG4gIHByaXZhdGUgX293bmVyczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YSA9IG5ldyBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudCA9IHRoaXMuX3R4Qm9keURhdGE7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5hdXRvUmVuZXdQZXJpb2QgPSBuZXcgcHJvdG8uRHVyYXRpb24oeyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIoNzg5MDAwMCkgfSk7XG4gIH1cblxuICAvLyByZWdpb24gQmFzZSBCdWlsZGVyXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5rZXkgPSB7IHRocmVzaG9sZEtleTogdGhpcy5idWlsZE93bmVyc0tleXMoKSB9O1xuICAgIHRoaXMuX3R4Qm9keURhdGEuaW5pdGlhbEJhbGFuY2UgPSBMb25nLlpFUk87XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmF3S2V5cyAtIERlZmluZXMgaWYgdGhlIG93bmVycyBrZXlzIGFyZSBvYnRhaW5lZCBpbiByYXcgb3IgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXRcbiAgICogQHJldHVybnMge3Byb3RvLlRocmVzaG9sZEtleX0gLSBUaGUgd2FsbGV0IHRocmVzaG9sZCBrZXlzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkT3duZXJzS2V5cyhyYXdLZXlzID0gdHJ1ZSk6IHByb3RvLlRocmVzaG9sZEtleSB7XG4gICAgcmV0dXJuIHRoaXMuX293bmVycy5yZWR1Y2UoKHRLZXlzLCBrZXkpID0+IHtcbiAgICAgIGlmICh0S2V5cy5rZXlzICYmIHRLZXlzLmtleXMua2V5cykge1xuICAgICAgICB0S2V5cy5rZXlzLmtleXMucHVzaCh7XG4gICAgICAgICAgZWQyNTUxOTogdG9VaW50OEFycmF5KG5ldyBLZXlQYWlyKHsgcHViOiBrZXkgfSkuZ2V0S2V5cyhyYXdLZXlzKS5wdWIpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0S2V5cztcbiAgICB9LCBuZXcgcHJvdG8uVGhyZXNob2xkS2V5KHsgdGhyZXNob2xkOiAyLCBrZXlzOiB7IGtleXM6IFtdIH0gfSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBjcmVhdGVBY2MgPSB0eC50eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudDtcbiAgICBpZiAoY3JlYXRlQWNjICYmIGNyZWF0ZUFjYy5rZXkgJiYgY3JlYXRlQWNjLmtleS50aHJlc2hvbGRLZXkpIHtcbiAgICAgIHRoaXMuaW5pdE93bmVycyhjcmVhdGVBY2Mua2V5LnRocmVzaG9sZEtleSBhcyBwcm90by5UaHJlc2hvbGRLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdE93bmVycyhrZXlzOiBwcm90by5UaHJlc2hvbGRLZXkpIHtcbiAgICBpZiAoa2V5cy5rZXlzICYmIGtleXMua2V5cy5rZXlzKSB7XG4gICAgICBrZXlzLmtleXMua2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgdGhpcy5vd25lcih0b0hleChrZXkuZWQyNTUxOSEpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gQ29tbW9uIGJ1aWxkZXIgbWV0aG9kc1xuICAvKipcbiAgICogU2V0IG9uZSBvZiB0aGUgb3duZXJzIG9mIHRoZSBtdWx0aXNpZyB3YWxsZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVGhlIHB1YmxpYyBrZXkgb2YgdGhlIG93bmVyJ3MgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSAtIFRoaXMgd2FsbGV0IGluaXRpYWxpemF0aW9uIGJ1aWxkZXJcbiAgICovXG4gIG93bmVyKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl9vd25lcnMubGVuZ3RoID49IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgJ0EgbWF4aW11bSBvZiAnICsgREVGQVVMVF9TSUdORVJfTlVNQkVSICsgJyBvd25lcnMgY2FuIGJlIHNldCBmb3IgYSBtdWx0aXNpZyB3YWxsZXQnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzczogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3duZXJzLmluY2x1ZGVzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSZXBlYXRlZCBvd25lciBhZGRyZXNzOiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX293bmVycy5wdXNoKGFkZHJlc3MpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vd25lcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB3YWxsZXQgb3duZXJzJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX293bmVycy5sZW5ndGggIT09IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgdHJhbnNhY3Rpb246IHdyb25nIG51bWJlciBvZiBvd25lcnMgLS0gcmVxdWlyZWQ6ICR7REVGQVVMVF9TSUdORVJfTlVNQkVSfSwgZm91bmQ6ICR7dGhpcy5fb3duZXJzLmxlbmd0aH1gXG4gICAgICApO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.SeedValidator = void 0;
|
|
27
37
|
const stellar = __importStar(require("stellar-sdk"));
|
|
@@ -90,4 +100,4 @@ class SeedValidator {
|
|
|
90
100
|
}
|
|
91
101
|
}
|
|
92
102
|
exports.SeedValidator = SeedValidator;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWVkVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1QztBQUN2QywwQ0FBNEI7QUFDNUIsaURBQWlEO0FBQ2pELHVDQUEyQztBQUMzQyw2REFBb0Q7QUFDcEQ7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJLElBQUksR0FBMkIsU0FBUyxDQUFDO1FBRTdDLDRGQUE0RjtRQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakQsNkZBQTZGO1lBQzdGLDZFQUE2RTtZQUM3RSw4QkFBOEI7WUFFOUIsSUFBSSx1QkFBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLElBQUksQ0FBQztZQUNoRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLEdBQUcsQ0FBQztZQUN6RSxJQUFJLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsSUFBSSxHQUFHLG9CQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3hFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLHlCQUF5QixDQUFDLElBQVksRUFBRSxVQUFzQjtRQUNuRSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsT0FBTyxVQUFVLEtBQUssV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQVk7UUFDekMsTUFBTSxVQUFVLEdBQUcsdUJBQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3ZDLElBQUksQ0FBQztZQUNILElBQUEsb0JBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUEzREQsc0NBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc3RlbGxhciBmcm9tICdzdGVsbGFyLXNkayc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBDb2luRmFtaWx5IH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBjcmVhdGVSYXdLZXkgfSBmcm9tICcuL2xpYi91dGlscyc7XG5pbXBvcnQgeyBBbGdvTGliIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvaW4tYWxnbyc7XG4vKipcbiAqIFRoaXMgY2xhc3NlcyBpbnRlbnRpb24gaXMgdG8gZ3Vlc3MvdmVyaWZ5IHdoYXQgc2VlZHMgY29tZSBmcm9tIHdoZXJlLlxuICovXG5leHBvcnQgY2xhc3MgU2VlZFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBUcnkgdG8gZ3Vlc3Mgd2hhdCBraW5kIG9mIHNlZWQgdGhpcyBjb3VsZCBiZVxuICAgKiBAcGFyYW0gc2VlZFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBjb2luIHR5cGUgaXMgdW5kZXRlY3RhYmxlLiByZXR1cm5zXG4gICAqIHRoZSBjb2luIGZhbWlseSBvdGhlcndpc2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0Q29pbkZhbWlseUZyb21TZWVkKHNlZWQ6IHN0cmluZyk6IENvaW5GYW1pbHkgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb2luOiBDb2luRmFtaWx5IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gaWYgdGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgaW4gbW9yZSB0aGFuIG9uZSBjb21wZXRpbmcgc2VlZCBmb3JtYXQsIHRoYXQgY291bGQgYmUgYW4gaXNzdWVcbiAgICBpZiAoIVNlZWRWYWxpZGF0b3IuaGFzQ29tcGV0aW5nU2VlZEZvcm1hdHMoc2VlZCkpIHtcbiAgICAgIC8vIG9yZGVyaW5nIGdlbmVyYWxseSBtYXR0ZXJzIGhlcmUgLSBoYmFyIGlzIHRoZSBsZWFzdCBwZXJtaXNzaXZlIGZvciBzZWVkIGNoZWNraW5nLCBhbGdvIGFuZFxuICAgICAgLy8gc3RlbGxhciBoYXZlIGNoZWNrc3Vtcy4gY29pbiBpcyBndWFyYW50ZWVkIHRvIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBieSB0aGVcbiAgICAgIC8vIGNvbXBldGluZyBzZWVkIGZvcm1hdCBjaGVja1xuXG4gICAgICBpZiAoQWxnb0xpYi5hbGdvVXRpbHMuaXNWYWxpZFNlZWQoc2VlZCkpIGNvaW4gPSBDb2luRmFtaWx5LkFMR087XG4gICAgICBpZiAoc3RlbGxhci5TdHJLZXkuaXNWYWxpZEVkMjU1MTlTZWNyZXRTZWVkKHNlZWQpKSBjb2luID0gQ29pbkZhbWlseS5YTE07XG4gICAgICBpZiAoU2VlZFZhbGlkYXRvci5pc1ZhbGlkSGJhclNlZWRGb3JtYXQoc2VlZCkpIGNvaW4gPSBDb2luRmFtaWx5LkhCQVI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvaW47XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhpcyBpcyBhIHZhbGlkIHNlZWQgZm9yIHRoaXMgY29pbiBmYW1pbHkgdHlwZS5cbiAgICogQHBhcmFtIHNlZWQgLSBzZWVkXG4gICAqIEBwYXJhbSBjb2luRmFtaWx5IC0gdGhlIGNvaW5GYW1pbHkgb2YgdGhlIGNvaW4gd2UncmUgd29ya2luZyB3aXRoXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZEVkMjU1MTlTZWVkRm9yQ29pbihzZWVkOiBzdHJpbmcsIGNvaW5GYW1pbHk6IENvaW5GYW1pbHkpOiBib29sZWFuIHtcbiAgICBjb25zdCBndWVzc2VkQ29pbiA9IFNlZWRWYWxpZGF0b3IuZ2V0Q29pbkZhbWlseUZyb21TZWVkKHNlZWQpO1xuICAgIHJldHVybiBjb2luRmFtaWx5ID09PSBndWVzc2VkQ29pbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBuZWVkIHRvIGVuc3VyZSB0aGVyZSBpcyBubyBvdmVybGFwIGZvciBhbnkgdHdvIHNlZWRzIHdlIHB1dCBpbnRvIHRoaXMgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb25zXG4gICAqIGludGVudGlvbiBpcyBmb3IgZ2F0aW5nIHdoZXRoZXIgdGhpcyBzZWVkIGNvdWxkIHBvc3NpYmx5IG1hdGNoIHR3byBmb3JtYXRzIG9yIGlzIGludmFsaWQgaXRzZWxmLlxuICAgKiBAcGFyYW0gc2VlZFxuICAgKi9cbiAgc3RhdGljIGhhc0NvbXBldGluZ1NlZWRGb3JtYXRzKHNlZWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzQWxnb1NlZWQgPSBBbGdvTGliLmFsZ29VdGlscy5pc1ZhbGlkU2VlZChzZWVkKTtcbiAgICBjb25zdCBpc1N0ZWxsYXJTZWVkID0gc3RlbGxhci5TdHJLZXkuaXNWYWxpZEVkMjU1MTlTZWNyZXRTZWVkKHNlZWQpO1xuICAgIGNvbnN0IGlzSGJhclNlZWQgPSBTZWVkVmFsaWRhdG9yLmlzVmFsaWRIYmFyU2VlZEZvcm1hdChzZWVkKTtcblxuICAgIHJldHVybiBfLnN1bShbaXNBbGdvU2VlZCwgaXNTdGVsbGFyU2VlZCwgaXNIYmFyU2VlZF0pICE9PSAxO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGlzIGEgdmFsaWQgSGJhciBwcnYuIFRoZXNlIGNhbiBiZSBlbmNvZGVkIGRpZmZlcmVudGx5LlxuICAgKiBAcGFyYW0gc2VlZFxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRIYmFyU2VlZEZvcm1hdChzZWVkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgY3JlYXRlUmF3S2V5KHNlZWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-coin-hbar",
|
|
3
|
-
"version": "1.3.3-alpha.
|
|
3
|
+
"version": "1.3.3-alpha.238",
|
|
4
4
|
"description": "BitGo SDK coin library for Hbar",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo-beta/sdk-coin-algo": "1.3.3-alpha.
|
|
44
|
-
"@bitgo-beta/sdk-core": "2.4.1-alpha.
|
|
45
|
-
"@bitgo-beta/statics": "10.0.1-alpha.
|
|
43
|
+
"@bitgo-beta/sdk-coin-algo": "1.3.3-alpha.240",
|
|
44
|
+
"@bitgo-beta/sdk-core": "2.4.1-alpha.240",
|
|
45
|
+
"@bitgo-beta/statics": "10.0.1-alpha.240",
|
|
46
46
|
"@hashgraph/proto": "2.12.0",
|
|
47
47
|
"@hashgraph/sdk": "2.29.0",
|
|
48
48
|
"@stablelib/sha384": "^1.0.0",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"tweetnacl": "^1.0.3"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@bitgo-beta/sdk-api": "1.6.1-alpha.
|
|
58
|
-
"@bitgo-beta/sdk-test": "^8.0.
|
|
57
|
+
"@bitgo-beta/sdk-api": "1.6.1-alpha.240",
|
|
58
|
+
"@bitgo-beta/sdk-test": "^8.0.61"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "46a36bbd361f9d8aefca22c40bd5e6da588eee4b"
|
|
61
61
|
}
|