@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.
@@ -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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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.shouldBroadcastNow = exports.sleep = exports.normalizeStarttime = exports.validateStartTime = exports.isTokenTransfer = exports.getHederaTokenNameFromId = exports.getHederaTokenIdFromName = exports.isValidHederaTokenID = exports.buildHederaAccountID = exports.buildHederaTokenID = exports.isValidAddressWithPaymentId = exports.normalizeAddress = exports.getAddressDetails = exports.getBaseAddress = exports.isSameBaseAddress = exports.convertFromStellarPub = exports.createRawKey = exports.isValidMemo = exports.removePrefix = exports.stringifyTxTime = exports.stringifyTokenId = exports.stringifyAccountId = exports.isValidRawTransactionFormat = exports.isValidAmount = exports.isValidTimeString = exports.getCurrentTime = exports.isNodeEnvironment = exports.isValidPublicKey = exports.isValidTransactionId = exports.isValidAddress = exports.toUint8Array = exports.toHex = void 0;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQTRCO0FBQzVCLHdDQUEwRjtBQUMxRiw0Q0FBeUM7QUFDekMsZ0VBQXFDO0FBQ3JDLHFEQUF1QztBQUV2Qyw4Q0FBc0I7QUFDdEIsbURBQXVFO0FBRTlELHNGQUZBLGdCQUFLLE9BRUE7QUFBRSw2RkFGQSx1QkFBWSxPQUVBO0FBRDVCLGlEQUFtRTtBQUduRSxNQUFNLG1CQUFtQixHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9DLElBQ0UsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7UUFDMUQsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEQ7UUFDQSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSTtRQUNGLE1BQU0sR0FBRyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzFCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQWxCRCx3Q0FrQkM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJO1FBQ0YsTUFBTSxFQUFFLEdBQUcsbUJBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFiRCxvREFhQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsR0FBVztJQUMxQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbEIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxlQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3BDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVZELDRDQVVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQjtJQUMvQixPQUFPLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQztBQUN4RixDQUFDO0FBRkQsOENBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYztJQUM1QixJQUFJLGlCQUFpQixFQUFFLEVBQUU7UUFDdkIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzNCO1NBQU07UUFDTCxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDaEU7QUFDSCxDQUFDO0FBUkQsd0NBUUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsSUFBWTtJQUM1QyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUZELDhDQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixhQUFhLENBQUMsTUFBYztJQUMxQyxNQUFNLGVBQWUsR0FBRyxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUNMLGVBQWUsQ0FBQyxTQUFTLEVBQUU7UUFDM0IsZUFBZSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUN6QyxlQUFlLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FDekQsQ0FBQztBQUNKLENBQUM7QUFQRCxzQ0FPQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsY0FBbUI7SUFDN0QsTUFBTSxjQUFjLEdBQUcsT0FBTyxjQUFjLEtBQUssUUFBUSxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEcsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUzRixPQUFPLGNBQWMsSUFBSSxhQUFhLENBQUM7QUFDekMsQ0FBQztBQUxELGtFQUtDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFvQjtJQUNyRixPQUFPLEdBQUcsUUFBUSxJQUFJLENBQUMsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO0FBQzNELENBQUM7QUFGRCxnREFFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBa0I7SUFDL0UsT0FBTyxHQUFHLFFBQVEsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztBQUN6RCxDQUFDO0FBRkQsNENBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQW9CO0lBQ2xFLE9BQU8sR0FBRyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7QUFDL0IsQ0FBQztBQUZELDBDQUVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWMsRUFBRSxHQUFXO0lBQ3RELElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBTEQsb0NBS0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxJQUFZO0lBQ3RDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELGtDQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQUMsR0FBVztJQUN0QyxPQUFPLGdCQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCxvQ0FFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsVUFBa0I7SUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQzdDO0lBRUQsTUFBTSxNQUFNLEdBQVcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQVBELHNEQU9DO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZSxFQUFFLFdBQW1CO0lBQ3BFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QyxNQUFNLElBQUkscUJBQVUsQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUNyRDtJQUNELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBTEQsOENBS0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQztBQUNoQyxDQUFDO0FBSEQsd0NBR0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFVBQWtCO0lBQ2xELE1BQU0sY0FBYyxHQUFHLGFBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxlQUFlLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEcsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQWtCLENBQUM7SUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNoQyxNQUFNLElBQUkscUJBQVUsQ0FBQyxvQkFBb0IsVUFBVSxFQUFFLENBQUMsQ0FBQztLQUN4RDtJQUVELG9EQUFvRDtJQUNwRCxJQUFJLFdBQVcsS0FBSyxVQUFVLEVBQUU7UUFDOUIsT0FBTztZQUNMLE9BQU8sRUFBRSxVQUFVO1lBQ25CLE1BQU0sRUFBRSxTQUFTO1NBQ2xCLENBQUM7S0FDSDtJQUVELElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDeEQsdUZBQXVGO1FBQ3ZGLE1BQU0sSUFBSSxxQkFBVSxDQUFDLGlDQUFpQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQ3JFO0lBQ0QsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxxQkFBVSxDQUFDLHFCQUFxQixVQUFVLHdCQUF3QixDQUFDLENBQUM7S0FDL0U7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFdBQVc7UUFDcEIsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDO0FBN0JELDhDQTZCQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFrQjtJQUNsRSxJQUFJLE1BQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDakMsT0FBTyxHQUFHLE9BQU8sV0FBVyxNQUFNLEVBQUUsQ0FBQztLQUN0QztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFMRCw0Q0FLQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsT0FBZTtJQUN6RCxJQUFJO1FBQ0YsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsT0FBTyxPQUFPLEtBQUssZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDckQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBUEQsa0VBT0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE9BQWU7SUFDaEQsTUFBTSxTQUFTLEdBQUcsYUFBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUksYUFBSyxDQUFDLE9BQU8sQ0FBQztRQUN2QixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQ3pCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSztLQUMxQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBUEQsZ0RBT0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLFNBQWlCO0lBQ3BELE1BQU0sU0FBUyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsT0FBTyxJQUFJLGFBQUssQ0FBQyxTQUFTLENBQUM7UUFDekIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQ3pCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSztRQUN6QixVQUFVLEVBQUUsU0FBUyxDQUFDLEdBQUc7S0FDMUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVBELG9EQU9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxPQUFlO0lBQ2xELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO0lBRXpFLE9BQU8sYUFBYSxJQUFJLGdCQUFnQixDQUFDO0FBQzNDLENBQUM7QUFMRCxvREFLQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsU0FBaUI7SUFDeEQsSUFBSSxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssWUFBWSxxQkFBVyxFQUFFO1lBQ2pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUN0QjtLQUNGO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVRELDREQVNDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxPQUFlO0lBQ3RELE1BQU0sV0FBVyxHQUFHLGVBQUs7U0FDdEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDZixPQUFPLElBQUksWUFBWSxxQkFBVyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDO0lBQ2pFLENBQUMsQ0FBQztTQUNELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7SUFFdEQsT0FBTyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDN0QsQ0FBQztBQVJELDREQVFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsY0FBMkQ7SUFDekYsT0FBTyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsY0FBYyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUN6RyxDQUFDO0FBRkQsMENBRUM7QUFFRDs7OztLQUlLO0FBQ0wsU0FBZ0IsaUJBQWlCLENBQUMsU0FBaUI7SUFDakQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDLENBQUM7S0FDekQ7SUFDRCxNQUFNLFdBQVcsR0FBRyxjQUFjLEVBQUUsQ0FBQztJQUNyQyxNQUFNLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUUsSUFBSSxNQUFNLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0tBQzVFO0FBQ0gsQ0FBQztBQVZELDhDQVVDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsU0FBaUI7SUFDbEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFGRCxnREFFQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixLQUFLLENBQUMsRUFBVTtJQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBSEQsc0JBR0M7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLFNBQWlCO0lBQ2xELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3JDLDJCQUEyQjtJQUMzQixNQUFNLGtCQUFrQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLDZCQUE2QjtJQUM3QixNQUFNLGdCQUFnQixHQUFHLElBQUksc0JBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVFLElBQUksSUFBSSxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUNBQWlDO1lBQy9CLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsV0FBVztZQUNYLHNCQUFzQjtZQUN0QixnQkFBZ0IsQ0FDbkIsQ0FBQztLQUNIO0lBRUQsT0FBTyxDQUNMLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQztRQUNyRSxJQUFJLHNCQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FDakUsQ0FBQztBQUNKLENBQUM7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWNjb3VudElkLCBQcml2YXRlS2V5LCBQdWJsaWNLZXksIFRva2VuSWQsIFRyYW5zYWN0aW9uSWQgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0ICogYXMgc3RlbGxhciBmcm9tICdzdGVsbGFyLXNkayc7XG5pbXBvcnQgeyBBZGRyZXNzRGV0YWlscyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IHsgdG9IZXgsIHRvVWludDhBcnJheSwgVXRpbHNFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luLCBjb2lucywgSGVkZXJhVG9rZW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmV4cG9ydCB7IHRvSGV4LCB0b1VpbnQ4QXJyYXkgfTtcblxuY29uc3QgTUFYX1RJTllCQVJTX0FNT1VOVCA9IG5ldyBCaWdOdW1iZXIoMikucG93KDYzKS5taW51cygxKTtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSBhY2NvdW50IGFkZHJlc3NcbiAqXG4gKiBJbiBhbnkgZm9ybSwgYHNoYXJkYCBhbmQgYHJlYWxtYCBhcmUgYXNzdW1lZCB0byBiZSAwIGlmIG5vdCBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYWRkcmVzc0FycmF5ID0gYWRkcmVzcy5zcGxpdCgnP21lbW9JZD0nKTtcblxuICBpZiAoXG4gICAgXy5pc0VtcHR5KGFkZHJlc3MpIHx8XG4gICAgIVsxLCAyXS5pbmNsdWRlcyhhZGRyZXNzQXJyYXkubGVuZ3RoKSB8fFxuICAgICFhZGRyZXNzQXJyYXlbMF0ubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKSB8fFxuICAgIChhZGRyZXNzQXJyYXlbMV0gJiYgIWlzVmFsaWRNZW1vKGFkZHJlc3NBcnJheVsxXSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgYWNjID0gQWNjb3VudElkLmZyb21TdHJpbmcoYWRkcmVzc0FycmF5WzBdKTtcbiAgICByZXR1cm4gIV8uaXNOYU4oYWNjLm51bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSB0cmFuc2FjdGlvbiBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eElkIC0gVGhlIHRyYW5zYWN0aW9uIGlkIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eSh0eElkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb25JZC5mcm9tU3RyaW5nKHR4SWQpO1xuICAgIGlmIChfLmlzTmlsKHR4LmFjY291bnRJZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFfLmlzTmFOKHR4LmFjY291bnRJZC5udW0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSGVkZXJhIHB1YmxpYyBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eShrZXkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcHViS2V5ID0gUHVibGljS2V5LmZyb21TdHJpbmcoa2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIHJldHVybiAhXy5pc05hTihwdWJLZXkudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBub2RlSlMucHJvY2VzcyBleGlzdCBhbmQgaWYgYSBub2RlIHZlcnNpb24gaXMgZGVmaW5lZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBub2RlSlMgZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZUVudmlyb25tZW50KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgY3VycmVudCB0aW1lIHdpdGggbmFub3NlY29uZHMgcHJlY2lzaW9uXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgY3VycmVudCB0aW1lIGluIHNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRUaW1lKCk6IHN0cmluZyB7XG4gIGlmIChpc05vZGVFbnZpcm9ubWVudCgpKSB7XG4gICAgY29uc3QgbmFub3MgPSBwcm9jZXNzLmhydGltZSgpWzFdO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoRGF0ZS5ub3coKSAqIDEwMDAwMDAgKyBuYW5vcykgLyAxMDAwMDAwMDAwO1xuICAgIHJldHVybiBzZWNvbmRzLnRvRml4ZWQoOSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCkpLnRvRml4ZWQoOSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHRpbWVzdGFtcFxuICpcbiAqIE5hbm9zZWNvbmRzIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHBhc3NlZCBhZnRlciBhIGRvdCwgZm9yIGV4YW1wbGU6IDE1OTUzNzQ3MjMuMzU2OTgxNjg5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBUaGUgdGltZXN0YW1wIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGltZVN0cmluZyh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRpbWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gKFxuICAgIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJlxuICAgIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApICYmXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzTGVzc1RoYW5PckVxdWFsVG8oTUFYX1RJTllCQVJTX0FNT1VOVClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHJhdyB0cmFuc2FjdGlvbiBhY2NvbW1vZGF0ZXMgdG8gYml0Z28ncyBwcmVmZXJyZWQgZm9ybWF0XG4gKlxuICogQHBhcmFtIHthbnl9IHJhd1RyYW5zYWN0aW9uIC0gVGhlIHJhdyB0cmFuc2FjdGlvbiB0byBiZSBjaGVja2VkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdChyYXdUcmFuc2FjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzQWxwaGFOdW1lcmljID0gdHlwZW9mIHJhd1RyYW5zYWN0aW9uID09PSAnc3RyaW5nJyAmJiAvXltcXGRhLWZBLUZdKyQvLnRlc3QocmF3VHJhbnNhY3Rpb24pO1xuICBjb25zdCBpc1ZhbGlkQnVmZmVyID0gQnVmZmVyLmlzQnVmZmVyKHJhd1RyYW5zYWN0aW9uKSAmJiAhIVVpbnQ4QXJyYXkuZnJvbShyYXdUcmFuc2FjdGlvbik7XG5cbiAgcmV0dXJuIGlzQWxwaGFOdW1lcmljIHx8IGlzVmFsaWRCdWZmZXI7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiB7cHJvdG8uSUFjY291bnRJRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JQWNjb3VudElEfSBhY2NvdW50SWQgLSBBY2NvdW50IGlkIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JQWNjb3VudElEfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5QWNjb3VudElkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCBhY2NvdW50TnVtIH06IHByb3RvLklBY2NvdW50SUQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2hhcmROdW0gfHwgMH0uJHtyZWFsbU51bSB8fCAwfS4ke2FjY291bnROdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVG9rZW5JRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JVG9rZW5JRH0gLSB0b2tlbiBpZCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRva2VuSUR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbklkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCB0b2tlbk51bSB9OiBwcm90by5JVG9rZW5JRCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaGFyZE51bSB8fCAwfS4ke3JlYWxtTnVtIHx8IDB9LiR7dG9rZW5OdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVGltZXN0YW1wfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklUaW1lc3RhbXB9IHRpbWVzdGFtcCAtIFRpbWVzdGFtcCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRpbWVzdGFtcH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVR4VGltZSh7IHNlY29uZHMsIG5hbm9zIH06IHByb3RvLklUaW1lc3RhbXApOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2Vjb25kc30uJHtuYW5vc31gO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHByZWZpeCBmcm9tIGEgc3RyaW5nIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggdGhhdCBwcmVmaXhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IC0gVGhlIHByZWZpeCB0byBiZSByZW1vdmVkXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG9yaWdpbmFsIHN0cmluZywgdXN1YWxseSBhIHByaXZhdGUgb3IgcHVibGljIGtleVxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHdpdGhvdXQgcHJlZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcmVmaXgocHJlZml4OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBrZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIG1lbW9cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtb1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVtbyhtZW1vOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEoXy5pc0VtcHR5KG1lbW8pIHx8IEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+IDEwMCk7XG59XG5cbi8qKlxuICogVXNlcyB0aGUgbmF0aXZlIGhhc2hncmFwaCBTREsgZnVuY3Rpb24gdG8gZ2V0IGEgcmF3IGtleS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IC0gUHJpdmF0ZSBrZXlcbiAqIEByZXR1cm5zIHtQcml2YXRlS2V5fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmF3S2V5KHBydjogc3RyaW5nKTogUHJpdmF0ZUtleSB7XG4gIHJldHVybiBQcml2YXRlS2V5LmZyb21TdHJpbmcocHJ2KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0ZWxsYXIgcHVibGljIGtleSB0byBlZDI1NTE5IGhleCBmb3JtYXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RlbGxhclB1YlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGcm9tU3RlbGxhclB1YihzdGVsbGFyUHViOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0ZWxsYXIuU3RyS2V5LmlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHN0ZWxsYXJQdWIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSB2YWxpZCBzdGVsbGFyIHB1Yi4nKTtcbiAgfVxuXG4gIGNvbnN0IHJhd0tleTogQnVmZmVyID0gc3RlbGxhci5TdHJLZXkuZGVjb2RlRWQyNTUxOVB1YmxpY0tleShzdGVsbGFyUHViKTtcbiAgcmV0dXJuIHJhd0tleS50b1N0cmluZygnaGV4Jyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHR3byBhZGRyZXNzZXMgaGF2ZSB0aGUgc2FtZSBiYXNlIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGJhc2VBZGRyZXNzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgYmFzZUFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuICByZXR1cm4gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzcykgPT09IGdldEJhc2VBZGRyZXNzKGJhc2VBZGRyZXNzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIGFkZHJlc3MgcG9ydGlvbiBvZiBhbiBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IC0gdGhlIGJhc2UgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzLmFkZHJlc3M7XG59XG5cbi8qKlxuICogUHJvY2VzcyBhZGRyZXNzIGludG8gYWRkcmVzcyBhbmQgbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByYXdBZGRyZXNzXG4gKiBAcmV0dXJucyB7QWRkcmVzc0RldGFpbHN9IC0gb2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcyBhbmQgbWVtbyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0RldGFpbHMocmF3QWRkcmVzczogc3RyaW5nKTogQWRkcmVzc0RldGFpbHMge1xuICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IHVybC5wYXJzZShyYXdBZGRyZXNzKTtcbiAgY29uc3QgcXVlcnlEZXRhaWxzID0gYWRkcmVzc0RldGFpbHMucXVlcnkgPyBuZXcgVVJMU2VhcmNoUGFyYW1zKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYmFzZUFkZHJlc3MgPSBhZGRyZXNzRGV0YWlscy5wYXRobmFtZSBhcyBzdHJpbmc7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHtyYXdBZGRyZXNzfWApO1xuICB9XG5cbiAgLy8gYWRkcmVzcyBkb2Vzbid0IGhhdmUgYSBtZW1vIGlkIG9yIG1lbW9JZCBpcyBlbXB0eVxuICBpZiAoYmFzZUFkZHJlc3MgPT09IHJhd0FkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogcmF3QWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBpZiAoIXF1ZXJ5RGV0YWlscyB8fCBfLmlzTmlsKHF1ZXJ5RGV0YWlscy5nZXQoJ21lbW9JZCcpKSkge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBtb3JlIHByb3BlcnRpZXMsIHRoZSBxdWVyeSBkZXRhaWxzIG5lZWQgdG8gY29udGFpbiB0aGUgbWVtbyBpZCBwcm9wZXJ0eVxuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3Mgd2l0aCBtZW1vIGlkOiAke3Jhd0FkZHJlc3N9YCk7XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gcXVlcnlEZXRhaWxzLmdldCgnbWVtb0lkJykgYXMgc3RyaW5nO1xuICBpZiAoIWlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAnJHtyYXdBZGRyZXNzfScsIG1lbW9JZCBpcyBub3QgdmFsaWRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlscyAtIEFkZHJlc3Mgd2hpY2ggdG8gYXBwZW5kIG1lbW8gaWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gQWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzLCBtZW1vSWQgfTogQWRkcmVzc0RldGFpbHMpOiBzdHJpbmcge1xuICBpZiAobWVtb0lkICYmIGlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICByZXR1cm4gYCR7YWRkcmVzc30/bWVtb0lkPSR7bWVtb0lkfWA7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIEFkZHJlc3MgaW4gdGhlIGZvcm0gPGFkZHJlc3M+P21lbW9JZD08bWVtb0lkPlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiBpbnB1dCBpcyBhIHZhbGlkIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgIHJldHVybiBhZGRyZXNzID09PSBub3JtYWxpemVBZGRyZXNzKGFkZHJlc3NEZXRhaWxzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIGhlZGVyYSB7cHJvdG8uVG9rZW5JRH0gb2JqZWN0IGZyb20gdG9rZW4gSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRva2VuSUQgLSBUaGUgdG9rZW4gSUQgdG8gYnVpbGRcbiAqIEByZXR1cm5zIHtwcm90by5Ub2tlbklEfSAtIFRoZSByZXN1bHRpbmcgcHJvdG8gVG9rZW5JRCBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGVkZXJhVG9rZW5JRCh0b2tlbklEOiBzdHJpbmcpOiBwcm90by5Ub2tlbklEIHtcbiAgY29uc3QgdG9rZW5EYXRhID0gVG9rZW5JZC5mcm9tU3RyaW5nKHRva2VuSUQpO1xuICByZXR1cm4gbmV3IHByb3RvLlRva2VuSUQoe1xuICAgIHRva2VuTnVtOiB0b2tlbkRhdGEubnVtLFxuICAgIHJlYWxtTnVtOiB0b2tlbkRhdGEucmVhbG0sXG4gICAgc2hhcmROdW06IHRva2VuRGF0YS5zaGFyZCxcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGQgaGVkZXJhIHtwcm90by5BY2NvdW50SUR9IG9iamVjdCBmcm9tIGFjY291bnQgSUQgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFjY291bnRJRCAtIFRoZSBhY2NvdW50IElEIHRvIGJ1aWxkXG4gKiBAcmV0dXJucyB7cHJvdG99IC0gVGhlIHJlc3VsdGluZyBwcm90byBBY2NvdW50SUQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEhlZGVyYUFjY291bnRJRChhY2NvdW50SUQ6IHN0cmluZyk6IHByb3RvLkFjY291bnRJRCB7XG4gIGNvbnN0IGFjY291bnRJZCA9IEFjY291bnRJZC5mcm9tU3RyaW5nKGFjY291bnRJRCk7XG4gIHJldHVybiBuZXcgcHJvdG8uQWNjb3VudElEKHtcbiAgICBzaGFyZE51bTogYWNjb3VudElkLnNoYXJkLFxuICAgIHJlYWxtTnVtOiBhY2NvdW50SWQucmVhbG0sXG4gICAgYWNjb3VudE51bTogYWNjb3VudElkLm51bSxcbiAgfSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgSGVkZXJhIHRva2VuIElEIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9rZW5JZCAtIFRoZSB0b2tlbiBJRCB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiB0b2tlbklkIGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRIZWRlcmFUb2tlbklEKHRva2VuSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBpc0Zvcm1hdFZhbGlkID0gIV8uaXNFbXB0eSh0b2tlbklkKSAmJiAhIXRva2VuSWQubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKTtcbiAgY29uc3QgaXNUb2tlblN1cHBvcnRlZCA9IGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkKSAhPT0gdW5kZWZpbmVkO1xuXG4gIHJldHVybiBpc0Zvcm1hdFZhbGlkICYmIGlzVG9rZW5TdXBwb3J0ZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBJRCBmcm9tIHRva2VuIG5hbWUsIGlmIHN1cHBvcnRlZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUgLSBUaGUgaGVkZXJhIHRva2VuIG5hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRoZSBhc3NvY2lhdGVkIHRva2VuIElEIG9yIHVuZGVmaW5lZCBpZiBub3Qgc3VwcG9ydGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUodG9rZW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoY29pbnMuaGFzKHRva2VuTmFtZSkpIHtcbiAgICBjb25zdCB0b2tlbiA9IGNvaW5zLmdldCh0b2tlbk5hbWUpO1xuICAgIGlmICh0b2tlbi5pc1Rva2VuICYmIHRva2VuIGluc3RhbmNlb2YgSGVkZXJhVG9rZW4pIHtcbiAgICAgIHJldHVybiB0b2tlbi50b2tlbklkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBhc3NvY2lhdGVkIGhlZGVyYSB0b2tlbiBmcm9tIHRva2VuIElELCBpZiBzdXBwb3J0ZWRcbiAqXG4gKiBAcGFyYW0gdG9rZW5JZCAtIFRoZSB0b2tlbiBhZGRyZXNzXG4gKiBAcmV0dXJucyB7QmFzZUNvaW59IC0gQmFzZUNvaW4gb2JqZWN0IGZvciB0aGUgbWF0Y2hpbmcgdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCh0b2tlbklkOiBzdHJpbmcpOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBjb25zdCB0b2tlbnNBcnJheSA9IGNvaW5zXG4gICAgLmZpbHRlcigoY29pbikgPT4ge1xuICAgICAgcmV0dXJuIGNvaW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbiAmJiBjb2luLnRva2VuSWQgPT09IHRva2VuSWQ7XG4gICAgfSlcbiAgICAubWFwKCh0b2tlbikgPT4gdG9rZW4pOyAvLyBmbGF0dGVuIGNvaW4gbWFwIHRvIGFycmF5XG5cbiAgcmV0dXJuIHRva2Vuc0FycmF5Lmxlbmd0aCA+IDAgPyB0b2tlbnNBcnJheVswXSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCB0b2tlbiB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICpcbiAqIEBwYXJhbSB7cHJvdG8uSUNyeXB0b1RyYW5zZmVyVHJhbnNhY3Rpb25Cb2R5IHwgbnVsbH0gdHJhbnNmZXJUeEJvZHkgaXMgYSB0cmFuc2ZlciB0cmFuc2FjdGlvbiBib2R5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpcyBpbnB1dCBpcyBhIHZhbGlkIHRva2VuIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rva2VuVHJhbnNmZXIodHJhbnNmZXJUeEJvZHk6IHByb3RvLklDcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keSB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhdHJhbnNmZXJUeEJvZHkgJiYgISF0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycyAmJiB0cmFuc2ZlclR4Qm9keS50b2tlblRyYW5zZmVycy5sZW5ndGggPiAwO1xufVxuXG4vKiogdmFsaWRhdGVzIGEgc3RhcnRUaW1lIHN0cmluZyB0byBiZSBhIHZhbGlkIHRpbWVzdGFtcCBhbmQgaW4gdGhlIGZ1dHVyZVxuICogQHBhcmFtIHtzdHJpbmd9IHN0YXJ0VGltZSAtIFRoZSBzdGFydFRpbWUgdG8gYmUgdmFsaWRhdGVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBpZiBzdGFydFRpbWUgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIG9yIGlzIGluIHRoZSBwYXN0XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGFydFRpbWUoc3RhcnRUaW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFpc1ZhbGlkVGltZVN0cmluZyhzdGFydFRpbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHN0YXJ0VGltZSwgZ290OiAnICsgc3RhcnRUaW1lKTtcbiAgfVxuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIGNvbnN0IHN0YXJ0VGltZUZpeGVkID0gbm9ybWFsaXplU3RhcnR0aW1lKHN0YXJ0VGltZSk7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBCaWdOdW1iZXIoc3RhcnRUaW1lRml4ZWQpLmlzTGVzc1RoYW5PckVxdWFsVG8oY3VycmVudFRpbWUpO1xuICBpZiAocmVzdWx0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzdGFydFRpbWUgbXVzdCBiZSBhIGZ1dHVyZSB0aW1lc3RhbXAsIGdvdDogJyArIHN0YXJ0VGltZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZSkudG9GaXhlZCg5KTtcbn1cblxuLyoqXG4gKiBBd2FpdCBmb3IgYSBnaXZlbiBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSBtcyAtIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kc1xuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIGdpdmVuIGFtb3VudCBvZiB0aW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnNvbGUubG9nKGBzbGVlcGluZyBmb3IgJHttc30gbXNgKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHN0YXJ0VGltZSBpcyB3aXRoaW4gdGhlIGJyb2FkY2FzdCB3aW5kb3cgKDUgc2Vjb25kcyBhZnRlciBhbmQgMTc1IHNlY29uZHMgYWZ0ZXIgdGhlIHN0YXJ0VGltZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZEJyb2FkY2FzdE5vdyhzdGFydFRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBzdGFydFRpbWVGaXhlZCA9IG5vcm1hbGl6ZVN0YXJ0dGltZShzdGFydFRpbWUpO1xuICBjb25zdCBjdXJyZW50VGltZSA9IGdldEN1cnJlbnRUaW1lKCk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDUgc2Vjb25kc1xuICBjb25zdCBzdGFydGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDUpLnRvRml4ZWQoOSk7XG4gIC8vIHN0YXJ0VGltZSBwbHVzIDE3MCBzZWNvbmRzXG4gIGNvbnN0IGVuZGluZ1RpbWVXaW5kb3cgPSBuZXcgQmlnTnVtYmVyKHN0YXJ0VGltZUZpeGVkKS5wbHVzKDE3NSkudG9GaXhlZCg5KTtcblxuICBpZiAobmV3IEJpZ051bWJlcihjdXJyZW50VGltZSkuaXNHcmVhdGVyVGhhbihlbmRpbmdUaW1lV2luZG93KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdzdGFydFRpbWUgd2luZG93IGV4cGlyZWQsIGdvdDogJyArXG4gICAgICAgIHN0YXJ0VGltZUZpeGVkICtcbiAgICAgICAgJyAtIGN1cnJlbnRUaW1lOiAnICtcbiAgICAgICAgY3VycmVudFRpbWUgK1xuICAgICAgICAnIC0gZW5kaW5nVGltZVdpbmRvdyAnICtcbiAgICAgICAgZW5kaW5nVGltZVdpbmRvd1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzR3JlYXRlclRoYW5PckVxdWFsVG8oc3RhcnRpbmdUaW1lV2luZG93KSAmJlxuICAgIG5ldyBCaWdOdW1iZXIoY3VycmVudFRpbWUpLmlzTGVzc1RoYW5PckVxdWFsVG8oZW5kaW5nVGltZVdpbmRvdylcbiAgKTtcbn1cbiJdfQ==
481
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSx3Q0FrQkM7QUFRRCxvREFhQztBQVFELDRDQVVDO0FBT0QsOENBRUM7QUFPRCx3Q0FRQztBQVVELDhDQUVDO0FBUUQsc0NBT0M7QUFRRCxrRUFLQztBQVFELGdEQUVDO0FBUUQsNENBRUM7QUFRRCwwQ0FFQztBQVNELG9DQUtDO0FBUUQsa0NBRUM7QUFRRCxvQ0FFQztBQVFELHNEQU9DO0FBU0QsOENBS0M7QUFRRCx3Q0FHQztBQVFELDhDQTZCQztBQVFELDRDQUtDO0FBUUQsa0VBT0M7QUFRRCxnREFPQztBQVFELG9EQU9DO0FBUUQsb0RBS0M7QUFRRCw0REFTQztBQVFELDREQVFDO0FBUUQsMENBRUM7QUFPRCw4Q0FVQztBQUVELGdEQUVDO0FBT0Qsc0JBR0M7QUFLRCxnREF1QkM7QUF4Y0QsMENBQTRCO0FBQzVCLHdDQUEwRjtBQUMxRiw0Q0FBeUM7QUFDekMsZ0VBQXFDO0FBQ3JDLHFEQUF1QztBQUV2Qyw4Q0FBc0I7QUFDdEIsbURBQXVFO0FBRTlELHNGQUZBLGdCQUFLLE9BRUE7QUFBRSw2RkFGQSx1QkFBWSxPQUVBO0FBRDVCLGlEQUFtRTtBQUduRSxNQUFNLG1CQUFtQixHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9DLElBQ0UsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsRUFB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LFdBQVcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQ2pFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWNjb3VudElkLCBQcml2YXRlS2V5LCBQdWJsaWNLZXksIFRva2VuSWQsIFRyYW5zYWN0aW9uSWQgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBwcm90byB9IGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0ICogYXMgc3RlbGxhciBmcm9tICdzdGVsbGFyLXNkayc7XG5pbXBvcnQgeyBBZGRyZXNzRGV0YWlscyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IHsgdG9IZXgsIHRvVWludDhBcnJheSwgVXRpbHNFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luLCBjb2lucywgSGVkZXJhVG9rZW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmV4cG9ydCB7IHRvSGV4LCB0b1VpbnQ4QXJyYXkgfTtcblxuY29uc3QgTUFYX1RJTllCQVJTX0FNT1VOVCA9IG5ldyBCaWdOdW1iZXIoMikucG93KDYzKS5taW51cygxKTtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSBhY2NvdW50IGFkZHJlc3NcbiAqXG4gKiBJbiBhbnkgZm9ybSwgYHNoYXJkYCBhbmQgYHJlYWxtYCBhcmUgYXNzdW1lZCB0byBiZSAwIGlmIG5vdCBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYWRkcmVzc0FycmF5ID0gYWRkcmVzcy5zcGxpdCgnP21lbW9JZD0nKTtcblxuICBpZiAoXG4gICAgXy5pc0VtcHR5KGFkZHJlc3MpIHx8XG4gICAgIVsxLCAyXS5pbmNsdWRlcyhhZGRyZXNzQXJyYXkubGVuZ3RoKSB8fFxuICAgICFhZGRyZXNzQXJyYXlbMF0ubWF0Y2goL15cXGQrKD86KD89XFwuKShcXC5cXGQrKXsyfXwoPyFcXC4pKSQvKSB8fFxuICAgIChhZGRyZXNzQXJyYXlbMV0gJiYgIWlzVmFsaWRNZW1vKGFkZHJlc3NBcnJheVsxXSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgYWNjID0gQWNjb3VudElkLmZyb21TdHJpbmcoYWRkcmVzc0FycmF5WzBdKTtcbiAgICByZXR1cm4gIV8uaXNOYU4oYWNjLm51bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSB0cmFuc2FjdGlvbiBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eElkIC0gVGhlIHRyYW5zYWN0aW9uIGlkIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eSh0eElkKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHR4ID0gVHJhbnNhY3Rpb25JZC5mcm9tU3RyaW5nKHR4SWQpO1xuICAgIGlmIChfLmlzTmlsKHR4LmFjY291bnRJZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFfLmlzTmFOKHR4LmFjY291bnRJZC5udW0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSGVkZXJhIHB1YmxpYyBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eShrZXkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcHViS2V5ID0gUHVibGljS2V5LmZyb21TdHJpbmcoa2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIHJldHVybiAhXy5pc05hTihwdWJLZXkudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBub2RlSlMucHJvY2VzcyBleGlzdCBhbmQgaWYgYSBub2RlIHZlcnNpb24gaXMgZGVmaW5lZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBub2RlSlMgZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZUVudmlyb25tZW50KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgY3VycmVudCB0aW1lIHdpdGggbmFub3NlY29uZHMgcHJlY2lzaW9uXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgY3VycmVudCB0aW1lIGluIHNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRUaW1lKCk6IHN0cmluZyB7XG4gIGlmIChpc05vZGVFbnZpcm9ubWVudCgpKSB7XG4gICAgY29uc3QgbmFub3MgPSBwcm9jZXNzLmhydGltZSgpWzFdO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoRGF0ZS5ub3coKSAqIDEwMDAwMDAgKyBuYW5vcykgLyAxMDAwMDAwMDAwO1xuICAgIHJldHVybiBzZWNvbmRzLnRvRml4ZWQoOSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCkpLnRvRml4ZWQoOSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHRpbWVzdGFtcFxuICpcbiAqIE5hbm9zZWNvbmRzIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHBhc3NlZCBhZnRlciBhIGRvdCwgZm9yIGV4YW1wbGU6IDE1OTUzNzQ3MjMuMzU2OTgxNjg5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBUaGUgdGltZXN0YW1wIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGltZVN0cmluZyh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRpbWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gKFxuICAgIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJlxuICAgIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApICYmXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzTGVzc1RoYW5PckVxdWFsVG8oTUFYX1RJTllCQVJTX0FNT1VOVClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHJhdyB0cmFuc2FjdGlvbiBhY2NvbW1vZGF0ZXMgdG8gYml0Z28ncyBwcmVmZXJyZWQgZm9ybWF0XG4gKlxuICogQHBhcmFtIHthbnl9IHJhd1RyYW5zYWN0aW9uIC0gVGhlIHJhdyB0cmFuc2FjdGlvbiB0byBiZSBjaGVja2VkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUaGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdChyYXdUcmFuc2FjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzQWxwaGFOdW1lcmljID0gdHlwZW9mIHJhd1RyYW5zYWN0aW9uID09PSAnc3RyaW5nJyAmJiAvXltcXGRhLWZBLUZdKyQvLnRlc3QocmF3VHJhbnNhY3Rpb24pO1xuICBjb25zdCBpc1ZhbGlkQnVmZmVyID0gQnVmZmVyLmlzQnVmZmVyKHJhd1RyYW5zYWN0aW9uKSAmJiAhIVVpbnQ4QXJyYXkuZnJvbShyYXdUcmFuc2FjdGlvbik7XG5cbiAgcmV0dXJuIGlzQWxwaGFOdW1lcmljIHx8IGlzVmFsaWRCdWZmZXI7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiB7cHJvdG8uSUFjY291bnRJRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JQWNjb3VudElEfSBhY2NvdW50SWQgLSBBY2NvdW50IGlkIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JQWNjb3VudElEfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5QWNjb3VudElkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCBhY2NvdW50TnVtIH06IHByb3RvLklBY2NvdW50SUQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2hhcmROdW0gfHwgMH0uJHtyZWFsbU51bSB8fCAwfS4ke2FjY291bnROdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVG9rZW5JRH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JVG9rZW5JRH0gLSB0b2tlbiBpZCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRva2VuSUR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbklkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCB0b2tlbk51bSB9OiBwcm90by5JVG9rZW5JRCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaGFyZE51bSB8fCAwfS4ke3JlYWxtTnVtIHx8IDB9LiR7dG9rZW5OdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVGltZXN0YW1wfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklUaW1lc3RhbXB9IHRpbWVzdGFtcCAtIFRpbWVzdGFtcCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRpbWVzdGFtcH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVR4VGltZSh7IHNlY29uZHMsIG5hbm9zIH06IHByb3RvLklUaW1lc3RhbXApOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2Vjb25kc30uJHtuYW5vc31gO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHByZWZpeCBmcm9tIGEgc3RyaW5nIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggdGhhdCBwcmVmaXhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IC0gVGhlIHByZWZpeCB0byBiZSByZW1vdmVkXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG9yaWdpbmFsIHN0cmluZywgdXN1YWxseSBhIHByaXZhdGUgb3IgcHVibGljIGtleVxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgc3RyaW5nIHdpdGhvdXQgcHJlZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcmVmaXgocHJlZml4OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBrZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIG1lbW9cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtb1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVtbyhtZW1vOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEoXy5pc0VtcHR5KG1lbW8pIHx8IEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwyQ0FBNkI7QUFDN0IsNENBQXlDO0FBQ3pDLG1EQUE4RTtBQUM5RSw2REFBMEQ7QUFFMUQsbUNBQWdFO0FBQ2hFLHlCQUE2QjtBQUM3QiwyQ0FBb0Q7QUFFcEQsTUFBYSwyQkFBNEIsU0FBUSx1Q0FBa0I7SUFJakUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIYixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBSTdCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxhQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sTUFBTSxLQUFLLENBQUMsbUJB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LENBQUMsTUFBTSxFQUFFLENBQ25ILENBQUM7U0FDSDtRQUNELEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FFRjtBQTVGRCxrRUE0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgKiBhcyBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0IHsgcHJvdG8gfSBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGlzVmFsaWRQdWJsaWNLZXksIHRvSGV4LCB0b1VpbnQ4QXJyYXkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLyc7XG5pbXBvcnQgeyBERUZBVUxUX1NJR05FUl9OVU1CRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHk7XG4gIHByaXZhdGUgX293bmVyczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YSA9IG5ldyBwcm90by5DcnlwdG9DcmVhdGVUcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudCA9IHRoaXMuX3R4Qm9keURhdGE7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5hdXRvUmVuZXdQZXJpb2QgPSBuZXcgcHJvdG8uRHVyYXRpb24oeyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIoNzg5MDAwMCkgfSk7XG4gIH1cblxuICAvLyByZWdpb24gQmFzZSBCdWlsZGVyXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5fdHhCb2R5RGF0YS5rZXkgPSB7IHRocmVzaG9sZEtleTogdGhpcy5idWlsZE93bmVyc0tleXMoKSB9O1xuICAgIHRoaXMuX3R4Qm9keURhdGEuaW5pdGlhbEJhbGFuY2UgPSBMb25nLlpFUk87XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmF3S2V5cyAtIERlZmluZXMgaWYgdGhlIG93bmVycyBrZXlzIGFyZSBvYnRhaW5lZCBpbiByYXcgb3IgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXRcbiAgICogQHJldHVybnMge3Byb3RvLlRocmVzaG9sZEtleX0gLSBUaGUgd2FsbGV0IHRocmVzaG9sZCBrZXlzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkT3duZXJzS2V5cyhyYXdLZXlzID0gdHJ1ZSk6IHByb3RvLlRocmVzaG9sZEtleSB7XG4gICAgcmV0dXJuIHRoaXMuX293bmVycy5yZWR1Y2UoKHRLZXlzLCBrZXkpID0+IHtcbiAgICAgIGlmICh0S2V5cy5rZXlzICYmIHRLZXlzLmtleXMua2V5cykge1xuICAgICAgICB0S2V5cy5rZXlzLmtleXMucHVzaCh7XG4gICAgICAgICAgZWQyNTUxOTogdG9VaW50OEFycmF5KG5ldyBLZXlQYWlyKHsgcHViOiBrZXkgfSkuZ2V0S2V5cyhyYXdLZXlzKS5wdWIpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0S2V5cztcbiAgICB9LCBuZXcgcHJvdG8uVGhyZXNob2xkS2V5KHsgdGhyZXNob2xkOiAyLCBrZXlzOiB7IGtleXM6IFtdIH0gfSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBjcmVhdGVBY2MgPSB0eC50eEJvZHkuY3J5cHRvQ3JlYXRlQWNjb3VudDtcbiAgICBpZiAoY3JlYXRlQWNjICYmIGNyZWF0ZUFjYy5rZXkgJiYgY3JlYXRlQWNjLmtleS50aHJlc2hvbGRLZXkpIHtcbiAgICAgIHRoaXMuaW5pdE93bmVycyhjcmVhdGVBY2Mua2V5LnRocmVzaG9sZEtleSBhcyBwcm90by5UaHJlc2hvbGRLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdE93bmVycyhrZXlzOiBwcm90by5UaHJlc2hvbGRLZXkpIHtcbiAgICBpZiAoa2V5cy5rZXlzICYmIGtleXMua2V5cy5rZXlzKSB7XG4gICAgICBrZXlzLmtleXMua2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgdGhpcy5vd25lcih0b0hleChrZXkuZWQyNTUxOSEpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gQ29tbW9uIGJ1aWxkZXIgbWV0aG9kc1xuICAvKipcbiAgICogU2V0IG9uZSBvZiB0aGUgb3duZXJzIG9mIHRoZSBtdWx0aXNpZyB3YWxsZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVGhlIHB1YmxpYyBrZXkgb2YgdGhlIG93bmVyJ3MgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSAtIFRoaXMgd2FsbGV0IGluaXRpYWxpemF0aW9uIGJ1aWxkZXJcbiAgICovXG4gIG93bmVyKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl9vd25lcnMubGVuZ3RoID49IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgJ0EgbWF4aW11bSBvZiAnICsgREVGQVVMVF9TSUdORVJfTlVNQkVSICsgJyBvd25lcnMgY2FuIGJlIHNldCBmb3IgYSBtdWx0aXNpZyB3YWxsZXQnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzczogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3duZXJzLmluY2x1ZGVzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdSZXBlYXRlZCBvd25lciBhZGRyZXNzOiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX293bmVycy5wdXNoKGFkZHJlc3MpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vd25lcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB3YWxsZXQgb3duZXJzJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX293bmVycy5sZW5ndGggIT09IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgdHJhbnNhY3Rpb246IHdyb25nIG51bWJlciBvZiBvd25lcnMgLS0gcmVxdWlyZWQ6ICR7REVGQVVMVF9TSUdORVJfTlVNQkVSfSwgZm91bmQ6ICR7dGhpcy5fb3duZXJzLmxlbmd0aH1gXG4gICAgICApO1xuICAgIH1cbiAgICBzdXBlci52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWVkVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXVDO0FBQ3ZDLDBDQUE0QjtBQUM1QixpREFBaUQ7QUFDakQsdUNBQTJDO0FBQzNDLDZEQUFvRDtBQUNwRDs7R0FFRztBQUNILE1BQWEsYUFBYTtJQUN4Qjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3ZDLElBQUksSUFBSSxHQUEyQixTQUFTLENBQUM7UUFFN0MsNEZBQTRGO1FBQzVGLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEQsNkZBQTZGO1lBQzdGLDZFQUE2RTtZQUM3RSw4QkFBOEI7WUFFOUIsSUFBSSx1QkFBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLElBQUksQ0FBQztZQUNoRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLEdBQUcsQ0FBQztZQUN6RSxJQUFJLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsSUFBSSxHQUFHLG9CQUFVLENBQUMsSUFBSSxDQUFDO1NBQ3ZFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsVUFBc0I7UUFDbkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELE9BQU8sVUFBVSxLQUFLLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFZO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLHVCQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3RCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJO1lBQ0YsSUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO1FBQUMsTUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQTNERCxzQ0EyREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGNyZWF0ZVJhd0tleSB9IGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCB7IEFsZ29MaWIgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29pbi1hbGdvJztcbi8qKlxuICogVGhpcyBjbGFzc2VzIGludGVudGlvbiBpcyB0byBndWVzcy92ZXJpZnkgd2hhdCBzZWVkcyBjb21lIGZyb20gd2hlcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWVkVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIFRyeSB0byBndWVzcyB3aGF0IGtpbmQgb2Ygc2VlZCB0aGlzIGNvdWxkIGJlXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gcmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGNvaW4gdHlwZSBpcyB1bmRldGVjdGFibGUuIHJldHVybnNcbiAgICogdGhlIGNvaW4gZmFtaWx5IG90aGVyd2lzZS5cbiAgICovXG4gIHN0YXRpYyBnZXRDb2luRmFtaWx5RnJvbVNlZWQoc2VlZDogc3RyaW5nKTogQ29pbkZhbWlseSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNvaW46IENvaW5GYW1pbHkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBpZiB0aGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBtb3JlIHRoYW4gb25lIGNvbXBldGluZyBzZWVkIGZvcm1hdCwgdGhhdCBjb3VsZCBiZSBhbiBpc3N1ZVxuICAgIGlmICghU2VlZFZhbGlkYXRvci5oYXNDb21wZXRpbmdTZWVkRm9ybWF0cyhzZWVkKSkge1xuICAgICAgLy8gb3JkZXJpbmcgZ2VuZXJhbGx5IG1hdHRlcnMgaGVyZSAtIGhiYXIgaXMgdGhlIGxlYXN0IHBlcm1pc3NpdmUgZm9yIHNlZWQgY2hlY2tpbmcsIGFsZ28gYW5kXG4gICAgICAvLyBzdGVsbGFyIGhhdmUgY2hlY2tzdW1zLiBjb2luIGlzIGd1YXJhbnRlZWQgdG8gYmUgbXV0dWFsbHkgZXhjbHVzaXZlIGJ5IHRoZVxuICAgICAgLy8gY29tcGV0aW5nIHNlZWQgZm9ybWF0IGNoZWNrXG5cbiAgICAgIGlmIChBbGdvTGliLmFsZ29VdGlscy5pc1ZhbGlkU2VlZChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuQUxHTztcbiAgICAgIGlmIChzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCkpIGNvaW4gPSBDb2luRmFtaWx5LlhMTTtcbiAgICAgIGlmIChTZWVkVmFsaWRhdG9yLmlzVmFsaWRIYmFyU2VlZEZvcm1hdChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuSEJBUjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29pbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGlzIGlzIGEgdmFsaWQgc2VlZCBmb3IgdGhpcyBjb2luIGZhbWlseSB0eXBlLlxuICAgKiBAcGFyYW0gc2VlZCAtIHNlZWRcbiAgICogQHBhcmFtIGNvaW5GYW1pbHkgLSB0aGUgY29pbkZhbWlseSBvZiB0aGUgY29pbiB3ZSdyZSB3b3JraW5nIHdpdGhcbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkRWQyNTUxOVNlZWRGb3JDb2luKHNlZWQ6IHN0cmluZywgY29pbkZhbWlseTogQ29pbkZhbWlseSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGd1ZXNzZWRDb2luID0gU2VlZFZhbGlkYXRvci5nZXRDb2luRmFtaWx5RnJvbVNlZWQoc2VlZCk7XG4gICAgcmV0dXJuIGNvaW5GYW1pbHkgPT09IGd1ZXNzZWRDb2luO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlIGlzIG5vIG92ZXJsYXAgZm9yIGFueSB0d28gc2VlZHMgd2UgcHV0IGludG8gdGhpcyBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbnNcbiAgICogaW50ZW50aW9uIGlzIGZvciBnYXRpbmcgd2hldGhlciB0aGlzIHNlZWQgY291bGQgcG9zc2libHkgbWF0Y2ggdHdvIGZvcm1hdHMgb3IgaXMgaW52YWxpZCBpdHNlbGYuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaGFzQ29tcGV0aW5nU2VlZEZvcm1hdHMoc2VlZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNBbGdvU2VlZCA9IEFsZ29MaWIuYWxnb1V0aWxzLmlzVmFsaWRTZWVkKHNlZWQpO1xuICAgIGNvbnN0IGlzU3RlbGxhclNlZWQgPSBzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCk7XG4gICAgY29uc3QgaXNIYmFyU2VlZCA9IFNlZWRWYWxpZGF0b3IuaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQpO1xuXG4gICAgcmV0dXJuIF8uc3VtKFtpc0FsZ29TZWVkLCBpc1N0ZWxsYXJTZWVkLCBpc0hiYXJTZWVkXSkgIT09IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaXMgYSB2YWxpZCBIYmFyIHBydi4gVGhlc2UgY2FuIGJlIGVuY29kZWQgZGlmZmVyZW50bHkuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjcmVhdGVSYXdLZXkoc2VlZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
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.236",
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.238",
44
- "@bitgo-beta/sdk-core": "2.4.1-alpha.238",
45
- "@bitgo-beta/statics": "10.0.1-alpha.238",
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.238",
58
- "@bitgo-beta/sdk-test": "^8.0.53"
57
+ "@bitgo-beta/sdk-api": "1.6.1-alpha.240",
58
+ "@bitgo-beta/sdk-test": "^8.0.61"
59
59
  },
60
- "gitHead": "77f54031a158d516f49ef336270f87c1fb6c2dcf"
60
+ "gitHead": "46a36bbd361f9d8aefca22c40bd5e6da588eee4b"
61
61
  }