@bitgo/sdk-coin-sui 4.24.4 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/src/index.js +6 -2
  3. package/dist/src/lib/customTransactionBuilder.js +5 -5
  4. package/dist/src/lib/index.js +6 -2
  5. package/dist/src/lib/keyPair.js +7 -3
  6. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +1 -1
  7. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
  8. package/dist/src/lib/mystenlab/builder/Inputs.js +12 -12
  9. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +3 -3
  10. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +7 -7
  11. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +3 -3
  12. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +26 -26
  13. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +4 -4
  14. package/dist/src/lib/mystenlab/builder/Transactions.js +48 -48
  15. package/dist/src/lib/mystenlab/builder/bcs.js +2 -2
  16. package/dist/src/lib/mystenlab/builder/index.js +6 -2
  17. package/dist/src/lib/mystenlab/builder/serializer.js +3 -3
  18. package/dist/src/lib/mystenlab/builder/utils.js +2 -2
  19. package/dist/src/lib/mystenlab/cryptography/hash.js +2 -2
  20. package/dist/src/lib/mystenlab/framework/framework.d.ts +1 -1
  21. package/dist/src/lib/mystenlab/framework/framework.js +15 -15
  22. package/dist/src/lib/mystenlab/framework/index.js +6 -2
  23. package/dist/src/lib/mystenlab/framework/sui-system-state.js +2 -2
  24. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
  25. package/dist/src/lib/mystenlab/types/coin.js +19 -19
  26. package/dist/src/lib/mystenlab/types/common.js +16 -16
  27. package/dist/src/lib/mystenlab/types/events.js +14 -14
  28. package/dist/src/lib/mystenlab/types/index.js +6 -2
  29. package/dist/src/lib/mystenlab/types/normalized.js +37 -37
  30. package/dist/src/lib/mystenlab/types/objects.js +64 -64
  31. package/dist/src/lib/mystenlab/types/sui-bcs.js +2 -2
  32. package/dist/src/lib/mystenlab/types/transactions.js +137 -137
  33. package/dist/src/lib/mystenlab/types/validator.d.ts +4 -4
  34. package/dist/src/lib/mystenlab/types/validator.js +124 -124
  35. package/dist/src/lib/stakingBuilder.js +7 -7
  36. package/dist/src/lib/stakingTransaction.js +2 -2
  37. package/dist/src/lib/transaction.js +14 -10
  38. package/dist/src/lib/transactionBuilder.js +4 -4
  39. package/dist/src/lib/transferBuilder.js +5 -5
  40. package/dist/src/lib/unstakingBuilder.js +6 -6
  41. package/dist/src/lib/unstakingTransaction.js +14 -10
  42. package/dist/src/lib/utils.js +11 -11
  43. package/dist/src/sui.js +6 -2
  44. package/package.json +8 -8
@@ -319,8 +319,8 @@ export declare const CommitteeInfo: import("superstruct").Struct<{
319
319
  validators: import("superstruct").Struct<[string, number][] | undefined, import("superstruct").Struct<[string, number], null>>;
320
320
  }>;
321
321
  export declare const SuiValidatorSummary: import("superstruct").Struct<{
322
- name: string;
323
322
  description: string;
323
+ name: string;
324
324
  pendingStake: number;
325
325
  pendingPoolTokenWithdraw: number;
326
326
  pendingTotalSuiWithdraw: number;
@@ -427,8 +427,8 @@ export declare const SuiSystemStateSummary: import("superstruct").Struct<{
427
427
  stakeSubsidyDecreaseRate: number;
428
428
  totalStake: number;
429
429
  activeValidators: {
430
- name: string;
431
430
  description: string;
431
+ name: string;
432
432
  pendingStake: number;
433
433
  pendingPoolTokenWithdraw: number;
434
434
  pendingTotalSuiWithdraw: number;
@@ -505,8 +505,8 @@ export declare const SuiSystemStateSummary: import("superstruct").Struct<{
505
505
  stakeSubsidyDecreaseRate: import("superstruct").Struct<number, null>;
506
506
  totalStake: import("superstruct").Struct<number, null>;
507
507
  activeValidators: import("superstruct").Struct<{
508
- name: string;
509
508
  description: string;
509
+ name: string;
510
510
  pendingStake: number;
511
511
  pendingPoolTokenWithdraw: number;
512
512
  pendingTotalSuiWithdraw: number;
@@ -545,8 +545,8 @@ export declare const SuiSystemStateSummary: import("superstruct").Struct<{
545
545
  exchangeRatesId: string;
546
546
  exchangeRatesSize: number;
547
547
  }[], import("superstruct").Struct<{
548
- name: string;
549
548
  description: string;
549
+ name: string;
550
550
  pendingStake: number;
551
551
  pendingPoolTokenWithdraw: number;
552
552
  pendingTotalSuiWithdraw: number;
@@ -5,152 +5,152 @@ const superstruct_1 = require("superstruct");
5
5
  const common_1 = require("./common");
6
6
  const transactions_1 = require("./transactions");
7
7
  // Staking
8
- exports.Balance = superstruct_1.object({
9
- value: superstruct_1.number(),
8
+ exports.Balance = (0, superstruct_1.object)({
9
+ value: (0, superstruct_1.number)(),
10
10
  });
11
- exports.StakeObject = superstruct_1.object({
11
+ exports.StakeObject = (0, superstruct_1.object)({
12
12
  stakedSuiId: common_1.ObjectId,
13
13
  stakeRequestEpoch: transactions_1.EpochId,
14
14
  stakeActiveEpoch: transactions_1.EpochId,
15
- principal: superstruct_1.number(),
16
- status: superstruct_1.union([superstruct_1.literal('Active'), superstruct_1.literal('Pending'), superstruct_1.literal('Unstaked')]),
17
- estimatedReward: superstruct_1.optional(superstruct_1.number()),
15
+ principal: (0, superstruct_1.number)(),
16
+ status: (0, superstruct_1.union)([(0, superstruct_1.literal)('Active'), (0, superstruct_1.literal)('Pending'), (0, superstruct_1.literal)('Unstaked')]),
17
+ estimatedReward: (0, superstruct_1.optional)((0, superstruct_1.number)()),
18
18
  });
19
- exports.DelegatedStake = superstruct_1.object({
19
+ exports.DelegatedStake = (0, superstruct_1.object)({
20
20
  validatorAddress: common_1.SuiAddress,
21
21
  stakingPool: common_1.ObjectId,
22
- stakes: superstruct_1.array(exports.StakeObject),
22
+ stakes: (0, superstruct_1.array)(exports.StakeObject),
23
23
  });
24
- exports.StakeSubsidyFields = superstruct_1.object({
25
- balance: superstruct_1.object({ value: superstruct_1.number() }),
26
- distribution_counter: superstruct_1.number(),
27
- current_distribution_amount: superstruct_1.number(),
28
- stake_subsidy_period_length: superstruct_1.number(),
29
- stake_subsidy_decrease_rate: superstruct_1.number(),
24
+ exports.StakeSubsidyFields = (0, superstruct_1.object)({
25
+ balance: (0, superstruct_1.object)({ value: (0, superstruct_1.number)() }),
26
+ distribution_counter: (0, superstruct_1.number)(),
27
+ current_distribution_amount: (0, superstruct_1.number)(),
28
+ stake_subsidy_period_length: (0, superstruct_1.number)(),
29
+ stake_subsidy_decrease_rate: (0, superstruct_1.number)(),
30
30
  });
31
- exports.StakeSubsidy = superstruct_1.object({
32
- type: superstruct_1.string(),
31
+ exports.StakeSubsidy = (0, superstruct_1.object)({
32
+ type: (0, superstruct_1.string)(),
33
33
  fields: exports.StakeSubsidyFields,
34
34
  });
35
- exports.SuiSupplyFields = superstruct_1.object({
36
- value: superstruct_1.number(),
35
+ exports.SuiSupplyFields = (0, superstruct_1.object)({
36
+ value: (0, superstruct_1.number)(),
37
37
  });
38
- exports.ContentsFields = superstruct_1.object({
39
- id: superstruct_1.string(),
40
- size: superstruct_1.number(),
41
- head: superstruct_1.object({ vec: superstruct_1.array() }),
42
- tail: superstruct_1.object({ vec: superstruct_1.array() }),
38
+ exports.ContentsFields = (0, superstruct_1.object)({
39
+ id: (0, superstruct_1.string)(),
40
+ size: (0, superstruct_1.number)(),
41
+ head: (0, superstruct_1.object)({ vec: (0, superstruct_1.array)() }),
42
+ tail: (0, superstruct_1.object)({ vec: (0, superstruct_1.array)() }),
43
43
  });
44
- exports.ContentsFieldsWithdraw = superstruct_1.object({
45
- id: superstruct_1.string(),
46
- size: superstruct_1.number(),
44
+ exports.ContentsFieldsWithdraw = (0, superstruct_1.object)({
45
+ id: (0, superstruct_1.string)(),
46
+ size: (0, superstruct_1.number)(),
47
47
  });
48
- exports.Contents = superstruct_1.object({
49
- type: superstruct_1.string(),
48
+ exports.Contents = (0, superstruct_1.object)({
49
+ type: (0, superstruct_1.string)(),
50
50
  fields: exports.ContentsFields,
51
51
  });
52
- exports.DelegationStakingPoolFields = superstruct_1.object({
53
- exchangeRates: superstruct_1.object({
54
- id: superstruct_1.string(),
55
- size: superstruct_1.number(),
52
+ exports.DelegationStakingPoolFields = (0, superstruct_1.object)({
53
+ exchangeRates: (0, superstruct_1.object)({
54
+ id: (0, superstruct_1.string)(),
55
+ size: (0, superstruct_1.number)(),
56
56
  }),
57
- id: superstruct_1.string(),
58
- pendingStake: superstruct_1.number(),
59
- pendingPoolTokenWithdraw: superstruct_1.number(),
60
- pendingTotalSuiWithdraw: superstruct_1.number(),
61
- poolTokenBalance: superstruct_1.number(),
62
- rewardsPool: superstruct_1.object({ value: superstruct_1.number() }),
63
- activationEpoch: superstruct_1.object({ vec: superstruct_1.array() }),
64
- deactivationEpoch: superstruct_1.object({ vec: superstruct_1.array() }),
65
- suiBalance: superstruct_1.number(),
57
+ id: (0, superstruct_1.string)(),
58
+ pendingStake: (0, superstruct_1.number)(),
59
+ pendingPoolTokenWithdraw: (0, superstruct_1.number)(),
60
+ pendingTotalSuiWithdraw: (0, superstruct_1.number)(),
61
+ poolTokenBalance: (0, superstruct_1.number)(),
62
+ rewardsPool: (0, superstruct_1.object)({ value: (0, superstruct_1.number)() }),
63
+ activationEpoch: (0, superstruct_1.object)({ vec: (0, superstruct_1.array)() }),
64
+ deactivationEpoch: (0, superstruct_1.object)({ vec: (0, superstruct_1.array)() }),
65
+ suiBalance: (0, superstruct_1.number)(),
66
66
  });
67
- exports.DelegationStakingPool = superstruct_1.object({
68
- type: superstruct_1.string(),
67
+ exports.DelegationStakingPool = (0, superstruct_1.object)({
68
+ type: (0, superstruct_1.string)(),
69
69
  fields: exports.DelegationStakingPoolFields,
70
70
  });
71
- exports.CommitteeInfo = superstruct_1.object({
72
- epoch: superstruct_1.number(),
71
+ exports.CommitteeInfo = (0, superstruct_1.object)({
72
+ epoch: (0, superstruct_1.number)(),
73
73
  /** Array of (validator public key, stake unit) tuple */
74
- validators: superstruct_1.optional(superstruct_1.array(superstruct_1.tuple([transactions_1.AuthorityName, superstruct_1.number()]))),
74
+ validators: (0, superstruct_1.optional)((0, superstruct_1.array)((0, superstruct_1.tuple)([transactions_1.AuthorityName, (0, superstruct_1.number)()]))),
75
75
  });
76
- exports.SuiValidatorSummary = superstruct_1.object({
76
+ exports.SuiValidatorSummary = (0, superstruct_1.object)({
77
77
  suiAddress: common_1.SuiAddress,
78
- protocolPubkeyBytes: superstruct_1.string(),
79
- networkPubkeyBytes: superstruct_1.string(),
80
- workerPubkeyBytes: superstruct_1.string(),
81
- proofOfPossessionBytes: superstruct_1.string(),
82
- operationCapId: superstruct_1.string(),
83
- name: superstruct_1.string(),
84
- description: superstruct_1.string(),
85
- imageUrl: superstruct_1.string(),
86
- projectUrl: superstruct_1.string(),
87
- p2pAddress: superstruct_1.string(),
88
- netAddress: superstruct_1.string(),
89
- primaryAddress: superstruct_1.string(),
90
- workerAddress: superstruct_1.string(),
91
- nextEpochProtocolPubkeyBytes: superstruct_1.nullable(superstruct_1.string()),
92
- nextEpochProofOfPossession: superstruct_1.nullable(superstruct_1.string()),
93
- nextEpochNetworkPubkeyBytes: superstruct_1.nullable(superstruct_1.string()),
94
- nextEpochWorkerPubkeyBytes: superstruct_1.nullable(superstruct_1.string()),
95
- nextEpochNetAddress: superstruct_1.nullable(superstruct_1.string()),
96
- nextEpochP2pAddress: superstruct_1.nullable(superstruct_1.string()),
97
- nextEpochPrimaryAddress: superstruct_1.nullable(superstruct_1.string()),
98
- nextEpochWorkerAddress: superstruct_1.nullable(superstruct_1.string()),
99
- votingPower: superstruct_1.number(),
100
- gasPrice: superstruct_1.number(),
101
- commissionRate: superstruct_1.number(),
102
- nextEpochStake: superstruct_1.number(),
103
- nextEpochGasPrice: superstruct_1.number(),
104
- nextEpochCommissionRate: superstruct_1.number(),
105
- stakingPoolId: superstruct_1.string(),
106
- stakingPoolActivationEpoch: superstruct_1.nullable(superstruct_1.number()),
107
- stakingPoolDeactivationEpoch: superstruct_1.nullable(superstruct_1.number()),
108
- stakingPoolSuiBalance: superstruct_1.number(),
109
- rewardsPool: superstruct_1.number(),
110
- poolTokenBalance: superstruct_1.number(),
111
- pendingStake: superstruct_1.number(),
112
- pendingPoolTokenWithdraw: superstruct_1.number(),
113
- pendingTotalSuiWithdraw: superstruct_1.number(),
114
- exchangeRatesId: superstruct_1.string(),
115
- exchangeRatesSize: superstruct_1.number(),
78
+ protocolPubkeyBytes: (0, superstruct_1.string)(),
79
+ networkPubkeyBytes: (0, superstruct_1.string)(),
80
+ workerPubkeyBytes: (0, superstruct_1.string)(),
81
+ proofOfPossessionBytes: (0, superstruct_1.string)(),
82
+ operationCapId: (0, superstruct_1.string)(),
83
+ name: (0, superstruct_1.string)(),
84
+ description: (0, superstruct_1.string)(),
85
+ imageUrl: (0, superstruct_1.string)(),
86
+ projectUrl: (0, superstruct_1.string)(),
87
+ p2pAddress: (0, superstruct_1.string)(),
88
+ netAddress: (0, superstruct_1.string)(),
89
+ primaryAddress: (0, superstruct_1.string)(),
90
+ workerAddress: (0, superstruct_1.string)(),
91
+ nextEpochProtocolPubkeyBytes: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
92
+ nextEpochProofOfPossession: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
93
+ nextEpochNetworkPubkeyBytes: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
94
+ nextEpochWorkerPubkeyBytes: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
95
+ nextEpochNetAddress: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
96
+ nextEpochP2pAddress: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
97
+ nextEpochPrimaryAddress: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
98
+ nextEpochWorkerAddress: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
99
+ votingPower: (0, superstruct_1.number)(),
100
+ gasPrice: (0, superstruct_1.number)(),
101
+ commissionRate: (0, superstruct_1.number)(),
102
+ nextEpochStake: (0, superstruct_1.number)(),
103
+ nextEpochGasPrice: (0, superstruct_1.number)(),
104
+ nextEpochCommissionRate: (0, superstruct_1.number)(),
105
+ stakingPoolId: (0, superstruct_1.string)(),
106
+ stakingPoolActivationEpoch: (0, superstruct_1.nullable)((0, superstruct_1.number)()),
107
+ stakingPoolDeactivationEpoch: (0, superstruct_1.nullable)((0, superstruct_1.number)()),
108
+ stakingPoolSuiBalance: (0, superstruct_1.number)(),
109
+ rewardsPool: (0, superstruct_1.number)(),
110
+ poolTokenBalance: (0, superstruct_1.number)(),
111
+ pendingStake: (0, superstruct_1.number)(),
112
+ pendingPoolTokenWithdraw: (0, superstruct_1.number)(),
113
+ pendingTotalSuiWithdraw: (0, superstruct_1.number)(),
114
+ exchangeRatesId: (0, superstruct_1.string)(),
115
+ exchangeRatesSize: (0, superstruct_1.number)(),
116
116
  });
117
- exports.SuiSystemStateSummary = superstruct_1.object({
118
- epoch: superstruct_1.number(),
119
- protocolVersion: superstruct_1.number(),
120
- systemStateVersion: superstruct_1.number(),
121
- storageFundTotalObjectStorageRebates: superstruct_1.number(),
122
- storageFundNonRefundableBalance: superstruct_1.number(),
123
- referenceGasPrice: superstruct_1.number(),
124
- safeMode: superstruct_1.boolean(),
125
- safeModeStorageRewards: superstruct_1.number(),
126
- safeModeComputationRewards: superstruct_1.number(),
127
- safeModeStorageRebates: superstruct_1.number(),
128
- safeModeNonRefundableStorageFee: superstruct_1.number(),
129
- epochStartTimestampMs: superstruct_1.number(),
130
- epochDurationMs: superstruct_1.number(),
131
- stakeSubsidyStartEpoch: superstruct_1.number(),
132
- maxValidatorCount: superstruct_1.number(),
133
- minValidatorJoiningStake: superstruct_1.number(),
134
- validatorLowStakeThreshold: superstruct_1.number(),
135
- validatorVeryLowStakeThreshold: superstruct_1.number(),
136
- validatorLowStakeGracePeriod: superstruct_1.number(),
137
- stakeSubsidyBalance: superstruct_1.number(),
138
- stakeSubsidyDistributionCounter: superstruct_1.number(),
139
- stakeSubsidyCurrentDistributionAmount: superstruct_1.number(),
140
- stakeSubsidyPeriodLength: superstruct_1.number(),
141
- stakeSubsidyDecreaseRate: superstruct_1.number(),
142
- totalStake: superstruct_1.number(),
143
- activeValidators: superstruct_1.array(exports.SuiValidatorSummary),
144
- pendingActiveValidatorsId: superstruct_1.string(),
145
- pendingActiveValidatorsSize: superstruct_1.number(),
146
- pendingRemovals: superstruct_1.array(superstruct_1.number()),
147
- stakingPoolMappingsId: superstruct_1.string(),
148
- stakingPoolMappingsSize: superstruct_1.number(),
149
- inactivePoolsId: superstruct_1.string(),
150
- inactivePoolsSize: superstruct_1.number(),
151
- validatorCandidatesId: superstruct_1.string(),
152
- validatorCandidatesSize: superstruct_1.number(),
153
- atRiskValidators: superstruct_1.array(superstruct_1.tuple([common_1.SuiAddress, superstruct_1.number()])),
154
- validatorReportRecords: superstruct_1.array(superstruct_1.tuple([common_1.SuiAddress, superstruct_1.array(common_1.SuiAddress)])),
117
+ exports.SuiSystemStateSummary = (0, superstruct_1.object)({
118
+ epoch: (0, superstruct_1.number)(),
119
+ protocolVersion: (0, superstruct_1.number)(),
120
+ systemStateVersion: (0, superstruct_1.number)(),
121
+ storageFundTotalObjectStorageRebates: (0, superstruct_1.number)(),
122
+ storageFundNonRefundableBalance: (0, superstruct_1.number)(),
123
+ referenceGasPrice: (0, superstruct_1.number)(),
124
+ safeMode: (0, superstruct_1.boolean)(),
125
+ safeModeStorageRewards: (0, superstruct_1.number)(),
126
+ safeModeComputationRewards: (0, superstruct_1.number)(),
127
+ safeModeStorageRebates: (0, superstruct_1.number)(),
128
+ safeModeNonRefundableStorageFee: (0, superstruct_1.number)(),
129
+ epochStartTimestampMs: (0, superstruct_1.number)(),
130
+ epochDurationMs: (0, superstruct_1.number)(),
131
+ stakeSubsidyStartEpoch: (0, superstruct_1.number)(),
132
+ maxValidatorCount: (0, superstruct_1.number)(),
133
+ minValidatorJoiningStake: (0, superstruct_1.number)(),
134
+ validatorLowStakeThreshold: (0, superstruct_1.number)(),
135
+ validatorVeryLowStakeThreshold: (0, superstruct_1.number)(),
136
+ validatorLowStakeGracePeriod: (0, superstruct_1.number)(),
137
+ stakeSubsidyBalance: (0, superstruct_1.number)(),
138
+ stakeSubsidyDistributionCounter: (0, superstruct_1.number)(),
139
+ stakeSubsidyCurrentDistributionAmount: (0, superstruct_1.number)(),
140
+ stakeSubsidyPeriodLength: (0, superstruct_1.number)(),
141
+ stakeSubsidyDecreaseRate: (0, superstruct_1.number)(),
142
+ totalStake: (0, superstruct_1.number)(),
143
+ activeValidators: (0, superstruct_1.array)(exports.SuiValidatorSummary),
144
+ pendingActiveValidatorsId: (0, superstruct_1.string)(),
145
+ pendingActiveValidatorsSize: (0, superstruct_1.number)(),
146
+ pendingRemovals: (0, superstruct_1.array)((0, superstruct_1.number)()),
147
+ stakingPoolMappingsId: (0, superstruct_1.string)(),
148
+ stakingPoolMappingsSize: (0, superstruct_1.number)(),
149
+ inactivePoolsId: (0, superstruct_1.string)(),
150
+ inactivePoolsSize: (0, superstruct_1.number)(),
151
+ validatorCandidatesId: (0, superstruct_1.string)(),
152
+ validatorCandidatesSize: (0, superstruct_1.number)(),
153
+ atRiskValidators: (0, superstruct_1.array)((0, superstruct_1.tuple)([common_1.SuiAddress, (0, superstruct_1.number)()])),
154
+ validatorReportRecords: (0, superstruct_1.array)((0, superstruct_1.tuple)([common_1.SuiAddress, (0, superstruct_1.array)(common_1.SuiAddress)])),
155
155
  });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1SDtBQUN2SCxxQ0FBZ0Q7QUFDaEQsaURBQXdEO0FBUXhELFVBQVU7QUFFRyxRQUFBLE9BQU8sR0FBRyxvQkFBTSxDQUFDO0lBQzVCLEtBQUssRUFBRSxvQkFBTSxFQUFFO0NBQ2hCLENBQUMsQ0FBQztBQUVVLFFBQUEsV0FBVyxHQUFHLG9CQUFNLENBQUM7SUFDaEMsV0FBVyxFQUFFLGlCQUFRO0lBQ3JCLGlCQUFpQixFQUFFLHNCQUFPO0lBQzFCLGdCQUFnQixFQUFFLHNCQUFPO0lBQ3pCLFNBQVMsRUFBRSxvQkFBTSxFQUFFO0lBQ25CLE1BQU0sRUFBRSxtQkFBSyxDQUFDLENBQUMscUJBQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxxQkFBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLHFCQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMzRSxlQUFlLEVBQUUsc0JBQVEsQ0FBQyxvQkFBTSxFQUFFLENBQUM7Q0FDcEMsQ0FBQyxDQUFDO0FBRVUsUUFBQSxjQUFjLEdBQUcsb0JBQU0sQ0FBQztJQUNuQyxnQkFBZ0IsRUFBRSxtQkFBVTtJQUM1QixXQUFXLEVBQUUsaUJBQVE7SUFDckIsTUFBTSxFQUFFLG1CQUFLLENBQUMsbUJBQVcsQ0FBQztDQUMzQixDQUFDLENBQUM7QUFFVSxRQUFBLGtCQUFrQixHQUFHLG9CQUFNLENBQUM7SUFDdkMsT0FBTyxFQUFFLG9CQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsb0JBQU0sRUFBRSxFQUFFLENBQUM7SUFDcEMsb0JBQW9CLEVBQUUsb0JBQU0sRUFBRTtJQUM5QiwyQkFBMkIsRUFBRSxvQkFBTSxFQUFFO0lBQ3JDLDJCQUEyQixFQUFFLG9CQUFNLEVBQUU7SUFDckMsMkJBQTJCLEVBQUUs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QkFBTSxFQUFFO0lBQy9CLHVCQUF1QixFQUFFLG9CQUFNLEVBQUU7SUFDakMsZUFBZSxFQUFFLG9CQUFNLEVBQUU7SUFDekIsaUJBQWlCLEVBQUUsb0JBQU0sRUFBRTtJQUMzQixxQkFBcUIsRUFBRSxvQkFBTSxFQUFFO0lBQy9CLHVCQUF1QixFQUFFLG9CQUFNLEVBQUU7SUFDakMsZ0JBQWdCLEVBQUUsbUJBQUssQ0FBQyxtQkFBSyxDQUFDLENBQUMsbUJBQVUsRUFBRSxvQkFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RELHNCQUFzQixFQUFFLG1CQUFLLENBQUMsbUJBQUssQ0FBQyxDQUFDLG1CQUFVLEVBQUUsbUJBQUssQ0FBQyxtQkFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3RFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5LCBib29sZWFuLCBsaXRlcmFsLCBudW1iZXIsIG9iamVjdCwgc3RyaW5nLCB1bmlvbiwgSW5mZXIsIG51bGxhYmxlLCB0dXBsZSwgb3B0aW9uYWwgfSBmcm9tICdzdXBlcnN0cnVjdCc7XG5pbXBvcnQgeyBPYmplY3RJZCwgU3VpQWRkcmVzcyB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IEF1dGhvcml0eU5hbWUsIEVwb2NoSWQgfSBmcm9tICcuL3RyYW5zYWN0aW9ucyc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tIFR5cGVzIGZvciB0aGUgU3VpU3lzdGVtU3RhdGUgUnVzdCBkZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCB0eXBlIERlbGVnYXRlZFN0YWtlID0gSW5mZXI8dHlwZW9mIERlbGVnYXRlZFN0YWtlPjtcbmV4cG9ydCB0eXBlIENvbW1pdHRlZUluZm8gPSBJbmZlcjx0eXBlb2YgQ29tbWl0dGVlSW5mbz47XG5leHBvcnQgdHlwZSBTdGFrZU9iamVjdCA9IEluZmVyPHR5cGVvZiBTdGFrZU9iamVjdD47XG5cbi8vIFN0YWtpbmdcblxuZXhwb3J0IGNvbnN0IEJhbGFuY2UgPSBvYmplY3Qoe1xuICB2YWx1ZTogbnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0YWtlT2JqZWN0ID0gb2JqZWN0KHtcbiAgc3Rha2VkU3VpSWQ6IE9iamVjdElkLFxuICBzdGFrZVJlcXVlc3RFcG9jaDogRXBvY2hJZCxcbiAgc3Rha2VBY3RpdmVFcG9jaDogRXBvY2hJZCxcbiAgcHJpbmNpcGFsOiBudW1iZXIoKSxcbiAgc3RhdHVzOiB1bmlvbihbbGl0ZXJhbCgnQWN0aXZlJyksIGxpdGVyYWwoJ1BlbmRpbmcnKSwgbGl0ZXJhbCgnVW5zdGFrZWQnKV0pLFxuICBlc3RpbWF0ZWRSZXdhcmQ6IG9wdGlvbmFsKG51bWJlcigpKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZWdhdGVkU3Rha2UgPSBvYmplY3Qoe1xuICB2YWxpZGF0b3JBZGRyZXNzOiBTdWlBZGRyZXNzLFxuICBzdGFraW5nUG9vbDogT2JqZWN0SWQsXG4gIHN0YWtlczogYXJyYXkoU3Rha2VPYmplY3QpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdGFrZVN1YnNpZHlGaWVsZHMgPSBvYmplY3Qoe1xuICBiYWxhbmNlOiBvYmplY3QoeyB2YWx1ZTogbnVtYmVyKCkgfSksXG4gIGRpc3RyaWJ1dGlvbl9jb3VudGVyOiBudW1iZXIoKSxcbiAgY3VycmVudF9kaXN0cmlidXRpb25fYW1vdW50OiBudW1iZXIoKSxcbiAgc3Rha2Vfc3Vic2lkeV9wZXJpb2RfbGVuZ3RoOiBudW1iZXIoKSxcbiAgc3Rha2Vfc3Vic2lkeV9kZWNyZWFzZV9yYXRlOiBudW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3Rha2VTdWJzaWR5ID0gb2JqZWN0KHtcbiAgdHlwZTogc3RyaW5nKCksXG4gIGZpZWxkczogU3Rha2VTdWJzaWR5RmllbGRzLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdWlTdXBwbHlGaWVsZHMgPSBvYmplY3Qoe1xuICB2YWx1ZTogbnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENvbnRlbnRzRmllbGRzID0gb2JqZWN0KHtcbiAgaWQ6IHN0cmluZygpLFxuICBzaXplOiBudW1iZXIoKSxcbiAgaGVhZDogb2JqZWN0KHsgdmVjOiBhcnJheSgpIH0pLFxuICB0YWlsOiBvYmplY3QoeyB2ZWM6IGFycmF5KCkgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IENvbnRlbnRzRmllbGRzV2l0aGRyYXcgPSBvYmplY3Qoe1xuICBpZDogc3RyaW5nKCksXG4gIHNpemU6IG51bWJlcigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDb250ZW50cyA9IG9iamVjdCh7XG4gIHR5cGU6IHN0cmluZygpLFxuICBmaWVsZHM6IENvbnRlbnRzRmllbGRzLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxlZ2F0aW9uU3Rha2luZ1Bvb2xGaWVsZHMgPSBvYmplY3Qoe1xuICBleGNoYW5nZVJhdGVzOiBvYmplY3Qoe1xuICAgIGlkOiBzdHJpbmcoKSxcbiAgICBzaXplOiBudW1iZXIoKSxcbiAgfSksXG4gIGlkOiBzdHJpbmcoKSxcbiAgcGVuZGluZ1N0YWtlOiBudW1iZXIoKSxcbiAgcGVuZGluZ1Bvb2xUb2tlbldpdGhkcmF3OiBudW1iZXIoKSxcbiAgcGVuZGluZ1RvdGFsU3VpV2l0aGRyYXc6IG51bWJlcigpLFxuICBwb29sVG9rZW5CYWxhbmNlOiBudW1iZXIoKSxcbiAgcmV3YXJkc1Bvb2w6IG9iamVjdCh7IHZhbHVlOiBudW1iZXIoKSB9KSxcbiAgYWN0aXZhdGlvbkVwb2NoOiBvYmplY3QoeyB2ZWM6IGFycmF5KCkgfSksXG4gIGRlYWN0aXZhdGlvbkVwb2NoOiBvYmplY3QoeyB2ZWM6IGFycmF5KCkgfSksXG4gIHN1aUJhbGFuY2U6IG51bWJlcigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxlZ2F0aW9uU3Rha2luZ1Bvb2wgPSBvYmplY3Qoe1xuICB0eXBlOiBzdHJpbmcoKSxcbiAgZmllbGRzOiBEZWxlZ2F0aW9uU3Rha2luZ1Bvb2xGaWVsZHMsXG59KTtcblxuZXhwb3J0IGNvbnN0IENvbW1pdHRlZUluZm8gPSBvYmplY3Qoe1xuICBlcG9jaDogbnVtYmVyKCksXG4gIC8qKiBBcnJheSBvZiAodmFsaWRhdG9yIHB1YmxpYyBrZXksIHN0YWtlIHVuaXQpIHR1cGxlICovXG4gIHZhbGlkYXRvcnM6IG9wdGlvbmFsKGFycmF5KHR1cGxlKFtBdXRob3JpdHlOYW1lLCBudW1iZXIoKV0pKSksXG59KTtcblxuZXhwb3J0IGNvbnN0IFN1aVZhbGlkYXRvclN1bW1hcnkgPSBvYmplY3Qoe1xuICBzdWlBZGRyZXNzOiBTdWlBZGRyZXNzLFxuICBwcm90b2NvbFB1YmtleUJ5dGVzOiBzdHJpbmcoKSxcbiAgbmV0d29ya1B1YmtleUJ5dGVzOiBzdHJpbmcoKSxcbiAgd29ya2VyUHVia2V5Qnl0ZXM6IHN0cmluZygpLFxuICBwcm9vZk9mUG9zc2Vzc2lvbkJ5dGVzOiBzdHJpbmcoKSxcbiAgb3BlcmF0aW9uQ2FwSWQ6IHN0cmluZygpLFxuICBuYW1lOiBzdHJpbmcoKSxcbiAgZGVzY3JpcHRpb246IHN0cmluZygpLFxuICBpbWFnZVVybDogc3RyaW5nKCksXG4gIHByb2plY3RVcmw6IHN0cmluZygpLFxuICBwMnBBZGRyZXNzOiBzdHJpbmcoKSxcbiAgbmV0QWRkcmVzczogc3RyaW5nKCksXG4gIHByaW1hcnlBZGRyZXNzOiBzdHJpbmcoKSxcbiAgd29ya2VyQWRkcmVzczogc3RyaW5nKCksXG4gIG5leHRFcG9jaFByb3RvY29sUHVia2V5Qnl0ZXM6IG51bGxhYmxlKHN0cmluZygpKSxcbiAgbmV4dEVwb2NoUHJvb2ZPZlBvc3Nlc3Npb246IG51bGxhYmxlKHN0cmluZygpKSxcbiAgbmV4dEVwb2NoTmV0d29ya1B1YmtleUJ5dGVzOiBudWxsYWJsZShzdHJpbmcoKSksXG4gIG5leHRFcG9jaFdvcmtlclB1YmtleUJ5dGVzOiBudWxsYWJsZShzdHJpbmcoKSksXG4gIG5leHRFcG9jaE5ldEFkZHJlc3M6IG51bGxhYmxlKHN0cmluZygpKSxcbiAgbmV4dEVwb2NoUDJwQWRkcmVzczogbnVsbGFibGUoc3RyaW5nKCkpLFxuICBuZXh0RXBvY2hQcmltYXJ5QWRkcmVzczogbnVsbGFibGUoc3RyaW5nKCkpLFxuICBuZXh0RXBvY2hXb3JrZXJBZGRyZXNzOiBudWxsYWJsZShzdHJpbmcoKSksXG4gIHZvdGluZ1Bvd2VyOiBudW1iZXIoKSxcbiAgZ2FzUHJpY2U6IG51bWJlcigpLFxuICBjb21taXNzaW9uUmF0ZTogbnVtYmVyKCksXG4gIG5leHRFcG9jaFN0YWtlOiBudW1iZXIoKSxcbiAgbmV4dEVwb2NoR2FzUHJpY2U6IG51bWJlcigpLFxuICBuZXh0RXBvY2hDb21taXNzaW9uUmF0ZTogbnVtYmVyKCksXG4gIHN0YWtpbmdQb29sSWQ6IHN0cmluZygpLFxuICBzdGFraW5nUG9vbEFjdGl2YXRpb25FcG9jaDogbnVsbGFibGUobnVtYmVyKCkpLFxuICBzdGFraW5nUG9vbERlYWN0aXZhdGlvbkVwb2NoOiBudWxsYWJsZShudW1iZXIoKSksXG4gIHN0YWtpbmdQb29sU3VpQmFsYW5jZTogbnVtYmVyKCksXG4gIHJld2FyZHNQb29sOiBudW1iZXIoKSxcbiAgcG9vbFRva2VuQmFsYW5jZTogbnVtYmVyKCksXG4gIHBlbmRpbmdTdGFrZTogbnVtYmVyKCksXG4gIHBlbmRpbmdQb29sVG9rZW5XaXRoZHJhdzogbnVtYmVyKCksXG4gIHBlbmRpbmdUb3RhbFN1aVdpdGhkcmF3OiBudW1iZXIoKSxcbiAgZXhjaGFuZ2VSYXRlc0lkOiBzdHJpbmcoKSxcbiAgZXhjaGFuZ2VSYXRlc1NpemU6IG51bWJlcigpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFN1aVZhbGlkYXRvclN1bW1hcnkgPSBJbmZlcjx0eXBlb2YgU3VpVmFsaWRhdG9yU3VtbWFyeT47XG5cbmV4cG9ydCBjb25zdCBTdWlTeXN0ZW1TdGF0ZVN1bW1hcnkgPSBvYmplY3Qoe1xuICBlcG9jaDogbnVtYmVyKCksXG4gIHByb3RvY29sVmVyc2lvbjogbnVtYmVyKCksXG4gIHN5c3RlbVN0YXRlVmVyc2lvbjogbnVtYmVyKCksXG4gIHN0b3JhZ2VGdW5kVG90YWxPYmplY3RTdG9yYWdlUmViYXRlczogbnVtYmVyKCksXG4gIHN0b3JhZ2VGdW5kTm9uUmVmdW5kYWJsZUJhbGFuY2U6IG51bWJlcigpLFxuICByZWZlcmVuY2VHYXNQcmljZTogbnVtYmVyKCksXG4gIHNhZmVNb2RlOiBib29sZWFuKCksXG4gIHNhZmVNb2RlU3RvcmFnZVJld2FyZHM6IG51bWJlcigpLFxuICBzYWZlTW9kZUNvbXB1dGF0aW9uUmV3YXJkczogbnVtYmVyKCksXG4gIHNhZmVNb2RlU3RvcmFnZVJlYmF0ZXM6IG51bWJlcigpLFxuICBzYWZlTW9kZU5vblJlZnVuZGFibGVTdG9yYWdlRmVlOiBudW1iZXIoKSxcbiAgZXBvY2hTdGFydFRpbWVzdGFtcE1zOiBudW1iZXIoKSxcbiAgZXBvY2hEdXJhdGlvbk1zOiBudW1iZXIoKSxcbiAgc3Rha2VTdWJzaWR5U3RhcnRFcG9jaDogbnVtYmVyKCksXG4gIG1heFZhbGlkYXRvckNvdW50OiBudW1iZXIoKSxcbiAgbWluVmFsaWRhdG9ySm9pbmluZ1N0YWtlOiBudW1iZXIoKSxcbiAgdmFsaWRhdG9yTG93U3Rha2VUaHJlc2hvbGQ6IG51bWJlcigpLFxuICB2YWxpZGF0b3JWZXJ5TG93U3Rha2VUaHJlc2hvbGQ6IG51bWJlcigpLFxuICB2YWxpZGF0b3JMb3dTdGFrZUdyYWNlUGVyaW9kOiBudW1iZXIoKSxcbiAgc3Rha2VTdWJzaWR5QmFsYW5jZTogbnVtYmVyKCksXG4gIHN0YWtlU3Vic2lkeURpc3RyaWJ1dGlvbkNvdW50ZXI6IG51bWJlcigpLFxuICBzdGFrZVN1YnNpZHlDdXJyZW50RGlzdHJpYnV0aW9uQW1vdW50OiBudW1iZXIoKSxcbiAgc3Rha2VTdWJzaWR5UGVyaW9kTGVuZ3RoOiBudW1iZXIoKSxcbiAgc3Rha2VTdWJzaWR5RGVjcmVhc2VSYXRlOiBudW1iZXIoKSxcbiAgdG90YWxTdGFrZTogbnVtYmVyKCksXG4gIGFjdGl2ZVZhbGlkYXRvcnM6IGFycmF5KFN1aVZhbGlkYXRvclN1bW1hcnkpLFxuICBwZW5kaW5nQWN0aXZlVmFsaWRhdG9yc0lkOiBzdHJpbmcoKSxcbiAgcGVuZGluZ0FjdGl2ZVZhbGlkYXRvcnNTaXplOiBudW1iZXIoKSxcbiAgcGVuZGluZ1JlbW92YWxzOiBhcnJheShudW1iZXIoKSksXG4gIHN0YWtpbmdQb29sTWFwcGluZ3NJZDogc3RyaW5nKCksXG4gIHN0YWtpbmdQb29sTWFwcGluZ3NTaXplOiBudW1iZXIoKSxcbiAgaW5hY3RpdmVQb29sc0lkOiBzdHJpbmcoKSxcbiAgaW5hY3RpdmVQb29sc1NpemU6IG51bWJlcigpLFxuICB2YWxpZGF0b3JDYW5kaWRhdGVzSWQ6IHN0cmluZygpLFxuICB2YWxpZGF0b3JDYW5kaWRhdGVzU2l6ZTogbnVtYmVyKCksXG4gIGF0Umlza1ZhbGlkYXRvcnM6IGFycmF5KHR1cGxlKFtTdWlBZGRyZXNzLCBudW1iZXIoKV0pKSxcbiAgdmFsaWRhdG9yUmVwb3J0UmVjb3JkczogYXJyYXkodHVwbGUoW1N1aUFkZHJlc3MsIGFycmF5KFN1aUFkZHJlc3MpXSkpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFN1aVN5c3RlbVN0YXRlU3VtbWFyeSA9IEluZmVyPHR5cGVvZiBTdWlTeXN0ZW1TdGF0ZVN1bW1hcnk+O1xuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1SDtBQUN2SCxxQ0FBZ0Q7QUFDaEQsaURBQXdEO0FBUXhELFVBQVU7QUFFRyxRQUFBLE9BQU8sR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDNUIsS0FBSyxFQUFFLElBQUEsb0JBQU0sR0FBRTtDQUNoQixDQUFDLENBQUM7QUFFVSxRQUFBLFdBQVcsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDaEMsV0FBVyxFQUFFLGlCQUFRO0lBQ3JCLGlCQUFpQixFQUFFLHNCQUFPO0lBQzFCLGdCQUFnQixFQUFFLHNCQUFPO0lBQ3pCLFNBQVMsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDbkIsTUFBTSxFQUFFLElBQUEsbUJBQUssRUFBQyxDQUFDLElBQUEscUJBQU8sRUFBQyxRQUFRLENBQUMsRUFBRSxJQUFBLHFCQUFPLEVBQUMsU0FBUyxDQUFDLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDM0UsZUFBZSxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztDQUNwQyxDQUFDLENBQUM7QUFFVSxRQUFBLGNBQWMsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDbkMsZ0JBQWdCLEVBQUUsbUJBQVU7SUFDNUIsV0FBVyxFQUFFLGlCQUFRO0lBQ3JCLE1BQU0sRUFBRSxJQUFBLG1CQUFLLEVBQUMsbUJBQVcsQ0FBQztDQUMzQixDQUFDLENBQUM7QUFFVSxRQUFBLGtCQUFrQixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUN2QyxPQUFPLEVBQUUsSUFBQSxvQkFBTSxFQUFDLEVBQUUsS0FBSyxFQUFFLElBQUEsb0JBQU0sR0FBRSxFQUFFLENBQUM7SUFDcEMsb0JBQW9CLEVBQUUsSUFBQSxvQkFBTSxH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LG1CQUFLLEVBQUMsSUFBQSxtQkFBSyxFQUFDLENBQUMsbUJBQVUsRUFBRSxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsc0JBQXNCLEVBQUUsSUFBQSxtQkFBSyxFQUFDLElBQUEsbUJBQUssRUFBQyxDQUFDLG1CQUFVLEVBQUUsSUFBQSxtQkFBSyxFQUFDLG1CQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDdEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXJyYXksIGJvb2xlYW4sIGxpdGVyYWwsIG51bWJlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uLCBJbmZlciwgbnVsbGFibGUsIHR1cGxlLCBvcHRpb25hbCB9IGZyb20gJ3N1cGVyc3RydWN0JztcbmltcG9ydCB7IE9iamVjdElkLCBTdWlBZGRyZXNzIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgQXV0aG9yaXR5TmFtZSwgRXBvY2hJZCB9IGZyb20gJy4vdHJhbnNhY3Rpb25zJztcblxuLyogLS0tLS0tLS0tLS0tLS0gVHlwZXMgZm9yIHRoZSBTdWlTeXN0ZW1TdGF0ZSBSdXN0IGRlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IHR5cGUgRGVsZWdhdGVkU3Rha2UgPSBJbmZlcjx0eXBlb2YgRGVsZWdhdGVkU3Rha2U+O1xuZXhwb3J0IHR5cGUgQ29tbWl0dGVlSW5mbyA9IEluZmVyPHR5cGVvZiBDb21taXR0ZWVJbmZvPjtcbmV4cG9ydCB0eXBlIFN0YWtlT2JqZWN0ID0gSW5mZXI8dHlwZW9mIFN0YWtlT2JqZWN0PjtcblxuLy8gU3Rha2luZ1xuXG5leHBvcnQgY29uc3QgQmFsYW5jZSA9IG9iamVjdCh7XG4gIHZhbHVlOiBudW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3Rha2VPYmplY3QgPSBvYmplY3Qoe1xuICBzdGFrZWRTdWlJZDogT2JqZWN0SWQsXG4gIHN0YWtlUmVxdWVzdEVwb2NoOiBFcG9jaElkLFxuICBzdGFrZUFjdGl2ZUVwb2NoOiBFcG9jaElkLFxuICBwcmluY2lwYWw6IG51bWJlcigpLFxuICBzdGF0dXM6IHVuaW9uKFtsaXRlcmFsKCdBY3RpdmUnKSwgbGl0ZXJhbCgnUGVuZGluZycpLCBsaXRlcmFsKCdVbnN0YWtlZCcpXSksXG4gIGVzdGltYXRlZFJld2FyZDogb3B0aW9uYWwobnVtYmVyKCkpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxlZ2F0ZWRTdGFrZSA9IG9iamVjdCh7XG4gIHZhbGlkYXRvckFkZHJlc3M6IFN1aUFkZHJlc3MsXG4gIHN0YWtpbmdQb29sOiBPYmplY3RJZCxcbiAgc3Rha2VzOiBhcnJheShTdGFrZU9iamVjdCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0YWtlU3Vic2lkeUZpZWxkcyA9IG9iamVjdCh7XG4gIGJhbGFuY2U6IG9iamVjdCh7IHZhbHVlOiBudW1iZXIoKSB9KSxcbiAgZGlzdHJpYnV0aW9uX2NvdW50ZXI6IG51bWJlcigpLFxuICBjdXJyZW50X2Rpc3RyaWJ1dGlvbl9hbW91bnQ6IG51bWJlcigpLFxuICBzdGFrZV9zdWJzaWR5X3BlcmlvZF9sZW5ndGg6IG51bWJlcigpLFxuICBzdGFrZV9zdWJzaWR5X2RlY3JlYXNlX3JhdGU6IG51bWJlcigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdGFrZVN1YnNpZHkgPSBvYmplY3Qoe1xuICB0eXBlOiBzdHJpbmcoKSxcbiAgZmllbGRzOiBTdGFrZVN1YnNpZHlGaWVsZHMsXG59KTtcblxuZXhwb3J0IGNvbnN0IFN1aVN1cHBseUZpZWxkcyA9IG9iamVjdCh7XG4gIHZhbHVlOiBudW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ29udGVudHNGaWVsZHMgPSBvYmplY3Qoe1xuICBpZDogc3RyaW5nKCksXG4gIHNpemU6IG51bWJlcigpLFxuICBoZWFkOiBvYmplY3QoeyB2ZWM6IGFycmF5KCkgfSksXG4gIHRhaWw6IG9iamVjdCh7IHZlYzogYXJyYXkoKSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ29udGVudHNGaWVsZHNXaXRoZHJhdyA9IG9iamVjdCh7XG4gIGlkOiBzdHJpbmcoKSxcbiAgc2l6ZTogbnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENvbnRlbnRzID0gb2JqZWN0KHtcbiAgdHlwZTogc3RyaW5nKCksXG4gIGZpZWxkczogQ29udGVudHNGaWVsZHMsXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGVnYXRpb25TdGFraW5nUG9vbEZpZWxkcyA9IG9iamVjdCh7XG4gIGV4Y2hhbmdlUmF0ZXM6IG9iamVjdCh7XG4gICAgaWQ6IHN0cmluZygpLFxuICAgIHNpemU6IG51bWJlcigpLFxuICB9KSxcbiAgaWQ6IHN0cmluZygpLFxuICBwZW5kaW5nU3Rha2U6IG51bWJlcigpLFxuICBwZW5kaW5nUG9vbFRva2VuV2l0aGRyYXc6IG51bWJlcigpLFxuICBwZW5kaW5nVG90YWxTdWlXaXRoZHJhdzogbnVtYmVyKCksXG4gIHBvb2xUb2tlbkJhbGFuY2U6IG51bWJlcigpLFxuICByZXdhcmRzUG9vbDogb2JqZWN0KHsgdmFsdWU6IG51bWJlcigpIH0pLFxuICBhY3RpdmF0aW9uRXBvY2g6IG9iamVjdCh7IHZlYzogYXJyYXkoKSB9KSxcbiAgZGVhY3RpdmF0aW9uRXBvY2g6IG9iamVjdCh7IHZlYzogYXJyYXkoKSB9KSxcbiAgc3VpQmFsYW5jZTogbnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGVnYXRpb25TdGFraW5nUG9vbCA9IG9iamVjdCh7XG4gIHR5cGU6IHN0cmluZygpLFxuICBmaWVsZHM6IERlbGVnYXRpb25TdGFraW5nUG9vbEZpZWxkcyxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ29tbWl0dGVlSW5mbyA9IG9iamVjdCh7XG4gIGVwb2NoOiBudW1iZXIoKSxcbiAgLyoqIEFycmF5IG9mICh2YWxpZGF0b3IgcHVibGljIGtleSwgc3Rha2UgdW5pdCkgdHVwbGUgKi9cbiAgdmFsaWRhdG9yczogb3B0aW9uYWwoYXJyYXkodHVwbGUoW0F1dGhvcml0eU5hbWUsIG51bWJlcigpXSkpKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3VpVmFsaWRhdG9yU3VtbWFyeSA9IG9iamVjdCh7XG4gIHN1aUFkZHJlc3M6IFN1aUFkZHJlc3MsXG4gIHByb3RvY29sUHVia2V5Qnl0ZXM6IHN0cmluZygpLFxuICBuZXR3b3JrUHVia2V5Qnl0ZXM6IHN0cmluZygpLFxuICB3b3JrZXJQdWJrZXlCeXRlczogc3RyaW5nKCksXG4gIHByb29mT2ZQb3NzZXNzaW9uQnl0ZXM6IHN0cmluZygpLFxuICBvcGVyYXRpb25DYXBJZDogc3RyaW5nKCksXG4gIG5hbWU6IHN0cmluZygpLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nKCksXG4gIGltYWdlVXJsOiBzdHJpbmcoKSxcbiAgcHJvamVjdFVybDogc3RyaW5nKCksXG4gIHAycEFkZHJlc3M6IHN0cmluZygpLFxuICBuZXRBZGRyZXNzOiBzdHJpbmcoKSxcbiAgcHJpbWFyeUFkZHJlc3M6IHN0cmluZygpLFxuICB3b3JrZXJBZGRyZXNzOiBzdHJpbmcoKSxcbiAgbmV4dEVwb2NoUHJvdG9jb2xQdWJrZXlCeXRlczogbnVsbGFibGUoc3RyaW5nKCkpLFxuICBuZXh0RXBvY2hQcm9vZk9mUG9zc2Vzc2lvbjogbnVsbGFibGUoc3RyaW5nKCkpLFxuICBuZXh0RXBvY2hOZXR3b3JrUHVia2V5Qnl0ZXM6IG51bGxhYmxlKHN0cmluZygpKSxcbiAgbmV4dEVwb2NoV29ya2VyUHVia2V5Qnl0ZXM6IG51bGxhYmxlKHN0cmluZygpKSxcbiAgbmV4dEVwb2NoTmV0QWRkcmVzczogbnVsbGFibGUoc3RyaW5nKCkpLFxuICBuZXh0RXBvY2hQMnBBZGRyZXNzOiBudWxsYWJsZShzdHJpbmcoKSksXG4gIG5leHRFcG9jaFByaW1hcnlBZGRyZXNzOiBudWxsYWJsZShzdHJpbmcoKSksXG4gIG5leHRFcG9jaFdvcmtlckFkZHJlc3M6IG51bGxhYmxlKHN0cmluZygpKSxcbiAgdm90aW5nUG93ZXI6IG51bWJlcigpLFxuICBnYXNQcmljZTogbnVtYmVyKCksXG4gIGNvbW1pc3Npb25SYXRlOiBudW1iZXIoKSxcbiAgbmV4dEVwb2NoU3Rha2U6IG51bWJlcigpLFxuICBuZXh0RXBvY2hHYXNQcmljZTogbnVtYmVyKCksXG4gIG5leHRFcG9jaENvbW1pc3Npb25SYXRlOiBudW1iZXIoKSxcbiAgc3Rha2luZ1Bvb2xJZDogc3RyaW5nKCksXG4gIHN0YWtpbmdQb29sQWN0aXZhdGlvbkVwb2NoOiBudWxsYWJsZShudW1iZXIoKSksXG4gIHN0YWtpbmdQb29sRGVhY3RpdmF0aW9uRXBvY2g6IG51bGxhYmxlKG51bWJlcigpKSxcbiAgc3Rha2luZ1Bvb2xTdWlCYWxhbmNlOiBudW1iZXIoKSxcbiAgcmV3YXJkc1Bvb2w6IG51bWJlcigpLFxuICBwb29sVG9rZW5CYWxhbmNlOiBudW1iZXIoKSxcbiAgcGVuZGluZ1N0YWtlOiBudW1iZXIoKSxcbiAgcGVuZGluZ1Bvb2xUb2tlbldpdGhkcmF3OiBudW1iZXIoKSxcbiAgcGVuZGluZ1RvdGFsU3VpV2l0aGRyYXc6IG51bWJlcigpLFxuICBleGNoYW5nZVJhdGVzSWQ6IHN0cmluZygpLFxuICBleGNoYW5nZVJhdGVzU2l6ZTogbnVtYmVyKCksXG59KTtcblxuZXhwb3J0IHR5cGUgU3VpVmFsaWRhdG9yU3VtbWFyeSA9IEluZmVyPHR5cGVvZiBTdWlWYWxpZGF0b3JTdW1tYXJ5PjtcblxuZXhwb3J0IGNvbnN0IFN1aVN5c3RlbVN0YXRlU3VtbWFyeSA9IG9iamVjdCh7XG4gIGVwb2NoOiBudW1iZXIoKSxcbiAgcHJvdG9jb2xWZXJzaW9uOiBudW1iZXIoKSxcbiAgc3lzdGVtU3RhdGVWZXJzaW9uOiBudW1iZXIoKSxcbiAgc3RvcmFnZUZ1bmRUb3RhbE9iamVjdFN0b3JhZ2VSZWJhdGVzOiBudW1iZXIoKSxcbiAgc3RvcmFnZUZ1bmROb25SZWZ1bmRhYmxlQmFsYW5jZTogbnVtYmVyKCksXG4gIHJlZmVyZW5jZUdhc1ByaWNlOiBudW1iZXIoKSxcbiAgc2FmZU1vZGU6IGJvb2xlYW4oKSxcbiAgc2FmZU1vZGVTdG9yYWdlUmV3YXJkczogbnVtYmVyKCksXG4gIHNhZmVNb2RlQ29tcHV0YXRpb25SZXdhcmRzOiBudW1iZXIoKSxcbiAgc2FmZU1vZGVTdG9yYWdlUmViYXRlczogbnVtYmVyKCksXG4gIHNhZmVNb2RlTm9uUmVmdW5kYWJsZVN0b3JhZ2VGZWU6IG51bWJlcigpLFxuICBlcG9jaFN0YXJ0VGltZXN0YW1wTXM6IG51bWJlcigpLFxuICBlcG9jaER1cmF0aW9uTXM6IG51bWJlcigpLFxuICBzdGFrZVN1YnNpZHlTdGFydEVwb2NoOiBudW1iZXIoKSxcbiAgbWF4VmFsaWRhdG9yQ291bnQ6IG51bWJlcigpLFxuICBtaW5WYWxpZGF0b3JKb2luaW5nU3Rha2U6IG51bWJlcigpLFxuICB2YWxpZGF0b3JMb3dTdGFrZVRocmVzaG9sZDogbnVtYmVyKCksXG4gIHZhbGlkYXRvclZlcnlMb3dTdGFrZVRocmVzaG9sZDogbnVtYmVyKCksXG4gIHZhbGlkYXRvckxvd1N0YWtlR3JhY2VQZXJpb2Q6IG51bWJlcigpLFxuICBzdGFrZVN1YnNpZHlCYWxhbmNlOiBudW1iZXIoKSxcbiAgc3Rha2VTdWJzaWR5RGlzdHJpYnV0aW9uQ291bnRlcjogbnVtYmVyKCksXG4gIHN0YWtlU3Vic2lkeUN1cnJlbnREaXN0cmlidXRpb25BbW91bnQ6IG51bWJlcigpLFxuICBzdGFrZVN1YnNpZHlQZXJpb2RMZW5ndGg6IG51bWJlcigpLFxuICBzdGFrZVN1YnNpZHlEZWNyZWFzZVJhdGU6IG51bWJlcigpLFxuICB0b3RhbFN0YWtlOiBudW1iZXIoKSxcbiAgYWN0aXZlVmFsaWRhdG9yczogYXJyYXkoU3VpVmFsaWRhdG9yU3VtbWFyeSksXG4gIHBlbmRpbmdBY3RpdmVWYWxpZGF0b3JzSWQ6IHN0cmluZygpLFxuICBwZW5kaW5nQWN0aXZlVmFsaWRhdG9yc1NpemU6IG51bWJlcigpLFxuICBwZW5kaW5nUmVtb3ZhbHM6IGFycmF5KG51bWJlcigpKSxcbiAgc3Rha2luZ1Bvb2xNYXBwaW5nc0lkOiBzdHJpbmcoKSxcbiAgc3Rha2luZ1Bvb2xNYXBwaW5nc1NpemU6IG51bWJlcigpLFxuICBpbmFjdGl2ZVBvb2xzSWQ6IHN0cmluZygpLFxuICBpbmFjdGl2ZVBvb2xzU2l6ZTogbnVtYmVyKCksXG4gIHZhbGlkYXRvckNhbmRpZGF0ZXNJZDogc3RyaW5nKCksXG4gIHZhbGlkYXRvckNhbmRpZGF0ZXNTaXplOiBudW1iZXIoKSxcbiAgYXRSaXNrVmFsaWRhdG9yczogYXJyYXkodHVwbGUoW1N1aUFkZHJlc3MsIG51bWJlcigpXSkpLFxuICB2YWxpZGF0b3JSZXBvcnRSZWNvcmRzOiBhcnJheSh0dXBsZShbU3VpQWRkcmVzcywgYXJyYXkoU3VpQWRkcmVzcyldKSksXG59KTtcblxuZXhwb3J0IHR5cGUgU3VpU3lzdGVtU3RhdGVTdW1tYXJ5ID0gSW5mZXI8dHlwZW9mIFN1aVN5c3RlbVN0YXRlU3VtbWFyeT47XG4iXX0=
@@ -63,7 +63,7 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
63
63
  stake(request) {
64
64
  request.forEach((req) => {
65
65
  utils_1.default.validateAddress(req.validatorAddress, 'validatorAddress');
66
- assert_1.default(utils_1.default.isValidAmount(req.amount), 'Invalid recipient amount');
66
+ (0, assert_1.default)(utils_1.default.isValidAmount(req.amount), 'Invalid recipient amount');
67
67
  if (this._sender === req.validatorAddress) {
68
68
  throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
69
69
  }
@@ -123,13 +123,13 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
123
123
  * Validates all fields are defined
124
124
  */
125
125
  validateTransactionFields() {
126
- assert_1.default(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
127
- assert_1.default(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
126
+ (0, assert_1.default)(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
127
+ (0, assert_1.default)(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
128
128
  this._addStakeTx.forEach((req) => {
129
- assert_1.default(req.validatorAddress, new sdk_core_1.BuildTransactionError('validator address is required before building'));
130
- assert_1.default(req.amount, new sdk_core_1.BuildTransactionError('staking amount is required before building'));
129
+ (0, assert_1.default)(req.validatorAddress, new sdk_core_1.BuildTransactionError('validator address is required before building'));
130
+ (0, assert_1.default)(req.amount, new sdk_core_1.BuildTransactionError('staking amount is required before building'));
131
131
  });
132
- assert_1.default(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
132
+ (0, assert_1.default)(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
133
133
  this.validateGasData(this._gasData);
134
134
  }
135
135
  /**
@@ -187,4 +187,4 @@ class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
187
187
  }
188
188
  }
189
189
  exports.StakingBuilder = StakingBuilder;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhDQUEyRztBQUMzRyxtQ0FNaUI7QUFDakIsNkRBQTBEO0FBRTFELG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsNkRBQTBEO0FBQzFELGlEQUk2QjtBQUM3QixxREFNK0I7QUFDL0IscUNBQWtDO0FBRWxDLE1BQWEsY0FBZSxTQUFRLHVDQUFrRDtJQUlwRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksdUNBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxxQkFBcUI7UUFDN0IsT0FBTztZQUNMLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxRQUFRO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixFQUFFLEVBQUU7Z0JBQ0YsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEVBQUU7YUFDakI7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBZ0M7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBWTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixF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RUQsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBQy9DLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLEVBQUUsRUFBRTtnQkFDRixNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzFCLFlBQVksRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQzthQUN2QztZQUNELE9BQU8sRUFBRTtnQkFDUCxHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ2pCO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBNRCx3Q0FvTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUtleSwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIFN1aVRyYW5zYWN0aW9uLFxuICBSZXF1ZXN0QWRkU3Rha2UsXG4gIFJlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aSxcbiAgU3VpVHJhbnNhY3Rpb25UeXBlLFxuICBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zZmVyVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9zdGFraW5nVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25CbG9jayBhcyBQcm9ncmFtbWluZ1RyYW5zYWN0aW9uQmxvY2tCdWlsZGVyLFxuICBNb3ZlQ2FsbFRyYW5zYWN0aW9uLFxuICBJbnB1dHMsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgQUREX1NUQUtFX0ZVTl9OQU1FLFxuICBTVUlfU1lTVEVNX0FERFJFU1MsXG4gIFNVSV9TWVNURU1fTU9EVUxFX05BTUUsXG4gIFNVSV9TWVNURU1fU1RBVEVfT0JKRUNULFxuICBXSVRIRFJBV19TVEFLRV9GVU5fTkFNRSxcbn0gZnJvbSAnLi9teXN0ZW5sYWIvZnJhbWV3b3JrJztcbmltcG9ydCB7IEJDUyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgX2FkZFN0YWtlVHg6IFJlcXVlc3RBZGRTdGFrZVtdO1xuICBwcm90ZWN0ZWQgX3dpdGhkcmF3RGVsZWdhdGlvbjogUmVxdWVzdFdpdGhkcmF3U3Rha2VkU3VpO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBTdGFraW5nVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgTW92ZUNhbGwgdHJhbnNhY3Rpb24gcmVhZHkgdG8gYmUgc2lnbmVkIGFuZCBleGVjdXRlZC5cbiAgICpcbiAgICogQHJldHVybnMge0JpdEdvU3VpVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIFN1aSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3Rha2VUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX2dhc0RhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3Rha2luZyB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNmZXJUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24uc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2lnbihrZXk6IEJhc2VLZXkpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICBzdXBlci5zaWduKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIGZvciBzdGFraW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZCBhbmQgZXhlY3V0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVxdWVzdEFkZFN0YWtlW119IHJlcXVlc3Q6IGEgbGlzdCBvZiBzdGFraW5nIHJlcXVlc3RcbiAgICovXG4gIHN0YWtlKHJlcXVlc3Q6IFJlcXVlc3RBZGRTdGFrZVtdKTogdGhpcyB7XG4gICAgcmVxdWVzdC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZXEudmFsaWRhdG9yQWRkcmVzcywgJ3ZhbGlkYXRvckFkZHJlc3MnKTtcbiAgICAgIGFzc2VydCh1dGlscy5pc1ZhbGlkQW1vdW50KHJlcS5hbW91bnQpLCAnSW52YWxpZCByZWNpcGllbnQgYW1vdW50Jyk7XG5cbiAgICAgIGlmICh0aGlzLl9zZW5kZXIgPT09IHJlcS52YWxpZGF0b3JBZGRyZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgU3Rha2luZyBhZGRyZXNzJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hZGRTdGFrZVR4ID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdHJhbnNhY3Rpb24gZm9yIHdpdGhkcmF3aW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aX0gcmVxdWVzdFxuICAgKi9cbiAgdW5zdGFrZShyZXF1ZXN0OiBSZXF1ZXN0V2l0aGRyYXdTdGFrZWRTdWkpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHJlcXVlc3Quc3Rha2VkU3VpLCAnc3Rha2VkU3VpJyk7XG4gICAgdGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eCA9IG5ldyBTdGFraW5nVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcblxuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25hdHVyZXMuZm9yRWFjaCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZShzaWduYXR1cmUucHVibGljS2V5LCBzaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuXG4gICAgaWYgKHR4LnNpZ25hdHVyZSAmJiB0eC5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlcyA9IFt0eC5zdWlTaWduYXR1cmVdO1xuICAgIH1cblxuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHRoaXMudHlwZShTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2UpO1xuICAgIHRoaXMuc2VuZGVyKHR4RGF0YS5zZW5kZXIpO1xuICAgIHRoaXMuZ2FzRGF0YSh0eERhdGEuZ2FzRGF0YSk7XG5cbiAgICBjb25zdCByZXF1ZXN0cyA9IHV0aWxzLmdldFN0YWtlUmVxdWVzdHModHguc3VpVHJhbnNhY3Rpb24udHgpO1xuICAgIHRoaXMuc3Rha2UocmVxdWVzdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbGwgZmllbGRzIGFyZSBkZWZpbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTogdm9pZCB7XG4gICAgYXNzZXJ0KHRoaXMuX3R5cGUsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3R5cGUgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy5fYWRkU3Rha2VUeC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgIGFzc2VydChyZXEudmFsaWRhdG9yQWRkcmVzcywgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndmFsaWRhdG9yIGFkZHJlc3MgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgICAgYXNzZXJ0KHJlcS5hbW91bnQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3N0YWtpbmcgYW1vdW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICB9KTtcbiAgICBhc3NlcnQodGhpcy5fZ2FzRGF0YSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzRGF0YSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0RhdGEodGhpcy5fZ2FzRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgU3VpVHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHJldHVybiB7Qml0R29TdWlUcmFuc2FjdGlvbjxNb3ZlQ2FsbFR4Pn1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeEJ1aWxkZXIgPSBuZXcgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcigpO1xuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2U6XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBjb2luIHdpdGggc3Rha2luZyBiYWxhbmNlLCBiYXNlZCBvbiB0aGUgY29pbnMgdXNlZCBhcyBnYXMgcGF5bWVudC5cbiAgICAgICAgdGhpcy5fYWRkU3Rha2VUeC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2luID0gcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnNwbGl0Q29pbnMocHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmdhcywgW1xuICAgICAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnB1cmUocmVxLmFtb3VudCksXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgLy8gU3Rha2UgdGhlIHNwbGl0IGNvaW4gdG8gYSBzcGVjaWZpYyB2YWxpZGF0b3IgYWRkcmVzcy5cbiAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubW92ZUNhbGwoe1xuICAgICAgICAgICAgdGFyZ2V0OiBgJHtTVUlfU1lTVEVNX0FERFJFU1N9Ojoke1NVSV9TWVNURU1fTU9EVUxFX05BTUV9Ojoke0FERF9TVEFLRV9GVU5fTkFNRX1gLFxuICAgICAgICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZihTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCkpLFxuICAgICAgICAgICAgICBjb2luLFxuICAgICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIucHVyZShJbnB1dHMuUHVyZShyZXEudmFsaWRhdG9yQWRkcmVzcywgQkNTLkFERFJFU1MpKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSBhcyBNb3ZlQ2FsbFRyYW5zYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuV2l0aGRyYXdTdGFrZTpcbiAgICAgICAgLy8gVW5zdGFrZSBzdGFrZWQgb2JqZWN0LlxuICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubW92ZUNhbGwoe1xuICAgICAgICAgIHRhcmdldDogYCR7U1VJX1NZU1RFTV9BRERSRVNTfTo6JHtTVUlfU1lTVEVNX01PRFVMRV9OQU1FfTo6JHtXSVRIRFJBV19TVEFLRV9GVU5fTkFNRX1gLFxuICAgICAgICAgIGFyZ3VtZW50czogW1xuICAgICAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLm9iamVjdChJbnB1dHMuU2hhcmVkT2JqZWN0UmVmKFNVSV9TWVNURU1fU1RBVEVfT0JKRUNUKSksXG4gICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIucHVyZShJbnB1dHMuT2JqZWN0UmVmKHRoaXMuX3dpdGhkcmF3RGVsZWdhdGlvbi5zdGFrZWRTdWkpKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9IGFzIE1vdmVDYWxsVHJhbnNhY3Rpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgdW5zdXBwb3J0ZWQgdGFyZ2V0IG1ldGhvZGApO1xuICAgIH1cblxuICAgIGNvbnN0IHR4RGF0YSA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5ibG9ja0RhdGE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHR4OiB7XG4gICAgICAgIGlucHV0czogWy4uLnR4RGF0YS5pbnB1dHNdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFsuLi50eERhdGEudHJhbnNhY3Rpb25zXSxcbiAgICAgIH0sXG4gICAgICBnYXNEYXRhOiB7XG4gICAgICAgIC4uLnRoaXMuX2dhc0RhdGEsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDhDQUEyRztBQUMzRyxtQ0FNaUI7QUFDakIsNkRBQTBEO0FBRTFELG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsNkRBQTBEO0FBQzFELGlEQUk2QjtBQUM3QixxREFNK0I7QUFDL0IscUNBQWtDO0FBRWxDLE1BQWEsY0FBZSxTQUFRLHVDQUFrRDtJQUlwRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksdUNBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxxQkFBcUI7UUFDN0IsT0FBTztZQUNMLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxRQUFRO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixFQUFFLEVBQUU7Z0JBQ0YsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEVBQUU7YUFDakI7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBZ0M7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBWTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixF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Q0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBQy9DLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLEVBQUUsRUFBRTtnQkFDRixNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzFCLFlBQVksRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQzthQUN2QztZQUNELE9BQU8sRUFBRTtnQkFDUCxHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ2pCO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBNRCx3Q0FvTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUtleSwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIFN1aVRyYW5zYWN0aW9uLFxuICBSZXF1ZXN0QWRkU3Rha2UsXG4gIFJlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aSxcbiAgU3VpVHJhbnNhY3Rpb25UeXBlLFxuICBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zZmVyVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9zdGFraW5nVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25CbG9jayBhcyBQcm9ncmFtbWluZ1RyYW5zYWN0aW9uQmxvY2tCdWlsZGVyLFxuICBNb3ZlQ2FsbFRyYW5zYWN0aW9uLFxuICBJbnB1dHMsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgQUREX1NUQUtFX0ZVTl9OQU1FLFxuICBTVUlfU1lTVEVNX0FERFJFU1MsXG4gIFNVSV9TWVNURU1fTU9EVUxFX05BTUUsXG4gIFNVSV9TWVNURU1fU1RBVEVfT0JKRUNULFxuICBXSVRIRFJBV19TVEFLRV9GVU5fTkFNRSxcbn0gZnJvbSAnLi9teXN0ZW5sYWIvZnJhbWV3b3JrJztcbmltcG9ydCB7IEJDUyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgX2FkZFN0YWtlVHg6IFJlcXVlc3RBZGRTdGFrZVtdO1xuICBwcm90ZWN0ZWQgX3dpdGhkcmF3RGVsZWdhdGlvbjogUmVxdWVzdFdpdGhkcmF3U3Rha2VkU3VpO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBTdGFraW5nVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgTW92ZUNhbGwgdHJhbnNhY3Rpb24gcmVhZHkgdG8gYmUgc2lnbmVkIGFuZCBleGVjdXRlZC5cbiAgICpcbiAgICogQHJldHVybnMge0JpdEdvU3VpVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIFN1aSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3Rha2VUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX2dhc0RhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3Rha2luZyB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNmZXJUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24uc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2lnbihrZXk6IEJhc2VLZXkpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICBzdXBlci5zaWduKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIGZvciBzdGFraW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZCBhbmQgZXhlY3V0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVxdWVzdEFkZFN0YWtlW119IHJlcXVlc3Q6IGEgbGlzdCBvZiBzdGFraW5nIHJlcXVlc3RcbiAgICovXG4gIHN0YWtlKHJlcXVlc3Q6IFJlcXVlc3RBZGRTdGFrZVtdKTogdGhpcyB7XG4gICAgcmVxdWVzdC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZXEudmFsaWRhdG9yQWRkcmVzcywgJ3ZhbGlkYXRvckFkZHJlc3MnKTtcbiAgICAgIGFzc2VydCh1dGlscy5pc1ZhbGlkQW1vdW50KHJlcS5hbW91bnQpLCAnSW52YWxpZCByZWNpcGllbnQgYW1vdW50Jyk7XG5cbiAgICAgIGlmICh0aGlzLl9zZW5kZXIgPT09IHJlcS52YWxpZGF0b3JBZGRyZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgU3Rha2luZyBhZGRyZXNzJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hZGRTdGFrZVR4ID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdHJhbnNhY3Rpb24gZm9yIHdpdGhkcmF3aW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aX0gcmVxdWVzdFxuICAgKi9cbiAgdW5zdGFrZShyZXF1ZXN0OiBSZXF1ZXN0V2l0aGRyYXdTdGFrZWRTdWkpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHJlcXVlc3Quc3Rha2VkU3VpLCAnc3Rha2VkU3VpJyk7XG4gICAgdGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eCA9IG5ldyBTdGFraW5nVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcblxuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25hdHVyZXMuZm9yRWFjaCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZShzaWduYXR1cmUucHVibGljS2V5LCBzaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuXG4gICAgaWYgKHR4LnNpZ25hdHVyZSAmJiB0eC5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlcyA9IFt0eC5zdWlTaWduYXR1cmVdO1xuICAgIH1cblxuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHRoaXMudHlwZShTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2UpO1xuICAgIHRoaXMuc2VuZGVyKHR4RGF0YS5zZW5kZXIpO1xuICAgIHRoaXMuZ2FzRGF0YSh0eERhdGEuZ2FzRGF0YSk7XG5cbiAgICBjb25zdCByZXF1ZXN0cyA9IHV0aWxzLmdldFN0YWtlUmVxdWVzdHModHguc3VpVHJhbnNhY3Rpb24udHgpO1xuICAgIHRoaXMuc3Rha2UocmVxdWVzdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbGwgZmllbGRzIGFyZSBkZWZpbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTogdm9pZCB7XG4gICAgYXNzZXJ0KHRoaXMuX3R5cGUsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3R5cGUgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy5fYWRkU3Rha2VUeC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgIGFzc2VydChyZXEudmFsaWRhdG9yQWRkcmVzcywgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndmFsaWRhdG9yIGFkZHJlc3MgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgICAgYXNzZXJ0KHJlcS5hbW91bnQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3N0YWtpbmcgYW1vdW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICB9KTtcbiAgICBhc3NlcnQodGhpcy5fZ2FzRGF0YSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzRGF0YSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0RhdGEodGhpcy5fZ2FzRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgU3VpVHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHJldHVybiB7Qml0R29TdWlUcmFuc2FjdGlvbjxNb3ZlQ2FsbFR4Pn1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeEJ1aWxkZXIgPSBuZXcgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcigpO1xuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2U6XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBjb2luIHdpdGggc3Rha2luZyBiYWxhbmNlLCBiYXNlZCBvbiB0aGUgY29pbnMgdXNlZCBhcyBnYXMgcGF5bWVudC5cbiAgICAgICAgdGhpcy5fYWRkU3Rha2VUeC5mb3JFYWNoKChyZXEpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2luID0gcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnNwbGl0Q29pbnMocHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmdhcywgW1xuICAgICAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnB1cmUocmVxLmFtb3VudCksXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgLy8gU3Rha2UgdGhlIHNwbGl0IGNvaW4gdG8gYSBzcGVjaWZpYyB2YWxpZGF0b3IgYWRkcmVzcy5cbiAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubW92ZUNhbGwoe1xuICAgICAgICAgICAgdGFyZ2V0OiBgJHtTVUlfU1lTVEVNX0FERFJFU1N9Ojoke1NVSV9TWVNURU1fTU9EVUxFX05BTUV9Ojoke0FERF9TVEFLRV9GVU5fTkFNRX1gLFxuICAgICAgICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZihTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCkpLFxuICAgICAgICAgICAgICBjb2luLFxuICAgICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIucHVyZShJbnB1dHMuUHVyZShyZXEudmFsaWRhdG9yQWRkcmVzcywgQkNTLkFERFJFU1MpKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSBhcyB1bmtub3duIGFzIE1vdmVDYWxsVHJhbnNhY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlOlxuICAgICAgICAvLyBVbnN0YWtlIHN0YWtlZCBvYmplY3QuXG4gICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5tb3ZlQ2FsbCh7XG4gICAgICAgICAgdGFyZ2V0OiBgJHtTVUlfU1lTVEVNX0FERFJFU1N9Ojoke1NVSV9TWVNURU1fTU9EVUxFX05BTUV9Ojoke1dJVEhEUkFXX1NUQUtFX0ZVTl9OQU1FfWAsXG4gICAgICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIub2JqZWN0KElucHV0cy5TaGFyZWRPYmplY3RSZWYoU1VJX1NZU1RFTV9TVEFURV9PQkpFQ1QpKSxcbiAgICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5wdXJlKElucHV0cy5PYmplY3RSZWYodGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uLnN0YWtlZFN1aSkpLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0gYXMgdW5rbm93biBhcyBNb3ZlQ2FsbFRyYW5zYWN0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYHVuc3VwcG9ydGVkIHRhcmdldCBtZXRob2RgKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGEgPSBwcm9ncmFtbWFibGVUeEJ1aWxkZXIuYmxvY2tEYXRhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLl90eXBlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFsuLi50eERhdGEuaW5wdXRzXSxcbiAgICAgICAgdHJhbnNhY3Rpb25zOiBbLi4udHhEYXRhLnRyYW5zYWN0aW9uc10sXG4gICAgICB9LFxuICAgICAgZ2FzRGF0YToge1xuICAgICAgICAuLi50aGlzLl9nYXNEYXRhLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -151,7 +151,7 @@ class StakingTransaction extends transaction_1.Transaction {
151
151
  }
152
152
  if (input.hasOwnProperty('Pure')) {
153
153
  if (input.Pure.length === constants_1.SUI_ADDRESS_LENGTH) {
154
- const address = types_1.normalizeSuiAddress(builder_1.builder.de(bcs_1.BCS.ADDRESS, buffer_1.Buffer.from(input.Pure).toString('base64'), 'base64'));
154
+ const address = (0, types_1.normalizeSuiAddress)(builder_1.builder.de(bcs_1.BCS.ADDRESS, buffer_1.Buffer.from(input.Pure).toString('base64'), 'base64'));
155
155
  return builder_1.Inputs.Pure(address, bcs_1.BCS.ADDRESS);
156
156
  }
157
157
  else {
@@ -205,4 +205,4 @@ class StakingTransaction extends transaction_1.Transaction {
205
205
  }
206
206
  }
207
207
  exports.StakingTransaction = StakingTransaction;
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1RyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBUXlCO0FBR3pCLG9EQUE0QjtBQUM1QixtQ0FBZ0M7QUFDaEMsK0NBQTRDO0FBQzVDLGlEQU02QjtBQUM3Qiw2Q0FBaUU7QUFDakUscUNBQWtDO0FBQ2xDLDJDQUFpRDtBQUVqRCxNQUFhLGtCQUFtQixTQUFRLHlCQUEyQztJQUNqRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBa0Q7UUFDbEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3hEO1FB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XG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIFN1aVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIGJ1aWxkZXIsXG4gIElucHV0cyxcbiAgTW92ZUNhbGxUcmFuc2FjdGlvbixcbiAgU3BsaXRDb2luc1RyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkJsb2NrSW5wdXQsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHsgQ2FsbEFyZywgbm9ybWFsaXplU3VpQWRkcmVzcyB9IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcbmltcG9ydCB7IEJDUyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCB7IFNVSV9BRERSRVNTX0xFTkdUSCB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdUcmFuc2FjdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgc3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1aVRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0U3VpVHJhbnNhY3Rpb24odHg6IFN1aVRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgdGhpcy5fc2lnbmF0dXJlID0geyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9O1xuICAgIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBnZXQgc3VpU2lnbmF0dXJlKCk6IFNpZ25hdHVyZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHR4ID0gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLl9pZCxcbiAgICAgIHNlbmRlcjogdHguc2VuZGVyLFxuICAgICAga2luZDogeyBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbjogdHgudHggfSxcbiAgICAgIGdhc0RhdGE6IHR4Lmdhc0RhdGEsXG4gICAgICBleHBpcmF0aW9uOiB7IE5vbmU6IG51bGwgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFtcbiAgICAgICdpZCcsXG4gICAgICAnb3V0cHV0cycsXG4gICAgICAnb3V0cHV0QW1vdW50JyxcbiAgICAgICdjaGFuZ2VPdXRwdXRzJyxcbiAgICAgICdjaGFuZ2VBbW91bnQnLFxuICAgICAgJ2ZlZScsXG4gICAgICAndHlwZScsXG4gICAgICAnbW9kdWxlJyxcbiAgICAgICdmdW5jdGlvbicsXG4gICAgICAndmFsaWRhdG9yQWRkcmVzcycsXG4gICAgXTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG5cbiAgICBjb25zdCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIG91dHB1dEFtb3VudDogJzAnLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6IHRoaXMuc3VpVHJhbnNhY3Rpb24uZ2FzRGF0YS5idWRnZXQudG9TdHJpbmcoKSB9LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgIH07XG5cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FkZDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpbkFkZERlbGVnYXRpb25UcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICB0cmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN1aVRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RzID0gdXRpbHMuZ2V0U3Rha2VSZXF1ZXN0cyh0aGlzLnN1aVRyYW5zYWN0aW9uLnR4KTtcbiAgICB0aGlzLl9vdXRwdXRzID0gcmVxdWVzdHMubWFwKChyZXF1ZXN0KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhZGRyZXNzOiByZXF1ZXN0LnZhbGlkYXRvckFkZHJlc3MsXG4gICAgICAgIHZhbHVlOiByZXF1ZXN0LmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLnN1aVRyYW5zYWN0aW9uLnNlbmRlcixcbiAgICAgICAgdmFsdWU6IHRoaXMuX291dHB1dHMucmVkdWNlKChhY2MsIG91dHB1dCkgPT4gYWNjICsgTnVtYmVyKG91dHB1dC52YWx1ZSksIDApLnRvU3RyaW5nKCksXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplU3VpVHJhbnNhY3Rpb24oXG4gICAgICAgIHJhd1RyYW5zYWN0aW9uXG4gICAgICApIGFzIFN1aVRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj47XG4gICAgICB0aGlzLl90eXBlID0gdXRpbHMuZ2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMuX3N1aVRyYW5zYWN0aW9uLnR5cGUpO1xuICAgICAgdGhpcy5faWQgPSB0aGlzLl9zdWlUcmFuc2FjdGlvbi5pZDtcbiAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNlcmlhbGl6ZSgpIHRvIGdldCB0aGUgY29ycmVjdCB0eERhdGEgd2l0aCB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1R4RGF0YX1cbiAgICovXG4gIGdldFR4RGF0YSgpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignZW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgaW5wdXRzOiBDYWxsQXJnW10gfCBUcmFuc2FjdGlvbkJsb2NrSW5wdXRbXSA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uLnR4LmlucHV0cy5tYXAoKGlucHV0LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KCdPYmplY3QnKSkge1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoJ1B1cmUnKSkge1xuICAgICAgICBpZiAoaW5wdXQuUHVyZS5sZW5ndGggPT09IFNVSV9BRERSRVNTX0xFTkdUSCkge1xuICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBub3JtYWxpemVTdWlBZGRyZXNzKFxuICAgICAgICAgICAgYnVpbGRlci5kZShCQ1MuQUREUkVTUywgQnVmZmVyLmZyb20oaW5wdXQuUHVyZSkudG9TdHJpbmcoJ2Jhc2U2NCcpLCAnYmFzZTY0JylcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBJbnB1dHMuUHVyZShhZGRyZXNzLCBCQ1MuQUREUkVTUyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYW1vdW50ID0gYnVpbGRlci5kZShCQ1MuVTY0LCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKTtcbiAgICAgICAgICByZXR1cm4gSW5wdXRzLlB1cmUoYW1vdW50LCBCQ1MuVTY0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlucHV0LmtpbmQgPT09ICdJbnB1dCcgJiYgKGlucHV0LnZhbHVlLmhhc093blByb3BlcnR5KCdPYmplY3QnKSB8fCBpbnB1dC52YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnUHVyZScpKSkge1xuICAgICAgICByZXR1cm4gaW5wdXQudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHdoYXQncyBsZWZ0IGlzIHRoZSBwdXJlIG51bWJlciBvciBhZGRyZXNzIHN0cmluZ1xuICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGlucHV0LnZhbHVlLCBpbnB1dC50eXBlID09PSAncHVyZScgPyBCQ1MuVTY0IDogQkNTLkFERFJFU1MpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvZ3JhbW1hYmxlVHggPSB7XG4gICAgICBpbnB1dHM6IGlucHV0cyxcbiAgICAgIHRyYW5zYWN0aW9uczogdGhpcy5fc3VpVHJhbnNhY3Rpb24udHgudHJhbnNhY3Rpb25zLFxuICAgIH0gYXMgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcjogdGhpcy5fc3VpVHJhbnNhY3Rpb24uc2VuZGVyLFxuICAgICAgZXhwaXJhdGlvbjogeyBOb25lOiBudWxsIH0sXG4gICAgICBnYXNEYXRhOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLFxuICAgICAga2luZDoge1xuICAgICAgICBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbjogcHJvZ3JhbW1hYmxlVHgsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIGZvciBhIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUeERhdGF9IGpzb24gVGhlIHRyYW5zYWN0aW9uIGRhdGEgaW4ganNvbiBmb3JtYXRcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufSBleHBsYW5hdGlvblJlc3VsdCBUaGUgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24gdG8gYmUgY29tcGxldGVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufVxuICAgKi9cbiAgZXhwbGFpbkFkZERlbGVnYXRpb25UcmFuc2FjdGlvbihqc29uOiBUeERhdGEsIGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgYW1vdW50SW5wdXRJZHggPSAoXG4gICAgICAodGhpcy5zdWlUcmFuc2FjdGlvbi50eC50cmFuc2FjdGlvbnNbMF0gYXMgU3BsaXRDb2luc1RyYW5zYWN0aW9uKS5hbW91bnRzWzBdIGFzIFRyYW5zYWN0aW9uQmxvY2tJbnB1dFxuICAgICkuaW5kZXg7XG4gICAgY29uc3QgYW1vdW50ID0gKHRoaXMuc3VpVHJhbnNhY3Rpb24udHguaW5wdXRzW2Ftb3VudElucHV0SWR4XSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXQpLnZhbHVlO1xuXG4gICAgY29uc3QgdmFsaWRhdG9yQWRkcmVzc0lucHV0SWR4ID0gKFxuICAgICAgKHRoaXMuc3VpVHJhbnNhY3Rpb24udHgudHJhbnNhY3Rpb25zWzFdIGFzIE1vdmVDYWxsVHJhbnNhY3Rpb24pLmFyZ3VtZW50c1syXSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICApLmluZGV4O1xuICAgIGNvbnN0IHZhbGlkYXRvckFkZHJlc3MgPSB1dGlscy5nZXRBZGRyZXNzKFxuICAgICAgdGhpcy5zdWlUcmFuc2FjdGlvbi50eC5pbnB1dHNbdmFsaWRhdG9yQWRkcmVzc0lucHV0SWR4XSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICApO1xuXG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBOdW1iZXIoYW1vdW50KS50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IGFtb3VudDtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxufVxuIl19
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1RyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBUXlCO0FBR3pCLG9EQUE0QjtBQUM1QixtQ0FBZ0M7QUFDaEMsK0NBQTRDO0FBQzVDLGlEQU02QjtBQUM3Qiw2Q0FBaUU7QUFDakUscUNBQWtDO0FBQ2xDLDJDQUFpRDtBQUVqRCxNQUFhLGtCQUFtQixTQUFRLHlCQUEyQztJQUNqRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBa0Q7UUFDbEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3hEO1FB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ZUtleSxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFNpZ25hdHVyZSxcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgYnVpbGRlcixcbiAgSW5wdXRzLFxuICBNb3ZlQ2FsbFRyYW5zYWN0aW9uLFxuICBTcGxpdENvaW5zVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uQmxvY2tJbnB1dCxcbn0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQgeyBDYWxsQXJnLCBub3JtYWxpemVTdWlBZGRyZXNzIH0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMnO1xuaW1wb3J0IHsgQkNTIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuaW1wb3J0IHsgU1VJX0FERFJFU1NfTEVOR1RIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgU3Rha2luZ1RyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBzdWlUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRTdWlUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH07XG4gICAgdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIGdldCBzdWlTaWduYXR1cmUoKTogU2lnbmF0dXJlIHtcbiAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHggPSB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgc2VuZGVyOiB0eC5zZW5kZXIsXG4gICAgICBraW5kOiB7IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiB0eC50eCB9LFxuICAgICAgZ2FzRGF0YTogdHguZ2FzRGF0YSxcbiAgICAgIGV4cGlyYXRpb246IHsgTm9uZTogbnVsbCB9LFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gW1xuICAgICAgJ2lkJyxcbiAgICAgICdvdXRwdXRzJyxcbiAgICAgICdvdXRwdXRBbW91bnQnLFxuICAgICAgJ2NoYW5nZU91dHB1dHMnLFxuICAgICAgJ2NoYW5nZUFtb3VudCcsXG4gICAgICAnZmVlJyxcbiAgICAgICd0eXBlJyxcbiAgICAgICdtb2R1bGUnLFxuICAgICAgJ2Z1bmN0aW9uJyxcbiAgICAgICd2YWxpZGF0b3JBZGRyZXNzJyxcbiAgICBdO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcblxuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogdGhpcy5zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLmJ1ZGdldC50b1N0cmluZygpIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWRkOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluQWRkRGVsZWdhdGlvblRyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldC5cbiAgICovXG4gIHRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVxdWVzdHMgPSB1dGlscy5nZXRTdGFrZVJlcXVlc3RzKHRoaXMuc3VpVHJhbnNhY3Rpb24udHgpO1xuICAgIHRoaXMuX291dHB1dHMgPSByZXF1ZXN0cy5tYXAoKHJlcXVlc3QpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3M6IHJlcXVlc3QudmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IHJlcXVlc3QuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLl9pbnB1dHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRoaXMuc3VpVHJhbnNhY3Rpb24uc2VuZGVyLFxuICAgICAgICB2YWx1ZTogdGhpcy5fb3V0cHV0cy5yZWR1Y2UoKGFjYywgb3V0cHV0KSA9PiBhY2MgKyBOdW1iZXIob3V0cHV0LnZhbHVlKSwgMCkudG9TdHJpbmcoKSxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uZGVzZXJpYWxpemVTdWlUcmFuc2FjdGlvbihcbiAgICAgICAgcmF3VHJhbnNhY3Rpb25cbiAgICAgICkgYXMgU3VpVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPjtcbiAgICAgIHRoaXMuX3R5cGUgPSB1dGlscy5nZXRUcmFuc2FjdGlvblR5cGUodGhpcy5fc3VpVHJhbnNhY3Rpb24udHlwZSk7XG4gICAgICB0aGlzLl9pZCA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmlkO1xuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiBmb3Igc2VyaWFsaXplKCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHR4RGF0YSB3aXRoIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHJldHVybiB7VHhEYXRhfVxuICAgKi9cbiAgZ2V0VHhEYXRhKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dHM6IENhbGxBcmdbXSB8IFRyYW5zYWN0aW9uQmxvY2tJbnB1dFtdID0gdGhpcy5fc3VpVHJhbnNhY3Rpb24udHguaW5wdXRzLm1hcCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoJ09iamVjdCcpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dC5oYXNPd25Qcm9wZXJ0eSgnUHVyZScpKSB7XG4gICAgICAgIGlmIChpbnB1dC5QdXJlLmxlbmd0aCA9PT0gU1VJX0FERFJFU1NfTEVOR1RIKSB7XG4gICAgICAgICAgY29uc3QgYWRkcmVzcyA9IG5vcm1hbGl6ZVN1aUFkZHJlc3MoXG4gICAgICAgICAgICBidWlsZGVyLmRlKEJDUy5BRERSRVNTLCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGFkZHJlc3MsIEJDUy5BRERSRVNTKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhbW91bnQgPSBidWlsZGVyLmRlKEJDUy5VNjQsIEJ1ZmZlci5mcm9tKGlucHV0LlB1cmUpLnRvU3RyaW5nKCdiYXNlNjQnKSwgJ2Jhc2U2NCcpO1xuICAgICAgICAgIHJldHVybiBJbnB1dHMuUHVyZShhbW91bnQsIEJDUy5VNjQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQua2luZCA9PT0gJ0lucHV0JyAmJiAoaW5wdXQudmFsdWUuaGFzT3duUHJvcGVydHkoJ09iamVjdCcpIHx8IGlucHV0LnZhbHVlLmhhc093blByb3BlcnR5KCdQdXJlJykpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gd2hhdCdzIGxlZnQgaXMgdGhlIHB1cmUgbnVtYmVyIG9yIGFkZHJlc3Mgc3RyaW5nXG4gICAgICByZXR1cm4gSW5wdXRzLlB1cmUoaW5wdXQudmFsdWUsIGlucHV0LnR5cGUgPT09ICdwdXJlJyA/IEJDUy5VNjQgOiBCQ1MuQUREUkVTUyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeCA9IHtcbiAgICAgIGlucHV0czogaW5wdXRzLFxuICAgICAgdHJhbnNhY3Rpb25zOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi50eC50cmFuc2FjdGlvbnMsXG4gICAgfSBhcyBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb247XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VuZGVyOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICBleHBpcmF0aW9uOiB7IE5vbmU6IG51bGwgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmdhc0RhdGEsXG4gICAgICBraW5kOiB7XG4gICAgICAgIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiBwcm9ncmFtbWFibGVUeCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29tcGxldGUgZXhwbGFuYXRpb24gZm9yIGEgc3Rha2luZyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1R4RGF0YX0ganNvbiBUaGUgdHJhbnNhY3Rpb24gZGF0YSBpbiBqc29uIGZvcm1hdFxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259IGV4cGxhbmF0aW9uUmVzdWx0IFRoZSB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbiB0byBiZSBjb21wbGV0ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259XG4gICAqL1xuICBleHBsYWluQWRkRGVsZWdhdGlvblRyYW5zYWN0aW9uKGpzb246IFR4RGF0YSwgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCBhbW91bnRJbnB1dElkeCA9IChcbiAgICAgICh0aGlzLnN1aVRyYW5zYWN0aW9uLnR4LnRyYW5zYWN0aW9uc1swXSBhcyBTcGxpdENvaW5zVHJhbnNhY3Rpb24pLmFtb3VudHNbMF0gYXMgVHJhbnNhY3Rpb25CbG9ja0lucHV0XG4gICAgKS5pbmRleDtcbiAgICBjb25zdCBhbW91bnQgPSAodGhpcy5zdWlUcmFuc2FjdGlvbi50eC5pbnB1dHNbYW1vdW50SW5wdXRJZHhdIGFzIFRyYW5zYWN0aW9uQmxvY2tJbnB1dCkudmFsdWU7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JBZGRyZXNzSW5wdXRJZHggPSAoXG4gICAgICAodGhpcy5zdWlUcmFuc2FjdGlvbi50eC50cmFuc2FjdGlvbnNbMV0gYXMgTW92ZUNhbGxUcmFuc2FjdGlvbikuYXJndW1lbnRzWzJdIGFzIFRyYW5zYWN0aW9uQmxvY2tJbnB1dFxuICAgICkuaW5kZXg7XG4gICAgY29uc3QgdmFsaWRhdG9yQWRkcmVzcyA9IHV0aWxzLmdldEFkZHJlc3MoXG4gICAgICB0aGlzLnN1aVRyYW5zYWN0aW9uLnR4LmlucHV0c1t2YWxpZGF0b3JBZGRyZXNzSW5wdXRJZHhdIGFzIFRyYW5zYWN0aW9uQmxvY2tJbnB1dFxuICAgICk7XG5cbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB2YWxpZGF0b3JBZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IE51bWJlcihhbW91bnQpLnRvU3RyaW5nKCksXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gYW1vdW50O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgb3V0cHV0cyxcbiAgICB9O1xuICB9XG59XG4iXX0=