@bitgo-beta/sdk-coin-sol 2.4.3-beta.133 → 2.4.3-beta.1331

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 (170) hide show
  1. package/dist/src/bigint-buffer-guard.d.ts +1 -0
  2. package/dist/src/bigint-buffer-guard.d.ts.map +1 -0
  3. package/dist/src/bigint-buffer-guard.js +29 -0
  4. package/dist/src/config/token2022StaticConfig.d.ts +3 -0
  5. package/dist/src/config/token2022StaticConfig.d.ts.map +1 -0
  6. package/dist/src/config/token2022StaticConfig.js +50 -0
  7. package/dist/src/index.d.ts +1 -0
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +7 -2
  10. package/dist/src/lib/ataInitializationBuilder.d.ts.map +1 -1
  11. package/dist/src/lib/ataInitializationBuilder.js +60 -22
  12. package/dist/src/lib/closeAtaBuilder.d.ts +19 -0
  13. package/dist/src/lib/closeAtaBuilder.d.ts.map +1 -0
  14. package/dist/src/lib/closeAtaBuilder.js +69 -0
  15. package/dist/src/lib/constants.d.ts +63 -8
  16. package/dist/src/lib/constants.d.ts.map +1 -1
  17. package/dist/src/lib/constants.js +73 -10
  18. package/dist/src/lib/customInstructionBuilder.d.ts +72 -0
  19. package/dist/src/lib/customInstructionBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/customInstructionBuilder.js +289 -0
  21. package/dist/src/lib/iface.d.ts +106 -5
  22. package/dist/src/lib/iface.d.ts.map +1 -1
  23. package/dist/src/lib/iface.js +1 -1
  24. package/dist/src/lib/index.d.ts +13 -10
  25. package/dist/src/lib/index.d.ts.map +1 -1
  26. package/dist/src/lib/index.js +48 -28
  27. package/dist/src/lib/instructionParamsFactory.d.ts +1 -1
  28. package/dist/src/lib/instructionParamsFactory.d.ts.map +1 -1
  29. package/dist/src/lib/instructionParamsFactory.js +521 -85
  30. package/dist/src/lib/jitoStakePoolOperations.d.ts +113 -0
  31. package/dist/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
  32. package/dist/src/lib/jitoStakePoolOperations.js +200 -0
  33. package/dist/src/lib/keyPair.js +5 -5
  34. package/dist/src/lib/messages/index.d.ts +2 -0
  35. package/dist/src/lib/messages/index.d.ts.map +1 -0
  36. package/dist/src/lib/messages/index.js +18 -0
  37. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  38. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  39. package/dist/src/lib/messages/messageBuilderFactory.js +19 -0
  40. package/dist/src/lib/solInstructionFactory.d.ts.map +1 -1
  41. package/dist/src/lib/solInstructionFactory.js +363 -95
  42. package/dist/src/lib/stakingActivateBuilder.d.ts +18 -0
  43. package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -1
  44. package/dist/src/lib/stakingActivateBuilder.js +34 -8
  45. package/dist/src/lib/stakingAuthorizeBuilder.js +7 -7
  46. package/dist/src/lib/stakingDeactivateBuilder.d.ts +27 -1
  47. package/dist/src/lib/stakingDeactivateBuilder.d.ts.map +1 -1
  48. package/dist/src/lib/stakingDeactivateBuilder.js +82 -15
  49. package/dist/src/lib/stakingDelegateBuilder.js +9 -9
  50. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +5 -5
  51. package/dist/src/lib/stakingWithdrawBuilder.js +6 -6
  52. package/dist/src/lib/token2022Config.d.ts +44 -0
  53. package/dist/src/lib/token2022Config.d.ts.map +1 -0
  54. package/dist/src/lib/token2022Config.js +27 -0
  55. package/dist/src/lib/tokenTransferBuilder.d.ts +4 -1
  56. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -1
  57. package/dist/src/lib/tokenTransferBuilder.js +87 -23
  58. package/dist/src/lib/transaction.d.ts +42 -6
  59. package/dist/src/lib/transaction.d.ts.map +1 -1
  60. package/dist/src/lib/transaction.js +185 -67
  61. package/dist/src/lib/transactionBuilder.d.ts +20 -3
  62. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  63. package/dist/src/lib/transactionBuilder.js +107 -20
  64. package/dist/src/lib/transactionBuilderFactory.d.ts +19 -9
  65. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  66. package/dist/src/lib/transactionBuilderFactory.js +29 -10
  67. package/dist/src/lib/transferBuilder.js +4 -4
  68. package/dist/src/lib/transferBuilderV2.d.ts +14 -1
  69. package/dist/src/lib/transferBuilderV2.d.ts.map +1 -1
  70. package/dist/src/lib/transferBuilderV2.js +114 -11
  71. package/dist/src/lib/utils.d.ts +37 -6
  72. package/dist/src/lib/utils.d.ts.map +1 -1
  73. package/dist/src/lib/utils.js +194 -58
  74. package/dist/src/lib/walletInitializationBuilder.js +6 -6
  75. package/dist/src/sol.d.ts +81 -24
  76. package/dist/src/sol.d.ts.map +1 -1
  77. package/dist/src/sol.js +655 -91
  78. package/dist/src/solToken.d.ts +2 -1
  79. package/dist/src/solToken.d.ts.map +1 -1
  80. package/dist/src/solToken.js +6 -3
  81. package/dist/src/tsol.js +1 -1
  82. package/dist/test/fixtures/sol.d.ts +1152 -0
  83. package/dist/test/fixtures/sol.d.ts.map +1 -0
  84. package/dist/test/fixtures/sol.js +1433 -0
  85. package/dist/test/resources/sol.d.ts +238 -0
  86. package/dist/test/resources/sol.d.ts.map +1 -0
  87. package/dist/test/resources/sol.js +320 -0
  88. package/dist/test/unit/fixtures/solBackupKey.d.ts +5 -0
  89. package/dist/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
  90. package/dist/test/unit/fixtures/solBackupKey.js +8 -0
  91. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  92. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  93. package/dist/test/unit/getBuilderFactory.js +10 -0
  94. package/dist/test/unit/instructionParamsFactory.d.ts +2 -0
  95. package/dist/test/unit/instructionParamsFactory.d.ts.map +1 -0
  96. package/dist/test/unit/instructionParamsFactory.js +412 -0
  97. package/dist/test/unit/instructionParamsFactory.staking.d.ts +2 -0
  98. package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
  99. package/dist/test/unit/instructionParamsFactory.staking.js +1059 -0
  100. package/dist/test/unit/keyPair.d.ts +2 -0
  101. package/dist/test/unit/keyPair.d.ts.map +1 -0
  102. package/dist/test/unit/keyPair.js +177 -0
  103. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  104. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  105. package/dist/test/unit/messages/messageBuilderFactory.js +118 -0
  106. package/dist/test/unit/messages/simpleMessageBuilder.d.ts +2 -0
  107. package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
  108. package/dist/test/unit/messages/simpleMessageBuilder.js +194 -0
  109. package/dist/test/unit/sol.d.ts +2 -0
  110. package/dist/test/unit/sol.d.ts.map +1 -0
  111. package/dist/test/unit/sol.js +3108 -0
  112. package/dist/test/unit/solInstructionFactory.d.ts +2 -0
  113. package/dist/test/unit/solInstructionFactory.d.ts.map +1 -0
  114. package/dist/test/unit/solInstructionFactory.js +454 -0
  115. package/dist/test/unit/solToken.d.ts +2 -0
  116. package/dist/test/unit/solToken.d.ts.map +1 -0
  117. package/dist/test/unit/solToken.js +31 -0
  118. package/dist/test/unit/transaction.d.ts +2 -0
  119. package/dist/test/unit/transaction.d.ts.map +1 -0
  120. package/dist/test/unit/transaction.js +983 -0
  121. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +2 -0
  122. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
  123. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
  124. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts +2 -0
  125. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
  126. package/dist/test/unit/transactionBuilder/ataInitBuilder.js +471 -0
  127. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts +2 -0
  128. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
  129. package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
  130. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts +2 -0
  131. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
  132. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
  133. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +2 -0
  134. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
  135. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
  136. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +2 -0
  137. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
  138. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
  139. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts +2 -0
  140. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
  141. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
  142. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +2 -0
  143. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  144. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
  145. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  146. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  147. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +787 -0
  148. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  149. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  150. package/dist/test/unit/transactionBuilder/transactionBuilder.js +495 -0
  151. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  152. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  153. package/dist/test/unit/transactionBuilder/transferBuilder.js +286 -0
  154. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts +2 -0
  155. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
  156. package/dist/test/unit/transactionBuilder/transferBuilderV2.js +862 -0
  157. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts +2 -0
  158. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
  159. package/dist/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
  160. package/dist/test/unit/utils.d.ts +2 -0
  161. package/dist/test/unit/utils.d.ts.map +1 -0
  162. package/dist/test/unit/utils.js +459 -0
  163. package/dist/test/unit/versionedTransaction.d.ts +2 -0
  164. package/dist/test/unit/versionedTransaction.d.ts.map +1 -0
  165. package/dist/test/unit/versionedTransaction.js +207 -0
  166. package/dist/tsconfig.tsbuildinfo +1 -0
  167. package/package.json +16 -11
  168. package/.eslintignore +0 -5
  169. package/.mocharc.yml +0 -8
  170. package/CHANGELOG.md +0 -353
@@ -1,11 +1,15 @@
1
+ import { SolStakingTypeEnum } from '@bitgo/public-types';
1
2
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
3
  import { TransactionType } from '@bitgo-beta/sdk-core';
3
4
  import { Transaction } from './transaction';
4
5
  import { TransactionBuilder } from './transactionBuilder';
6
+ import { StakingActivateExtraParams } from './iface';
5
7
  export declare class StakingActivateBuilder extends TransactionBuilder {
6
8
  protected _amount: string;
7
9
  protected _stakingAddress: string;
8
10
  protected _validator: string;
11
+ protected _stakingType: SolStakingTypeEnum;
12
+ protected _extraParams?: StakingActivateExtraParams;
9
13
  constructor(_coinConfig: Readonly<CoinConfig>);
10
14
  protected get transactionType(): TransactionType;
11
15
  /** @inheritdoc */
@@ -35,6 +39,20 @@ export declare class StakingActivateBuilder extends TransactionBuilder {
35
39
  *
36
40
  */
37
41
  validator(validator: string): this;
42
+ /**
43
+ * Set staking type.
44
+ *
45
+ * @param {SolStakingType} stakingType a staking type.
46
+ * @returns {StakingActivateBuilder} This staking builder.
47
+ */
48
+ stakingType(stakingType: SolStakingTypeEnum): this;
49
+ /**
50
+ * Set parameters specific to a staking type.
51
+ *
52
+ * @param {StakingActivateExtraParams} extraParams parameters specific to a staking type.
53
+ * @returns {StakingActivateBuilder} This staking builder.
54
+ */
55
+ extraParams(extraParams?: StakingActivateExtraParams): this;
38
56
  /** @inheritdoc */
39
57
  protected buildImplementation(): Promise<Transaction>;
40
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stakingActivateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingActivateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAO1D,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAalC;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAuB5D"}
1
+ {"version":3,"file":"stakingActivateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingActivateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAmB,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAGtE,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAA6B;IACvE,SAAS,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAAC;gBAExC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAelC;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMlC;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAKlD;;;;;OAKG;IACH,WAAW,CAAC,WAAW,CAAC,EAAE,0BAA0B,GAAG,IAAI;IAK3D,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAyB5D"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.StakingActivateBuilder = void 0;
7
+ const public_types_1 = require("@bitgo/public-types");
7
8
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
9
  const transactionBuilder_1 = require("./transactionBuilder");
9
10
  const constants_1 = require("./constants");
@@ -12,6 +13,7 @@ const utils_1 = require("./utils");
12
13
  class StakingActivateBuilder extends transactionBuilder_1.TransactionBuilder {
13
14
  constructor(_coinConfig) {
14
15
  super(_coinConfig);
16
+ this._stakingType = public_types_1.SolStakingTypeEnum.NATIVE;
15
17
  }
16
18
  get transactionType() {
17
19
  return sdk_core_1.TransactionType.StakingActivate;
@@ -26,6 +28,8 @@ class StakingActivateBuilder extends transactionBuilder_1.TransactionBuilder {
26
28
  this.stakingAddress(activateInstruction.params.stakingAddress);
27
29
  this.amount(activateInstruction.params.amount);
28
30
  this.validator(activateInstruction.params.validator);
31
+ this.stakingType(activateInstruction.params.stakingType);
32
+ this.extraParams(activateInstruction.params.extraParams);
29
33
  }
30
34
  }
31
35
  }
@@ -37,7 +41,7 @@ class StakingActivateBuilder extends transactionBuilder_1.TransactionBuilder {
37
41
  *
38
42
  */
39
43
  amount(amount) {
40
- if (!utils_1.isValidStakingAmount(amount)) {
44
+ if (!(0, utils_1.isValidStakingAmount)(amount)) {
41
45
  throw new sdk_core_1.BuildTransactionError('Value cannot be zero or less');
42
46
  }
43
47
  this._amount = amount;
@@ -52,7 +56,7 @@ class StakingActivateBuilder extends transactionBuilder_1.TransactionBuilder {
52
56
  * @see https://docs.solana.com/staking/stake-accounts#account-address
53
57
  */
54
58
  stakingAddress(stakingAddress) {
55
- utils_1.validateAddress(stakingAddress, 'stakingAddress');
59
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
56
60
  this._stakingAddress = stakingAddress;
57
61
  return this;
58
62
  }
@@ -64,16 +68,36 @@ class StakingActivateBuilder extends transactionBuilder_1.TransactionBuilder {
64
68
  *
65
69
  */
66
70
  validator(validator) {
67
- utils_1.validateAddress(validator, 'validator');
71
+ (0, utils_1.validateAddress)(validator, 'validator');
68
72
  this._validator = validator;
69
73
  return this;
70
74
  }
75
+ /**
76
+ * Set staking type.
77
+ *
78
+ * @param {SolStakingType} stakingType a staking type.
79
+ * @returns {StakingActivateBuilder} This staking builder.
80
+ */
81
+ stakingType(stakingType) {
82
+ this._stakingType = stakingType;
83
+ return this;
84
+ }
85
+ /**
86
+ * Set parameters specific to a staking type.
87
+ *
88
+ * @param {StakingActivateExtraParams} extraParams parameters specific to a staking type.
89
+ * @returns {StakingActivateBuilder} This staking builder.
90
+ */
91
+ extraParams(extraParams) {
92
+ this._extraParams = extraParams;
93
+ return this;
94
+ }
71
95
  /** @inheritdoc */
72
96
  async buildImplementation() {
73
- assert_1.default(this._sender, 'Sender must be set before building the transaction');
74
- assert_1.default(this._stakingAddress, 'Staking Address must be set before building the transaction');
75
- assert_1.default(this._validator, 'Validator must be set before building the transaction');
76
- assert_1.default(this._amount, 'Amount must be set before building the transaction');
97
+ (0, assert_1.default)(this._sender, 'Sender must be set before building the transaction');
98
+ (0, assert_1.default)(this._stakingAddress, 'Staking Address must be set before building the transaction');
99
+ (0, assert_1.default)(this._validator, 'Validator must be set before building the transaction');
100
+ (0, assert_1.default)(this._amount, 'Amount must be set before building the transaction');
77
101
  if (this._sender === this._stakingAddress) {
78
102
  throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
79
103
  }
@@ -84,6 +108,8 @@ class StakingActivateBuilder extends transactionBuilder_1.TransactionBuilder {
84
108
  stakingAddress: this._stakingAddress,
85
109
  amount: this._amount,
86
110
  validator: this._validator,
111
+ stakingType: this._stakingType,
112
+ extraParams: this._extraParams,
87
113
  },
88
114
  };
89
115
  this._instructionsData = [stakingAccountData];
@@ -91,4 +117,4 @@ class StakingActivateBuilder extends transactionBuilder_1.TransactionBuilder {
91
117
  }
92
118
  }
93
119
  exports.StakingActivateBuilder = StakingActivateBuilder;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0FjdGl2YXRlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc3Rha2luZ0FjdGl2YXRlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxtREFBOEU7QUFFOUUsNkRBQTBEO0FBQzFELDJDQUFzRDtBQUV0RCxvREFBNEI7QUFFNUIsbUNBQWdFO0FBRWhFLE1BQWEsc0JBQXVCLFNBQVEsdUNBQWtCO0lBSzVELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGVBQWUsRUFBRTtnQkFDaEUsTUFBTSxtQkFBbUIsR0FBb0IsV0FBVyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNqRTtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxjQUFjLENBQUMsY0FBc0I7UUFDbkMsdUJBQWUsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsU0FBaUI7UUFDekIsdUJBQWUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztRQUMzRSxnQkFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsNkRBQTZELENBQUMsQ0FBQztRQUM1RixnQkFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsdURBQXVELENBQUMsQ0FBQztRQUNqRixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztRQUUzRSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QyxNQUFNLElBQUksZ0NBQXFCLENBQUMsMERBQTBELENBQUMsQ0FBQztTQUM3RjtRQUVELE1BQU0sa0JBQWtCLEdBQW9CO1lBQzFDLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxlQUFlO1lBQzdDLE1BQU0sRUFBRTtnQkFDTixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDcEMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDM0I7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU5QyxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBN0ZELHdEQTZGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBTdGFraW5nQWN0aXZhdGUgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGlzVmFsaWRTdGFraW5nQW1vdW50LCB2YWxpZGF0ZUFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2Ftb3VudDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdmFsaWRhdG9yOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0FjdGl2YXRlKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2YXRlSW5zdHJ1Y3Rpb246IFN0YWtpbmdBY3RpdmF0ZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLnNlbmRlcihhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5mcm9tQWRkcmVzcyk7XG4gICAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3MoYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuICAgICAgICB0aGlzLmFtb3VudChhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQpO1xuICAgICAgICB0aGlzLnZhbGlkYXRvcihhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy52YWxpZGF0b3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IHRvIHN0YWtlIGV4cHJlc3NlZCBpbiBMYW1wb3J0cywgMSBTT0wgPSAxXzAwMF8wMDBfMDAwIGxhbXBvcnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IGV4cHJlc3NlZCBpbiBMYW1wb3J0cy5cbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRTdGFraW5nQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSB6ZXJvIG9yIGxlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGFraW5nQWRkcmVzcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0FjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIHN0YWtpbmdBZGRyZXNzKHN0YWtpbmdBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3Moc3Rha2luZ0FkZHJlc3MsICdzdGFraW5nQWRkcmVzcycpO1xuICAgIHRoaXMuX3N0YWtpbmdBZGRyZXNzID0gc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHZhbGlkYXRvciBhZGRyZXNzIHRvIGRlbGVnYXRlIGZ1bmRzIHRvLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsaWRhdG9yIFZhbGlkYXRvciBhZGRyZXNzIHRvIGRlbGVnYXRlIGZ1bmRzIHRvLlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0FjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqL1xuICB2YWxpZGF0b3IodmFsaWRhdG9yOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3ModmFsaWRhdG9yLCAndmFsaWRhdG9yJyk7XG4gICAgdGhpcy5fdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCAnU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBhc3NlcnQodGhpcy5fc3Rha2luZ0FkZHJlc3MsICdTdGFraW5nIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl92YWxpZGF0b3IsICdWYWxpZGF0b3IgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9hbW91bnQsICdBbW91bnQgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuXG4gICAgaWYgKHRoaXMuX3NlbmRlciA9PT0gdGhpcy5fc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgU3Rha2luZyBhZGRyZXNzJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3Rha2luZ0FjY291bnREYXRhOiBTdGFraW5nQWN0aXZhdGUgPSB7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nQWN0aXZhdGUsXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgc3Rha2luZ0FkZHJlc3M6IHRoaXMuX3N0YWtpbmdBZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgdmFsaWRhdG9yOiB0aGlzLl92YWxpZGF0b3IsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtzdGFraW5nQWNjb3VudERhdGFdO1xuXG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxufVxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0FjdGl2YXRlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc3Rha2luZ0FjdGl2YXRlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzREFBeUQ7QUFFekQsbURBQThFO0FBRTlFLDZEQUEwRDtBQUMxRCwyQ0FBc0Q7QUFFdEQsb0RBQTRCO0FBRTVCLG1DQUFnRTtBQUVoRSxNQUFhLHNCQUF1QixTQUFRLHVDQUFrQjtJQU81RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUpYLGlCQUFZLEdBQXVCLGlDQUFrQixDQUFDLE1BQU0sQ0FBQztJQUt2RSxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNqRSxNQUFNLG1CQUFtQixHQUFvQixXQUFXLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLElBQUEsNEJBQW9CLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxjQUFzQjtRQUNuQyxJQUFBLHVCQUFlLEVBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLFNBQWlCO1FBQ3pCLElBQUEsdUJBQWUsRUFBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsV0FBK0I7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsV0FBd0M7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxvREFBb0QsQ0FBQyxDQUFDO1FBQzNFLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsZUFBZSxFQUFFLDZEQUE2RCxDQUFDLENBQUM7UUFDNUYsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsdURBQXVELENBQUMsQ0FBQztRQUNqRixJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxvREFBb0QsQ0FBQyxDQUFDO1FBRTNFLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUVELE1BQU0sa0JBQWtCLEdBQW9CO1lBQzFDLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxlQUFlO1lBQzdDLE1BQU0sRUFBRTtnQkFDTixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDcEMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzFCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQy9CO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFOUMsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQXpIRCx3REF5SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb2xTdGFraW5nVHlwZUVudW0gfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBTdGFraW5nQWN0aXZhdGUsIFN0YWtpbmdBY3RpdmF0ZUV4dHJhUGFyYW1zIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBpc1ZhbGlkU3Rha2luZ0Ftb3VudCwgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nQWN0aXZhdGVCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3ZhbGlkYXRvcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdUeXBlOiBTb2xTdGFraW5nVHlwZUVudW0gPSBTb2xTdGFraW5nVHlwZUVudW0uTkFUSVZFO1xuICBwcm90ZWN0ZWQgX2V4dHJhUGFyYW1zPzogU3Rha2luZ0FjdGl2YXRlRXh0cmFQYXJhbXM7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0FjdGl2YXRlKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2YXRlSW5zdHJ1Y3Rpb246IFN0YWtpbmdBY3RpdmF0ZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLnNlbmRlcihhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5mcm9tQWRkcmVzcyk7XG4gICAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3MoYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuICAgICAgICB0aGlzLmFtb3VudChhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQpO1xuICAgICAgICB0aGlzLnZhbGlkYXRvcihhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy52YWxpZGF0b3IpO1xuICAgICAgICB0aGlzLnN0YWtpbmdUeXBlKGFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnN0YWtpbmdUeXBlKTtcbiAgICAgICAgdGhpcy5leHRyYVBhcmFtcyhhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5leHRyYVBhcmFtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgdG8gc3Rha2UgZXhwcmVzc2VkIGluIExhbXBvcnRzLCAxIFNPTCA9IDFfMDAwXzAwMF8wMDAgbGFtcG9ydHMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgZXhwcmVzc2VkIGluIExhbXBvcnRzLlxuICAgKiBAcmV0dXJucyB7U3Rha2VCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZFN0YWtpbmdBbW91bnQoYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIHplcm8gb3IgbGVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nQWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3MgPSBzdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdmFsaWRhdG9yIGFkZHJlc3MgdG8gZGVsZWdhdGUgZnVuZHMgdG8uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxpZGF0b3IgVmFsaWRhdG9yIGFkZHJlc3MgdG8gZGVsZWdhdGUgZnVuZHMgdG8uXG4gICAqIEByZXR1cm5zIHtTdGFraW5nQWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICovXG4gIHZhbGlkYXRvcih2YWxpZGF0b3I6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyh2YWxpZGF0b3IsICd2YWxpZGF0b3InKTtcbiAgICB0aGlzLl92YWxpZGF0b3IgPSB2YWxpZGF0b3I7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHN0YWtpbmcgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtTb2xTdGFraW5nVHlwZX0gc3Rha2luZ1R5cGUgYSBzdGFraW5nIHR5cGUuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nQWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICovXG4gIHN0YWtpbmdUeXBlKHN0YWtpbmdUeXBlOiBTb2xTdGFraW5nVHlwZUVudW0pOiB0aGlzIHtcbiAgICB0aGlzLl9zdGFraW5nVHlwZSA9IHN0YWtpbmdUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIGEgc3Rha2luZyB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1N0YWtpbmdBY3RpdmF0ZUV4dHJhUGFyYW1zfSBleHRyYVBhcmFtcyBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIGEgc3Rha2luZyB0eXBlLlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0FjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICBleHRyYVBhcmFtcyhleHRyYVBhcmFtcz86IFN0YWtpbmdBY3RpdmF0ZUV4dHJhUGFyYW1zKTogdGhpcyB7XG4gICAgdGhpcy5fZXh0cmFQYXJhbXMgPSBleHRyYVBhcmFtcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgJ1NlbmRlciBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgYXNzZXJ0KHRoaXMuX3N0YWtpbmdBZGRyZXNzLCAnU3Rha2luZyBBZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBhc3NlcnQodGhpcy5fdmFsaWRhdG9yLCAnVmFsaWRhdG9yIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBhc3NlcnQodGhpcy5fYW1vdW50LCAnQW1vdW50IG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGlmICh0aGlzLl9zZW5kZXIgPT09IHRoaXMuX3N0YWtpbmdBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdTZW5kZXIgYWRkcmVzcyBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgdGhlIFN0YWtpbmcgYWRkcmVzcycpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWtpbmdBY2NvdW50RGF0YTogU3Rha2luZ0FjdGl2YXRlID0ge1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0FjdGl2YXRlLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGZyb21BZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiB0aGlzLl9hbW91bnQsXG4gICAgICAgIHZhbGlkYXRvcjogdGhpcy5fdmFsaWRhdG9yLFxuICAgICAgICBzdGFraW5nVHlwZTogdGhpcy5fc3Rha2luZ1R5cGUsXG4gICAgICAgIGV4dHJhUGFyYW1zOiB0aGlzLl9leHRyYVBhcmFtcyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW3N0YWtpbmdBY2NvdW50RGF0YV07XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
@@ -37,7 +37,7 @@ class StakingAuthorizeBuilder extends transactionBuilder_1.TransactionBuilder {
37
37
  * @see https://docs.solana.com/staking/stake-accounts#account-address
38
38
  */
39
39
  stakingAddress(stakingAddress) {
40
- utils_1.validateAddress(stakingAddress, 'stakingAddress');
40
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
41
41
  this._stakingAddress = stakingAddress;
42
42
  return this;
43
43
  }
@@ -50,7 +50,7 @@ class StakingAuthorizeBuilder extends transactionBuilder_1.TransactionBuilder {
50
50
  * @see https://docs.solana.com/staking/stake-accounts#account-address
51
51
  */
52
52
  newAuthorizedAddress(newAuthorizedAddress) {
53
- utils_1.validateAddress(newAuthorizedAddress, 'newAuthorizedAddress');
53
+ (0, utils_1.validateAddress)(newAuthorizedAddress, 'newAuthorizedAddress');
54
54
  this._newAuthorizedAddress = newAuthorizedAddress;
55
55
  return this;
56
56
  }
@@ -63,15 +63,15 @@ class StakingAuthorizeBuilder extends transactionBuilder_1.TransactionBuilder {
63
63
  * @see https://docs.solana.com/staking/stake-accounts#account-address
64
64
  */
65
65
  oldAuthorizedAddress(oldAuthorizedAddress) {
66
- utils_1.validateAddress(oldAuthorizedAddress, 'oldAuthorizedAddress');
66
+ (0, utils_1.validateAddress)(oldAuthorizedAddress, 'oldAuthorizedAddress');
67
67
  this._oldAuthorizedAddress = oldAuthorizedAddress;
68
68
  return this;
69
69
  }
70
70
  /** @inheritdoc */
71
71
  async buildImplementation() {
72
- assert_1.default(this._stakingAddress, 'Staking Address must be set before building the transaction');
73
- assert_1.default(this._newAuthorizedAddress, 'new authorized Address must be set before building the transaction');
74
- assert_1.default(this._oldAuthorizedAddress, 'old authorized Address must be set before building the transaction');
72
+ (0, assert_1.default)(this._stakingAddress, 'Staking Address must be set before building the transaction');
73
+ (0, assert_1.default)(this._newAuthorizedAddress, 'new authorized Address must be set before building the transaction');
74
+ (0, assert_1.default)(this._oldAuthorizedAddress, 'old authorized Address must be set before building the transaction');
75
75
  const stakingAccountData = {
76
76
  type: constants_1.InstructionBuilderTypes.StakingAuthorize,
77
77
  params: {
@@ -86,4 +86,4 @@ class StakingAuthorizeBuilder extends transactionBuilder_1.TransactionBuilder {
86
86
  }
87
87
  }
88
88
  exports.StakingAuthorizeBuilder = StakingAuthorizeBuilder;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdBdXRob3JpemVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG1EQUF1RDtBQUV2RCw2REFBMEQ7QUFDMUQsMkNBQXNEO0FBRXRELG9EQUE0QjtBQUU1QixtQ0FBMEM7QUFFMUMsTUFBYSx1QkFBd0IsU0FBUSx1Q0FBa0I7SUFLN0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsZ0JBQWdCLENBQUM7SUFDMUMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2hELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxtQ0FBdUIsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDakUsTUFBTSxvQkFBb0IsR0FBcUIsV0FBVyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDNUU7U0FDRjtJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsY0FBYyxDQUFDLGNBQXNCO1FBQ25DLHVCQUFlLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILG9CQUFvQixDQUFDLG9CQUE0QjtRQUMvQyx1QkFBZSxDQUFDLG9CQUFvQixFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsQ0FBQyxvQkFBNEI7UUFDL0MsdUJBQWUsQ0FBQyxvQkFBb0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLGdCQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSw2REFBNkQsQ0FBQyxDQUFDO1FBQzVGLGdCQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLG9FQUFvRSxDQUFDLENBQUM7UUFDekcsZ0JBQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsb0VBQW9FLENBQUMsQ0FBQztRQUV6RyxNQUFNLGtCQUFrQixHQUFxQjtZQUMzQyxJQUFJLEVBQUUsbUNBQXVCLENBQUMsZ0JBQWdCO1lBQzlDLE1BQU0sRUFBRTtnQkFDTixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ3BDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7Z0JBQzlDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7Z0JBQy9DLG1CQUFtQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7YUFDaEQ7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU5QyxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBdkZELDBEQXVGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgU3Rha2luZ0F1dGhvcml6ZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nQXV0aG9yaXplQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9uZXdBdXRob3JpemVkQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX29sZEF1dGhvcml6ZWRBZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBdXRob3JpemU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdBdXRob3JpemUpIHtcbiAgICAgICAgY29uc3QgQXV0aG9yaXplSW5zdHJ1Y3Rpb246IFN0YWtpbmdBdXRob3JpemUgPSBpbnN0cnVjdGlvbjtcbiAgICAgICAgdGhpcy5zdGFraW5nQWRkcmVzcyhBdXRob3JpemVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuICAgICAgICB0aGlzLm5ld0F1dGhvcml6ZWRBZGRyZXNzKEF1dGhvcml6ZUluc3RydWN0aW9uLnBhcmFtcy5uZXdBdXRob3JpemVBZGRyZXNzKTtcbiAgICAgICAgdGhpcy5vbGRBdXRob3JpemVkQWRkcmVzcyhBdXRob3JpemVJbnN0cnVjdGlvbi5wYXJhbXMub2xkQXV0aG9yaXplQWRkcmVzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGFraW5nQWRkcmVzcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2VCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3MgPSBzdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWRkcmVzcyBvZiB0aGUgbmV3IHN0YWtpbmcgYWNjb3VudCBhdXRob3JpemF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3Rha2luZ0FkZHJlc3MgcHVibGljIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIG5ld0F1dGhvcml6ZWRBZGRyZXNzKG5ld0F1dGhvcml6ZWRBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3MobmV3QXV0aG9yaXplZEFkZHJlc3MsICduZXdBdXRob3JpemVkQWRkcmVzcycpO1xuICAgIHRoaXMuX25ld0F1dGhvcml6ZWRBZGRyZXNzID0gbmV3QXV0aG9yaXplZEFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBzdGFraW5nIGFjY291bnQgYXV0aG9yaXphdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqIEByZXR1cm5zIHtTdGFrZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBvbGRBdXRob3JpemVkQWRkcmVzcyhvbGRBdXRob3JpemVkQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKG9sZEF1dGhvcml6ZWRBZGRyZXNzLCAnb2xkQXV0aG9yaXplZEFkZHJlc3MnKTtcbiAgICB0aGlzLl9vbGRBdXRob3JpemVkQWRkcmVzcyA9IG9sZEF1dGhvcml6ZWRBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc3Rha2luZ0FkZHJlc3MsICdTdGFraW5nIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9uZXdBdXRob3JpemVkQWRkcmVzcywgJ25ldyBhdXRob3JpemVkIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9vbGRBdXRob3JpemVkQWRkcmVzcywgJ29sZCBhdXRob3JpemVkIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuXG4gICAgY29uc3Qgc3Rha2luZ0FjY291bnREYXRhOiBTdGFraW5nQXV0aG9yaXplID0ge1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0F1dGhvcml6ZSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBzdGFraW5nQWRkcmVzczogdGhpcy5fc3Rha2luZ0FkZHJlc3MsXG4gICAgICAgIG5ld1dpdGhkcmF3QWRkcmVzczogdGhpcy5fbmV3QXV0aG9yaXplZEFkZHJlc3MsXG4gICAgICAgIG5ld0F1dGhvcml6ZUFkZHJlc3M6IHRoaXMuX25ld0F1dGhvcml6ZWRBZGRyZXNzLFxuICAgICAgICBvbGRBdXRob3JpemVBZGRyZXNzOiB0aGlzLl9vbGRBdXRob3JpemVkQWRkcmVzcyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW3N0YWtpbmdBY2NvdW50RGF0YV07XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdBdXRob3JpemVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG1EQUF1RDtBQUV2RCw2REFBMEQ7QUFDMUQsMkNBQXNEO0FBRXRELG9EQUE0QjtBQUU1QixtQ0FBMEM7QUFFMUMsTUFBYSx1QkFBd0IsU0FBUSx1Q0FBa0I7SUFLN0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsZ0JBQWdCLENBQUM7SUFDMUMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2xFLE1BQU0sb0JBQW9CLEdBQXFCLFdBQVcsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxjQUFjLENBQUMsY0FBc0I7UUFDbkMsSUFBQSx1QkFBZSxFQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsQ0FBQyxvQkFBNEI7UUFDL0MsSUFBQSx1QkFBZSxFQUFDLG9CQUFvQixFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsQ0FBQyxvQkFBNEI7UUFDL0MsSUFBQSx1QkFBZSxFQUFDLG9CQUFvQixFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsNkRBQTZELENBQUMsQ0FBQztRQUM1RixJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLG9FQUFvRSxDQUFDLENBQUM7UUFDekcsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxvRUFBb0UsQ0FBQyxDQUFDO1FBRXpHLE1BQU0sa0JBQWtCLEdBQXFCO1lBQzNDLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxnQkFBZ0I7WUFDOUMsTUFBTSxFQUFFO2dCQUNOLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDcEMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtnQkFDOUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtnQkFDL0MsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjthQUNoRDtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTlDLE9BQU8sTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUF2RkQsMERBdUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBTdGFraW5nQXV0aG9yaXplIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyB2YWxpZGF0ZUFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdBdXRob3JpemVCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX25ld0F1dGhvcml6ZWRBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfb2xkQXV0aG9yaXplZEFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0F1dGhvcml6ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0F1dGhvcml6ZSkge1xuICAgICAgICBjb25zdCBBdXRob3JpemVJbnN0cnVjdGlvbjogU3Rha2luZ0F1dGhvcml6ZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLnN0YWtpbmdBZGRyZXNzKEF1dGhvcml6ZUluc3RydWN0aW9uLnBhcmFtcy5zdGFraW5nQWRkcmVzcyk7XG4gICAgICAgIHRoaXMubmV3QXV0aG9yaXplZEFkZHJlc3MoQXV0aG9yaXplSW5zdHJ1Y3Rpb24ucGFyYW1zLm5ld0F1dGhvcml6ZUFkZHJlc3MpO1xuICAgICAgICB0aGlzLm9sZEF1dGhvcml6ZWRBZGRyZXNzKEF1dGhvcml6ZUluc3RydWN0aW9uLnBhcmFtcy5vbGRBdXRob3JpemVBZGRyZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqIEByZXR1cm5zIHtTdGFrZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBzdGFraW5nQWRkcmVzcyhzdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHN0YWtpbmdBZGRyZXNzLCAnc3Rha2luZ0FkZHJlc3MnKTtcbiAgICB0aGlzLl9zdGFraW5nQWRkcmVzcyA9IHN0YWtpbmdBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIG9mIHRoZSBuZXcgc3Rha2luZyBhY2NvdW50IGF1dGhvcml6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGFraW5nQWRkcmVzcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2VCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgbmV3QXV0aG9yaXplZEFkZHJlc3MobmV3QXV0aG9yaXplZEFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhuZXdBdXRob3JpemVkQWRkcmVzcywgJ25ld0F1dGhvcml6ZWRBZGRyZXNzJyk7XG4gICAgdGhpcy5fbmV3QXV0aG9yaXplZEFkZHJlc3MgPSBuZXdBdXRob3JpemVkQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWRkcmVzcyBvZiB0aGUgbmV3IHN0YWtpbmcgYWNjb3VudCBhdXRob3JpemF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3Rha2luZ0FkZHJlc3MgcHVibGljIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIG9sZEF1dGhvcml6ZWRBZGRyZXNzKG9sZEF1dGhvcml6ZWRBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3Mob2xkQXV0aG9yaXplZEFkZHJlc3MsICdvbGRBdXRob3JpemVkQWRkcmVzcycpO1xuICAgIHRoaXMuX29sZEF1dGhvcml6ZWRBZGRyZXNzID0gb2xkQXV0aG9yaXplZEFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGFzc2VydCh0aGlzLl9zdGFraW5nQWRkcmVzcywgJ1N0YWtpbmcgQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgYXNzZXJ0KHRoaXMuX25ld0F1dGhvcml6ZWRBZGRyZXNzLCAnbmV3IGF1dGhvcml6ZWQgQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgYXNzZXJ0KHRoaXMuX29sZEF1dGhvcml6ZWRBZGRyZXNzLCAnb2xkIGF1dGhvcml6ZWQgQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICBjb25zdCBzdGFraW5nQWNjb3VudERhdGE6IFN0YWtpbmdBdXRob3JpemUgPSB7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nQXV0aG9yaXplLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgbmV3V2l0aGRyYXdBZGRyZXNzOiB0aGlzLl9uZXdBdXRob3JpemVkQWRkcmVzcyxcbiAgICAgICAgbmV3QXV0aG9yaXplQWRkcmVzczogdGhpcy5fbmV3QXV0aG9yaXplZEFkZHJlc3MsXG4gICAgICAgIG9sZEF1dGhvcml6ZUFkZHJlc3M6IHRoaXMuX29sZEF1dGhvcml6ZWRBZGRyZXNzLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbc3Rha2luZ0FjY291bnREYXRhXTtcblxuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,7 @@
1
+ import { SolStakingTypeEnum } from '@bitgo/public-types';
1
2
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
- import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Recipient, TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { StakingDeactivateExtraParams } from './iface';
3
5
  import { Transaction } from './transaction';
4
6
  import { TransactionBuilder } from './transactionBuilder';
5
7
  export declare class StakingDeactivateBuilder extends TransactionBuilder {
@@ -7,6 +9,9 @@ export declare class StakingDeactivateBuilder extends TransactionBuilder {
7
9
  protected _stakingAddresses: string[];
8
10
  protected _amount?: string;
9
11
  protected _unstakingAddress: string;
12
+ protected _recipients: Recipient[];
13
+ protected _stakingType: SolStakingTypeEnum;
14
+ protected _extraParams?: StakingDeactivateExtraParams;
10
15
  constructor(_coinConfig: Readonly<CoinConfig>);
11
16
  protected get transactionType(): TransactionType;
12
17
  /** @inheritdoc */
@@ -39,6 +44,13 @@ export declare class StakingDeactivateBuilder extends TransactionBuilder {
39
44
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
40
45
  */
41
46
  amount(amount: string): this;
47
+ /**
48
+ * Setter to set the recipients object
49
+ *
50
+ * @param recipients RecipientEntry[] - The recipients object
51
+ * @returns {StakingDeactivateBuilder} This staking builder.
52
+ */
53
+ recipients(recipients: Recipient[]): this;
42
54
  /**
43
55
  * When partially unstaking move the amount to unstake to this account and initiate the
44
56
  * unstake process. The original stake account will continue staking.
@@ -49,6 +61,20 @@ export declare class StakingDeactivateBuilder extends TransactionBuilder {
49
61
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
50
62
  */
51
63
  unstakingAddress(unstakingAddress: string): this;
64
+ /**
65
+ * Set staking type.
66
+ *
67
+ * @param {SolStakingType} stakingType a staking type.
68
+ * @returns {StakingDeactivateBuilder} This staking builder.
69
+ */
70
+ stakingType(stakingType: SolStakingTypeEnum): this;
71
+ /**
72
+ * Set parameters specific to a staking type.
73
+ *
74
+ * @param {StakingDeactivateExtraParams} extraParams parameters specific to a staking type.
75
+ * @returns {StakingDeactivateBuilder} This staking builder.
76
+ */
77
+ extraParams(extraParams?: StakingDeactivateExtraParams): this;
52
78
  /** @inheritdoc */
53
79
  protected buildImplementation(): Promise<Transaction>;
54
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stakingDeactivateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingDeactivateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAqBlC;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;;OAOG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI;IAQlD;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAMhD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAiD5D"}
1
+ {"version":3,"file":"stakingDeactivateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingDeactivateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAyB,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAqB,4BAA4B,EAAY,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;IACnC,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAA6B;IACvE,SAAS,CAAC,YAAY,CAAC,EAAE,4BAA4B,CAAC;gBAE1C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAyClC;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;;OAOG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI;IAQlD;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAKzC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAMhD;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAKlD;;;;;OAKG;IACH,WAAW,CAAC,WAAW,CAAC,EAAE,4BAA4B,GAAG,IAAI;IAK7D,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAmE5D"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.StakingDeactivateBuilder = void 0;
7
+ const public_types_1 = require("@bitgo/public-types");
7
8
  const assert_1 = __importDefault(require("assert"));
8
9
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
10
  const constants_1 = require("./constants");
@@ -12,6 +13,7 @@ const utils_1 = require("./utils");
12
13
  class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
13
14
  constructor(_coinConfig) {
14
15
  super(_coinConfig);
16
+ this._stakingType = public_types_1.SolStakingTypeEnum.NATIVE;
15
17
  }
16
18
  get transactionType() {
17
19
  return sdk_core_1.TransactionType.StakingDeactivate;
@@ -23,19 +25,37 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
23
25
  for (const instruction of this._instructionsData) {
24
26
  if (instruction.type === constants_1.InstructionBuilderTypes.StakingDeactivate) {
25
27
  const deactivateInstruction = instruction;
26
- this.sender(deactivateInstruction.params.fromAddress);
28
+ // Since _stakingAddresses needs to be populated, it gets special treatment.
27
29
  stakingAddresses.push(deactivateInstruction.params.stakingAddress);
28
- if (deactivateInstruction.params.amount && deactivateInstruction.params.unstakingAddress) {
30
+ // Marinade staking also cares about sender.
31
+ if (deactivateInstruction.params.stakingType !== public_types_1.SolStakingTypeEnum.MARINADE) {
32
+ this.sender(deactivateInstruction.params.fromAddress);
33
+ }
34
+ // The other values can just be copied.
35
+ if (deactivateInstruction.params.amount !== undefined) {
29
36
  this.amount(deactivateInstruction.params.amount);
37
+ }
38
+ if (deactivateInstruction.params.unstakingAddress !== undefined) {
30
39
  this.unstakingAddress(deactivateInstruction.params.unstakingAddress);
31
40
  }
41
+ if (deactivateInstruction.params.recipients !== undefined) {
42
+ this.recipients(deactivateInstruction.params.recipients);
43
+ }
44
+ if (deactivateInstruction.params.stakingType !== undefined) {
45
+ this.stakingType(deactivateInstruction.params.stakingType);
46
+ }
47
+ if (deactivateInstruction.params.extraParams !== undefined) {
48
+ this.extraParams(deactivateInstruction.params.extraParams);
49
+ }
32
50
  }
33
51
  }
34
52
  if (stakingAddresses.length > 1) {
35
53
  this.stakingAddresses(stakingAddresses);
36
54
  }
37
55
  else {
38
- this.stakingAddress(stakingAddresses[0]);
56
+ if (this._stakingType !== public_types_1.SolStakingTypeEnum.MARINADE) {
57
+ this.stakingAddress(stakingAddresses[0]);
58
+ }
39
59
  }
40
60
  }
41
61
  /**
@@ -47,7 +67,7 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
47
67
  * @see https://docs.solana.com/staking/stake-accounts#account-address
48
68
  */
49
69
  stakingAddress(stakingAddress) {
50
- utils_1.validateAddress(stakingAddress, 'stakingAddress');
70
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
51
71
  this._stakingAddress = stakingAddress;
52
72
  return this;
53
73
  }
@@ -61,7 +81,7 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
61
81
  */
62
82
  stakingAddresses(stakingAddresses) {
63
83
  for (const stakingAddress of stakingAddresses) {
64
- utils_1.validateAddress(stakingAddress, 'stakingAddress');
84
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
65
85
  }
66
86
  this._stakingAddresses = stakingAddresses;
67
87
  return this;
@@ -76,12 +96,22 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
76
96
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
77
97
  */
78
98
  amount(amount) {
79
- if (!utils_1.isValidStakingAmount(amount)) {
99
+ if (!(0, utils_1.isValidStakingAmount)(amount)) {
80
100
  throw new sdk_core_1.BuildTransactionError('If given, amount cannot be zero or less');
81
101
  }
82
102
  this._amount = amount;
83
103
  return this;
84
104
  }
105
+ /**
106
+ * Setter to set the recipients object
107
+ *
108
+ * @param recipients RecipientEntry[] - The recipients object
109
+ * @returns {StakingDeactivateBuilder} This staking builder.
110
+ */
111
+ recipients(recipients) {
112
+ this._recipients = recipients;
113
+ return this;
114
+ }
85
115
  /**
86
116
  * When partially unstaking move the amount to unstake to this account and initiate the
87
117
  * unstake process. The original stake account will continue staking.
@@ -92,13 +122,33 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
92
122
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
93
123
  */
94
124
  unstakingAddress(unstakingAddress) {
95
- utils_1.validateAddress(unstakingAddress, 'unstakingAddress');
125
+ (0, utils_1.validateAddress)(unstakingAddress, 'unstakingAddress');
96
126
  this._unstakingAddress = unstakingAddress;
97
127
  return this;
98
128
  }
129
+ /**
130
+ * Set staking type.
131
+ *
132
+ * @param {SolStakingType} stakingType a staking type.
133
+ * @returns {StakingDeactivateBuilder} This staking builder.
134
+ */
135
+ stakingType(stakingType) {
136
+ this._stakingType = stakingType;
137
+ return this;
138
+ }
139
+ /**
140
+ * Set parameters specific to a staking type.
141
+ *
142
+ * @param {StakingDeactivateExtraParams} extraParams parameters specific to a staking type.
143
+ * @returns {StakingDeactivateBuilder} This staking builder.
144
+ */
145
+ extraParams(extraParams) {
146
+ this._extraParams = extraParams;
147
+ return this;
148
+ }
99
149
  /** @inheritdoc */
100
150
  async buildImplementation() {
101
- assert_1.default(this._sender, 'Sender must be set before building the transaction');
151
+ (0, assert_1.default)(this._sender, 'Sender must be set before building the transaction');
102
152
  if (this._stakingAddresses && this._stakingAddresses.length > 0) {
103
153
  this._instructionsData = [];
104
154
  for (const stakingAddress of this._stakingAddresses) {
@@ -107,21 +157,35 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
107
157
  params: {
108
158
  fromAddress: this._sender,
109
159
  stakingAddress: stakingAddress,
160
+ stakingType: public_types_1.SolStakingTypeEnum.NATIVE,
110
161
  },
111
162
  };
112
163
  this._instructionsData.push(stakingDeactivateData);
113
164
  }
114
165
  }
115
166
  else {
116
- assert_1.default(this._stakingAddress, 'Staking address must be set before building the transaction');
167
+ if (this._stakingType === public_types_1.SolStakingTypeEnum.NATIVE) {
168
+ // we don't need stakingAddress in marinade staking deactivate txn
169
+ (0, assert_1.default)(this._stakingAddress, 'Staking address must be set before building the transaction');
170
+ }
117
171
  if (this._sender === this._stakingAddress) {
118
172
  throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
119
173
  }
120
- if (this._amount) {
121
- assert_1.default(this._unstakingAddress, 'When partially unstaking the unstaking address must be set before building the transaction');
174
+ if (this._stakingType === public_types_1.SolStakingTypeEnum.NATIVE && this._amount) {
175
+ (0, assert_1.default)(this._unstakingAddress, 'When partially unstaking the unstaking address must be set before building the transaction');
122
176
  }
123
- if (this._unstakingAddress) {
124
- assert_1.default(this._amount, 'If an unstaking address is given then a partial amount to unstake must also be set before building the transaction');
177
+ this._instructionsData = [];
178
+ if (this._stakingType === public_types_1.SolStakingTypeEnum.NATIVE && this._unstakingAddress) {
179
+ (0, assert_1.default)(this._amount, 'If an unstaking address is given then a partial amount to unstake must also be set before building the transaction');
180
+ const stakingFundUnstakeAddress = {
181
+ type: constants_1.InstructionBuilderTypes.Transfer,
182
+ params: {
183
+ fromAddress: this._sender,
184
+ amount: constants_1.STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT.toString(),
185
+ toAddress: this._unstakingAddress,
186
+ },
187
+ };
188
+ this._instructionsData.push(stakingFundUnstakeAddress);
125
189
  }
126
190
  const stakingDeactivateData = {
127
191
  type: constants_1.InstructionBuilderTypes.StakingDeactivate,
@@ -130,12 +194,15 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
130
194
  stakingAddress: this._stakingAddress,
131
195
  amount: this._amount,
132
196
  unstakingAddress: this._unstakingAddress,
197
+ recipients: this._recipients,
198
+ stakingType: this._stakingType,
199
+ extraParams: this._extraParams,
133
200
  },
134
201
  };
135
- this._instructionsData = [stakingDeactivateData];
202
+ this._instructionsData.push(stakingDeactivateData);
136
203
  }
137
204
  return await super.buildImplementation();
138
205
  }
139
206
  }
140
207
  exports.StakingDeactivateBuilder = StakingDeactivateBuilder;
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esb0RBQTRCO0FBRTVCLG1EQUE4RTtBQUM5RSwyQ0FBc0Q7QUFHdEQsNkRBQTBEO0FBQzFELG1DQUFnRTtBQUVoRSxNQUFhLHdCQUF5QixTQUFRLHVDQUFrQjtJQU05RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsTUFBTSxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDdEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGlCQUFpQixFQUFFO2dCQUNsRSxNQUFNLHFCQUFxQixHQUFzQixXQUFXLENBQUM7Z0JBQzdELElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN0RCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFO29CQUN4RixJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFD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Q0FBQyxpQkFBaUI7Z0JBQy9DLE1BQU0sRUFBRTtvQkFDTixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87b0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZTtvQkFDcEMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNwQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2lCQUN6QzthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQXBKRCw0REFvSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTdGFraW5nRGVhY3RpdmF0ZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IGlzVmFsaWRTdGFraW5nQW1vdW50LCB2YWxpZGF0ZUFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzc2VzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIF9hbW91bnQ/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdW5zdGFraW5nQWRkcmVzczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgY29uc3Qgc3Rha2luZ0FkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIGlmIChpbnN0cnVjdGlvbi50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nRGVhY3RpdmF0ZSkge1xuICAgICAgICBjb25zdCBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb246IFN0YWtpbmdEZWFjdGl2YXRlID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIHRoaXMuc2VuZGVyKGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuZnJvbUFkZHJlc3MpO1xuICAgICAgICBzdGFraW5nQWRkcmVzc2VzLnB1c2goZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5zdGFraW5nQWRkcmVzcyk7XG4gICAgICAgIGlmIChkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmFtb3VudCAmJiBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnVuc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgICAgICB0aGlzLmFtb3VudChkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmFtb3VudCk7XG4gICAgICAgICAgdGhpcy51bnN0YWtpbmdBZGRyZXNzKGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMudW5zdGFraW5nQWRkcmVzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0YWtpbmdBZGRyZXNzZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zdGFraW5nQWRkcmVzc2VzKHN0YWtpbmdBZGRyZXNzZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YWtpbmdBZGRyZXNzKHN0YWtpbmdBZGRyZXNzZXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3Rha2luZyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGFraW5nQWRkcmVzcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50XG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBkZWFjdGl2YXRlIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIHN0YWtpbmdBZGRyZXNzKHN0YWtpbmdBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3Moc3Rha2luZ0FkZHJlc3MsICdzdGFraW5nQWRkcmVzcycpO1xuICAgIHRoaXMuX3N0YWtpbmdBZGRyZXNzID0gc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0YWtpbmcgYWRkcmVzc2VzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHN0YWtpbmdBZGRyZXNzZXMgcHVibGljIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudHNcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGRlYWN0aXZhdGUgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3NlcyhzdGFraW5nQWRkcmVzc2VzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIGZvciAoY29uc3Qgc3Rha2luZ0FkZHJlc3Mgb2Ygc3Rha2luZ0FkZHJlc3Nlcykge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKHN0YWtpbmdBZGRyZXNzLCAnc3Rha2luZ0FkZHJlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3NlcyA9IHN0YWtpbmdBZGRyZXNzZXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwgYW1vdW50IHRvIHVuc3Rha2UgZXhwcmVzc2VkIGluIExhbXBvcnRzLCAxIFNPTCA9IDFfMDAwXzAwMF8wMDAgbGFtcG9ydHMsIHRvIGJlIHVzZWRcbiAgICogd2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nLiBJZiBub3QgZ2l2ZW4gdGhlbiB0aGUgZW50aXJlIHN0YWtlZCBhbW91bnQgd2lsbCBiZSB1bnN0YWtlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCBUaGUgcGFydGlhbCBhbW91bnQgdG8gdW5zdGFrZSwgZXhwcmVzc2VkIGluIExhbXBvcnRzLlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9jbGkvZGVsZWdhdGUtc3Rha2Ujc3BsaXQtc3Rha2VcbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZFN0YWtpbmdBbW91bnQoYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSWYgZ2l2ZW4sIGFtb3VudCBjYW5ub3QgYmUgemVybyBvciBsZXNzJyk7XG4gICAgfVxuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHBhcnRpYWxseSB1bnN0YWtpbmcgbW92ZSB0aGUgYW1vdW50IHRvIHVuc3Rha2UgdG8gdGhpcyBhY2NvdW50IGFuZCBpbml0aWF0ZSB0aGVcbiAgICogdW5zdGFrZSBwcm9jZXNzLiBUaGUgb3JpZ2luYWwgc3Rha2UgYWNjb3VudCB3aWxsIGNvbnRpbnVlIHN0YWtpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bnN0YWtpbmdBZGRyZXNzIEFuIGFjY291bnQgdXNlZCB0byB1bnN0YWtlIGEgcGFydGlhbCBhbW91bnQuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL2NsaS9kZWxlZ2F0ZS1zdGFrZSNzcGxpdC1zdGFrZVxuICAgKi9cbiAgdW5zdGFraW5nQWRkcmVzcyh1bnN0YWtpbmdBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3ModW5zdGFraW5nQWRkcmVzcywgJ3Vuc3Rha2luZ0FkZHJlc3MnKTtcbiAgICB0aGlzLl91bnN0YWtpbmdBZGRyZXNzID0gdW5zdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgJ1NlbmRlciBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICBpZiAodGhpcy5fc3Rha2luZ0FkZHJlc3NlcyAmJiB0aGlzLl9zdGFraW5nQWRkcmVzc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbXTtcbiAgICAgIGZvciAoY29uc3Qgc3Rha2luZ0FkZHJlc3Mgb2YgdGhpcy5fc3Rha2luZ0FkZHJlc3Nlcykge1xuICAgICAgICBjb25zdCBzdGFraW5nRGVhY3RpdmF0ZURhdGE6IFN0YWtpbmdEZWFjdGl2YXRlID0ge1xuICAgICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICAgIHN0YWtpbmdBZGRyZXNzOiBzdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhLnB1c2goc3Rha2luZ0RlYWN0aXZhdGVEYXRhKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0KHRoaXMuX3N0YWtpbmdBZGRyZXNzLCAnU3Rha2luZyBhZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgICAgaWYgKHRoaXMuX3NlbmRlciA9PT0gdGhpcy5fc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIGFkZHJlc3MgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBTdGFraW5nIGFkZHJlc3MnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2Ftb3VudCkge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICAnV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIHRoZSB1bnN0YWtpbmcgYWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fdW5zdGFraW5nQWRkcmVzcykge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgICdJZiBhbiB1bnN0YWtpbmcgYWRkcmVzcyBpcyBnaXZlbiB0aGVuIGEgcGFydGlhbCBhbW91bnQgdG8gdW5zdGFrZSBtdXN0IGFsc28gYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWtpbmdEZWFjdGl2YXRlRGF0YTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgICB1bnN0YWtpbmdBZGRyZXNzOiB0aGlzLl91bnN0YWtpbmdBZGRyZXNzLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbc3Rha2luZ0RlYWN0aXZhdGVEYXRhXTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxufVxuIl19
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0RBQXlEO0FBRXpELG9EQUE0QjtBQUU1QixtREFBeUY7QUFDekYsMkNBQXdGO0FBR3hGLDZEQUEwRDtBQUMxRCxtQ0FBZ0U7QUFFaEUsTUFBYSx3QkFBeUIsU0FBUSx1Q0FBa0I7SUFTOUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFKWCxpQkFBWSxHQUF1QixpQ0FBa0IsQ0FBQyxNQUFNLENBQUM7SUFLdkUsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ3RDLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ25FLE1BQU0scUJBQXFCLEdBQXNCLFdBQVcsQ0FBQztnQkFDN0QsNEVBQTRFO2dCQUM1RSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUVuRSw0Q0FBNEM7Z0JBQzVDLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxpQ0FBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENB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SUFBSSxDQUFDLGlCQUFpQjtvQkFDeEMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7b0JBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtpQkFDL0I7YUFDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBOU5ELDREQThOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbFN0YWtpbmdUeXBlRW51bSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFJlY2lwaWVudCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMsIFNUQUtFX0FDQ09VTlRfUkVOVF9FWEVNUFRfQU1PVU5UIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3Rha2luZ0RlYWN0aXZhdGUsIFN0YWtpbmdEZWFjdGl2YXRlRXh0cmFQYXJhbXMsIFRyYW5zZmVyIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgaXNWYWxpZFN0YWtpbmdBbW91bnQsIHZhbGlkYXRlQWRkcmVzcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgX2Ftb3VudD86IHN0cmluZztcbiAgcHJvdGVjdGVkIF91bnN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gIHByb3RlY3RlZCBfc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bSA9IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkU7XG4gIHByb3RlY3RlZCBfZXh0cmFQYXJhbXM/OiBTdGFraW5nRGVhY3RpdmF0ZUV4dHJhUGFyYW1zO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgY29uc3Qgc3Rha2luZ0FkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIGlmIChpbnN0cnVjdGlvbi50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nRGVhY3RpdmF0ZSkge1xuICAgICAgICBjb25zdCBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb246IFN0YWtpbmdEZWFjdGl2YXRlID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIC8vIFNpbmNlIF9zdGFraW5nQWRkcmVzc2VzIG5lZWRzIHRvIGJlIHBvcHVsYXRlZCwgaXQgZ2V0cyBzcGVjaWFsIHRyZWF0bWVudC5cbiAgICAgICAgc3Rha2luZ0FkZHJlc3Nlcy5wdXNoKGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuXG4gICAgICAgIC8vIE1hcmluYWRlIHN0YWtpbmcgYWxzbyBjYXJlcyBhYm91dCBzZW5kZXIuXG4gICAgICAgIGlmIChkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnN0YWtpbmdUeXBlICE9PSBTb2xTdGFraW5nVHlwZUVudW0uTUFSSU5BREUpIHtcbiAgICAgICAgICB0aGlzLnNlbmRlcihkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmZyb21BZGRyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBvdGhlciB2YWx1ZXMgY2FuIGp1c3QgYmUgY29waWVkLlxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuYW1vdW50KGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuYW1vdW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy51bnN0YWtpbmdBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnVuc3Rha2luZ0FkZHJlc3MoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy51bnN0YWtpbmdBZGRyZXNzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnJlY2lwaWVudHMoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5zdGFraW5nVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5zdGFraW5nVHlwZShkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnN0YWtpbmdUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5leHRyYVBhcmFtcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5leHRyYVBhcmFtcyhkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmV4dHJhUGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3Rha2luZ0FkZHJlc3Nlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLnN0YWtpbmdBZGRyZXNzZXMoc3Rha2luZ0FkZHJlc3Nlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9zdGFraW5nVHlwZSAhPT0gU29sU3Rha2luZ1R5cGVFbnVtLk1BUklOQURFKSB7XG4gICAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3Nlc1swXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFraW5nIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnRcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGRlYWN0aXZhdGUgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3MgPSBzdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3Rha2luZyBhZGRyZXNzZXMgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gc3Rha2luZ0FkZHJlc3NlcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50c1xuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgZGVhY3RpdmF0ZSBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBzdGFraW5nQWRkcmVzc2VzKHN0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBzdGFraW5nQWRkcmVzcyBvZiBzdGFraW5nQWRkcmVzc2VzKSB7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3Moc3Rha2luZ0FkZHJlc3MsICdzdGFraW5nQWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9zdGFraW5nQWRkcmVzc2VzID0gc3Rha2luZ0FkZHJlc3NlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhbW91bnQgdG8gdW5zdGFrZSBleHByZXNzZWQgaW4gTGFtcG9ydHMsIDEgU09MID0gMV8wMDBfMDAwXzAwMCBsYW1wb3J0cywgdG8gYmUgdXNlZFxuICAgKiB3aGVuIHBhcnRpYWxseSB1bnN0YWtpbmcuIElmIG5vdCBnaXZlbiB0aGVuIHRoZSBlbnRpcmUgc3Rha2VkIGFtb3VudCB3aWxsIGJlIHVuc3Rha2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IFRoZSBwYXJ0aWFsIGFtb3VudCB0byB1bnN0YWtlLCBleHByZXNzZWQgaW4gTGFtcG9ydHMuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL2NsaS9kZWxlZ2F0ZS1zdGFrZSNzcGxpdC1zdGFrZVxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkU3Rha2luZ0Ftb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJZiBnaXZlbiwgYW1vdW50IGNhbm5vdCBiZSB6ZXJvIG9yIGxlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHRlciB0byBzZXQgdGhlIHJlY2lwaWVudHMgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSByZWNpcGllbnRzIFJlY2lwaWVudEVudHJ5W10gLSBUaGUgcmVjaXBpZW50cyBvYmplY3RcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICByZWNpcGllbnRzKHJlY2lwaWVudHM6IFJlY2lwaWVudFtdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IHJlY2lwaWVudHM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIG1vdmUgdGhlIGFtb3VudCB0byB1bnN0YWtlIHRvIHRoaXMgYWNjb3VudCBhbmQgaW5pdGlhdGUgdGhlXG4gICAqIHVuc3Rha2UgcHJvY2Vzcy4gVGhlIG9yaWdpbmFsIHN0YWtlIGFjY291bnQgd2lsbCBjb250aW51ZSBzdGFraW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5zdGFraW5nQWRkcmVzcyBBbiBhY2NvdW50IHVzZWQgdG8gdW5zdGFrZSBhIHBhcnRpYWwgYW1vdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9jbGkvZGVsZWdhdGUtc3Rha2Ujc3BsaXQtc3Rha2VcbiAgICovXG4gIHVuc3Rha2luZ0FkZHJlc3ModW5zdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHVuc3Rha2luZ0FkZHJlc3MsICd1bnN0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyA9IHVuc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHN0YWtpbmcgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtTb2xTdGFraW5nVHlwZX0gc3Rha2luZ1R5cGUgYSBzdGFraW5nIHR5cGUuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKi9cbiAgc3Rha2luZ1R5cGUoc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bSk6IHRoaXMge1xuICAgIHRoaXMuX3N0YWtpbmdUeXBlID0gc3Rha2luZ1R5cGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gYSBzdGFraW5nIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ0RlYWN0aXZhdGVFeHRyYVBhcmFtc30gZXh0cmFQYXJhbXMgcGFyYW1ldGVycyBzcGVjaWZpYyB0byBhIHN0YWtpbmcgdHlwZS5cbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICBleHRyYVBhcmFtcyhleHRyYVBhcmFtcz86IFN0YWtpbmdEZWFjdGl2YXRlRXh0cmFQYXJhbXMpOiB0aGlzIHtcbiAgICB0aGlzLl9leHRyYVBhcmFtcyA9IGV4dHJhUGFyYW1zO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCAnU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGlmICh0aGlzLl9zdGFraW5nQWRkcmVzc2VzICYmIHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBzdGFraW5nQWRkcmVzcyBvZiB0aGlzLl9zdGFraW5nQWRkcmVzc2VzKSB7XG4gICAgICAgIGNvbnN0IHN0YWtpbmdEZWFjdGl2YXRlRGF0YTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlYWN0aXZhdGUsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgICAgc3Rha2luZ0FkZHJlc3M6IHN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgICAgc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHN0YWtpbmdEZWFjdGl2YXRlRGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9zdGFraW5nVHlwZSA9PT0gU29sU3Rha2luZ1R5cGVFbnVtLk5BVElWRSkge1xuICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHN0YWtpbmdBZGRyZXNzIGluIG1hcmluYWRlIHN0YWtpbmcgZGVhY3RpdmF0ZSB0eG5cbiAgICAgICAgYXNzZXJ0KHRoaXMuX3N0YWtpbmdBZGRyZXNzLCAnU3Rha2luZyBhZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3NlbmRlciA9PT0gdGhpcy5fc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIGFkZHJlc3MgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBTdGFraW5nIGFkZHJlc3MnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3N0YWtpbmdUeXBlID09PSBTb2xTdGFraW5nVHlwZUVudW0uTkFUSVZFICYmIHRoaXMuX2Ftb3VudCkge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICAnV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIHRoZSB1bnN0YWtpbmcgYWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW107XG4gICAgICBpZiAodGhpcy5fc3Rha2luZ1R5cGUgPT09IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkUgJiYgdGhpcy5fdW5zdGFraW5nQWRkcmVzcykge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgICdJZiBhbiB1bnN0YWtpbmcgYWRkcmVzcyBpcyBnaXZlbiB0aGVuIGEgcGFydGlhbCBhbW91bnQgdG8gdW5zdGFrZSBtdXN0IGFsc28gYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHN0YWtpbmdGdW5kVW5zdGFrZUFkZHJlc3M6IFRyYW5zZmVyID0ge1xuICAgICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlRyYW5zZmVyLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICAgIGFtb3VudDogU1RBS0VfQUNDT1VOVF9SRU5UX0VYRU1QVF9BTU9VTlQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRvQWRkcmVzczogdGhpcy5fdW5zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhLnB1c2goc3Rha2luZ0Z1bmRVbnN0YWtlQWRkcmVzcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWtpbmdEZWFjdGl2YXRlRGF0YTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgICB1bnN0YWtpbmdBZGRyZXNzOiB0aGlzLl91bnN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgIHJlY2lwaWVudHM6IHRoaXMuX3JlY2lwaWVudHMsXG4gICAgICAgICAgc3Rha2luZ1R5cGU6IHRoaXMuX3N0YWtpbmdUeXBlLFxuICAgICAgICAgIGV4dHJhUGFyYW1zOiB0aGlzLl9leHRyYVBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhLnB1c2goc3Rha2luZ0RlYWN0aXZhdGVEYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=