@bitgo-beta/statics 15.1.1-beta.187 → 15.1.1-beta.1870

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 (129) hide show
  1. package/dist/src/account.d.ts +1130 -75
  2. package/dist/src/account.d.ts.map +1 -1
  3. package/dist/src/account.js +1780 -160
  4. package/dist/src/ada.d.ts.map +1 -1
  5. package/dist/src/ada.js +7 -3
  6. package/dist/src/allCoinsAndTokens.d.ts +2 -0
  7. package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
  8. package/dist/src/allCoinsAndTokens.js +1755 -0
  9. package/dist/src/avaxp.d.ts.map +1 -1
  10. package/dist/src/avaxp.js +9 -3
  11. package/dist/src/base.d.ts +2713 -57
  12. package/dist/src/base.d.ts.map +1 -1
  13. package/dist/src/base.js +2823 -67
  14. package/dist/src/canton.d.ts +34 -0
  15. package/dist/src/canton.d.ts.map +1 -0
  16. package/dist/src/canton.js +51 -0
  17. package/dist/src/coinFeatures.d.ts +119 -0
  18. package/dist/src/coinFeatures.d.ts.map +1 -0
  19. package/dist/src/coinFeatures.js +774 -0
  20. package/dist/src/coins/adaTokens.d.ts +2 -0
  21. package/dist/src/coins/adaTokens.d.ts.map +1 -0
  22. package/dist/src/coins/adaTokens.js +22 -0
  23. package/dist/src/coins/avaxTokens.d.ts +2 -0
  24. package/dist/src/coins/avaxTokens.d.ts.map +1 -0
  25. package/dist/src/coins/avaxTokens.js +131 -0
  26. package/dist/src/coins/botOfcTokens.d.ts +3 -0
  27. package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
  28. package/dist/src/coins/botOfcTokens.js +64 -0
  29. package/dist/src/coins/botTokens.d.ts +3 -0
  30. package/dist/src/coins/botTokens.d.ts.map +1 -0
  31. package/dist/src/coins/botTokens.js +282 -0
  32. package/dist/src/coins/bscTokens.d.ts +2 -0
  33. package/dist/src/coins/bscTokens.d.ts.map +1 -0
  34. package/dist/src/coins/bscTokens.js +220 -0
  35. package/dist/src/coins/cantonTokens.d.ts +2 -0
  36. package/dist/src/coins/cantonTokens.d.ts.map +1 -0
  37. package/dist/src/coins/cantonTokens.js +106 -0
  38. package/dist/src/coins/cosmosTokens.d.ts +2 -0
  39. package/dist/src/coins/cosmosTokens.d.ts.map +1 -0
  40. package/dist/src/coins/cosmosTokens.js +14 -0
  41. package/dist/src/coins/erc20Coins.d.ts +2 -0
  42. package/dist/src/coins/erc20Coins.d.ts.map +1 -0
  43. package/dist/src/coins/erc20Coins.js +2048 -0
  44. package/dist/src/coins/erc7984Tokens.d.ts +18 -0
  45. package/dist/src/coins/erc7984Tokens.d.ts.map +1 -0
  46. package/dist/src/coins/erc7984Tokens.js +32 -0
  47. package/dist/src/coins/generateERC20.d.ts +36 -0
  48. package/dist/src/coins/generateERC20.d.ts.map +1 -0
  49. package/dist/src/coins/generateERC20.js +46 -0
  50. package/dist/src/coins/hoodethTokens.d.ts +2 -0
  51. package/dist/src/coins/hoodethTokens.d.ts.map +1 -0
  52. package/dist/src/coins/hoodethTokens.js +115 -0
  53. package/dist/src/coins/jettonTokens.d.ts +2 -0
  54. package/dist/src/coins/jettonTokens.d.ts.map +1 -0
  55. package/dist/src/coins/jettonTokens.js +19 -0
  56. package/dist/src/coins/nep141Tokens.d.ts +2 -0
  57. package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
  58. package/dist/src/coins/nep141Tokens.js +18 -0
  59. package/dist/src/coins/ofcCoins.d.ts +2 -0
  60. package/dist/src/coins/ofcCoins.d.ts.map +1 -0
  61. package/dist/src/coins/ofcCoins.js +1162 -0
  62. package/dist/src/coins/ofcErc20Coins.d.ts +4 -0
  63. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
  64. package/dist/src/coins/ofcErc20Coins.js +1837 -0
  65. package/dist/src/coins/ofcHoodethTokens.d.ts +2 -0
  66. package/dist/src/coins/ofcHoodethTokens.d.ts.map +1 -0
  67. package/dist/src/coins/ofcHoodethTokens.js +113 -0
  68. package/dist/src/coins/polygonTokens.d.ts +2 -0
  69. package/dist/src/coins/polygonTokens.d.ts.map +1 -0
  70. package/dist/src/coins/polygonTokens.js +203 -0
  71. package/dist/src/coins/polyxTokens.d.ts +2 -0
  72. package/dist/src/coins/polyxTokens.d.ts.map +1 -0
  73. package/dist/src/coins/polyxTokens.js +22 -0
  74. package/dist/src/coins/sip10Tokens.d.ts +2 -0
  75. package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
  76. package/dist/src/coins/sip10Tokens.js +25 -0
  77. package/dist/src/coins/solTokens.d.ts +3 -0
  78. package/dist/src/coins/solTokens.d.ts.map +1 -0
  79. package/dist/src/coins/solTokens.js +499 -0
  80. package/dist/src/coins/vetTokens.d.ts +2 -0
  81. package/dist/src/coins/vetTokens.d.ts.map +1 -0
  82. package/dist/src/coins/vetTokens.js +11 -0
  83. package/dist/src/coins.d.ts +22 -1
  84. package/dist/src/coins.d.ts.map +1 -1
  85. package/dist/src/coins.js +463 -1708
  86. package/dist/src/constants.d.ts +1 -0
  87. package/dist/src/constants.d.ts.map +1 -1
  88. package/dist/src/constants.js +3 -2
  89. package/dist/src/errors.d.ts +9 -0
  90. package/dist/src/errors.d.ts.map +1 -1
  91. package/dist/src/errors.js +23 -2
  92. package/dist/src/flrp.d.ts +40 -0
  93. package/dist/src/flrp.d.ts.map +1 -0
  94. package/dist/src/flrp.js +68 -0
  95. package/dist/src/hypeevm.d.ts +28 -0
  96. package/dist/src/hypeevm.d.ts.map +1 -0
  97. package/dist/src/hypeevm.js +60 -0
  98. package/dist/src/index.d.ts +5 -1
  99. package/dist/src/index.d.ts.map +1 -1
  100. package/dist/src/index.js +41 -3
  101. package/dist/src/kaspa.d.ts +34 -0
  102. package/dist/src/kaspa.d.ts.map +1 -0
  103. package/dist/src/kaspa.js +63 -0
  104. package/dist/src/lightning.d.ts +43 -0
  105. package/dist/src/lightning.d.ts.map +1 -0
  106. package/dist/src/lightning.js +64 -0
  107. package/dist/src/map.d.ts +34 -1
  108. package/dist/src/map.d.ts.map +1 -1
  109. package/dist/src/map.js +250 -35
  110. package/dist/src/networkFeatureMapForTokens.d.ts +17 -0
  111. package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
  112. package/dist/src/networkFeatureMapForTokens.js +84 -0
  113. package/dist/src/networks.d.ts +1968 -67
  114. package/dist/src/networks.d.ts.map +1 -1
  115. package/dist/src/networks.js +2416 -108
  116. package/dist/src/ofc.d.ts +695 -3
  117. package/dist/src/ofc.d.ts.map +1 -1
  118. package/dist/src/ofc.js +1653 -28
  119. package/dist/src/tokenConfig.d.ts +692 -108
  120. package/dist/src/tokenConfig.d.ts.map +1 -1
  121. package/dist/src/tokenConfig.js +1087 -220
  122. package/dist/src/utxo.d.ts +3 -1
  123. package/dist/src/utxo.d.ts.map +1 -1
  124. package/dist/src/utxo.js +84 -3
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +6 -3
  127. package/.mocharc.js +0 -10
  128. package/.prettierignore +0 -2
  129. package/CHANGELOG.md +0 -1221
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Networks = exports.BaseNetwork = exports.NetworkType = void 0;
3
+ exports.Networks = exports.DynamicNetwork = exports.FlareTestnet = exports.Flare = exports.FlarePTestnet = exports.FlareP = exports.KaspaTestnet = exports.KaspaMainnet = exports.BaseNetwork = exports.NetworkType = void 0;
4
+ exports.getNetworkByName = getNetworkByName;
5
+ exports.getNetworksMap = getNetworksMap;
6
+ exports.registerNetwork = registerNetwork;
7
+ exports.getNetwork = getNetwork;
4
8
  const base_1 = require("./base");
5
9
  var NetworkType;
6
10
  (function (NetworkType) {
7
11
  NetworkType["MAINNET"] = "mainnet";
8
12
  NetworkType["TESTNET"] = "testnet";
9
- })(NetworkType = exports.NetworkType || (exports.NetworkType = {}));
13
+ })(NetworkType || (exports.NetworkType = NetworkType = {}));
10
14
  class BaseNetwork {
11
15
  }
12
16
  exports.BaseNetwork = BaseNetwork;
@@ -27,7 +31,7 @@ class Algorand extends Mainnet {
27
31
  super(...arguments);
28
32
  this.name = 'Algorand';
29
33
  this.family = base_1.CoinFamily.ALGO;
30
- this.explorerUrl = 'https://algoexplorer.io/tx/';
34
+ this.explorerUrl = 'https://allo.info/tx/';
31
35
  }
32
36
  }
33
37
  class AlgorandTestnet extends Testnet {
@@ -35,7 +39,7 @@ class AlgorandTestnet extends Testnet {
35
39
  super(...arguments);
36
40
  this.name = 'AlgorandTestnet';
37
41
  this.family = base_1.CoinFamily.ALGO;
38
- this.explorerUrl = 'https://testnet.algoexplorer.io/tx/';
42
+ this.explorerUrl = 'https://explorer.bitquery.io/algorand_testnet/tx/';
39
43
  }
40
44
  }
41
45
  class Ada extends Mainnet {
@@ -46,7 +50,8 @@ class Ada extends Mainnet {
46
50
  this.utxolibName = 'cardano';
47
51
  this.poolDeposit = 500000000;
48
52
  this.stakeKeyDeposit = 2000000;
49
- this.explorerUrl = 'https://explorer.cardano.org/en/transaction?id=';
53
+ this.explorerUrl = 'https://cardanoscan.io/transaction/';
54
+ this.accountExplorerUrl = 'https://cardanoscan.io/address/';
50
55
  this.coinsPerUtxoWord = 34482;
51
56
  this.maxTransactionSize = 8000;
52
57
  this.maxValueSize = 4000;
@@ -58,7 +63,8 @@ class AdaTestnet extends Testnet {
58
63
  this.name = 'AdaCardanoTestnet';
59
64
  this.family = base_1.CoinFamily.ADA;
60
65
  this.utxolibName = 'cardanoTestnet';
61
- this.explorerUrl = 'https://preprod.cexplorer.io/';
66
+ this.explorerUrl = 'https://preprod.cardanoscan.io/transaction/';
67
+ this.accountExplorerUrl = 'https://preprod.cardanoscan.io/address/';
62
68
  this.coinsPerUtxoWord = 34482;
63
69
  this.maxTransactionSize = 8000;
64
70
  this.maxValueSize = 4000;
@@ -66,6 +72,64 @@ class AdaTestnet extends Testnet {
66
72
  this.stakeKeyDeposit = 2000000;
67
73
  }
68
74
  }
75
+ class Apt extends Mainnet {
76
+ constructor() {
77
+ super(...arguments);
78
+ this.name = 'Apt';
79
+ this.family = base_1.CoinFamily.APT;
80
+ this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=mainnet';
81
+ this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=mainnet';
82
+ this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=mainnet';
83
+ }
84
+ }
85
+ class AptTestnet extends Testnet {
86
+ constructor() {
87
+ super(...arguments);
88
+ this.name = 'Testnet Apt';
89
+ this.family = base_1.CoinFamily.APT;
90
+ this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=testnet';
91
+ this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=testnet';
92
+ this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=testnet';
93
+ }
94
+ }
95
+ class Icp extends Mainnet {
96
+ constructor() {
97
+ super(...arguments);
98
+ this.name = 'Internet Computer';
99
+ this.family = base_1.CoinFamily.ICP;
100
+ this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/';
101
+ this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
102
+ }
103
+ }
104
+ class IcpTestnet extends Testnet {
105
+ constructor() {
106
+ super(...arguments);
107
+ this.name = 'Testnet Internet Computer';
108
+ this.family = base_1.CoinFamily.ICP;
109
+ this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/'; // ICP testnet explorer is not available, so using mainnet explorer
110
+ this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
111
+ }
112
+ }
113
+ class KaspaMainnet extends Mainnet {
114
+ constructor() {
115
+ super(...arguments);
116
+ this.name = 'Kaspa';
117
+ this.family = base_1.CoinFamily.KASPA;
118
+ this.explorerUrl = 'https://explorer.kaspa.org/txs/';
119
+ this.accountExplorerUrl = 'https://explorer.kaspa.org/addresses/';
120
+ }
121
+ }
122
+ exports.KaspaMainnet = KaspaMainnet;
123
+ class KaspaTestnet extends Testnet {
124
+ constructor() {
125
+ super(...arguments);
126
+ this.name = 'Testnet Kaspa';
127
+ this.family = base_1.CoinFamily.KASPA;
128
+ this.explorerUrl = 'https://explorer-tn10.kaspa.org/txs/';
129
+ this.accountExplorerUrl = 'https://explorer-tn10.kaspa.org/addresses/';
130
+ }
131
+ }
132
+ exports.KaspaTestnet = KaspaTestnet;
69
133
  class Arbitrum extends Mainnet {
70
134
  constructor() {
71
135
  super(...arguments);
@@ -74,8 +138,13 @@ class Arbitrum extends Mainnet {
74
138
  this.explorerUrl = 'https://arbiscan.io/tx/';
75
139
  this.accountExplorerUrl = 'https://arbiscan.io/address/';
76
140
  this.chainId = 42161;
77
- this.nativeCoinOperationHashPrefix = 'ARBETH';
78
- this.tokenOperationHashPrefix = 'ARBETH-ERC20';
141
+ this.nativeCoinOperationHashPrefix = '42161';
142
+ this.tokenOperationHashPrefix = '42161-ERC20';
143
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
144
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
145
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
146
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
147
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
79
148
  }
80
149
  }
81
150
  class ArbitrumTestnet extends Testnet {
@@ -86,8 +155,13 @@ class ArbitrumTestnet extends Testnet {
86
155
  this.explorerUrl = 'https://sepolia.arbiscan.io/tx/';
87
156
  this.accountExplorerUrl = 'https://sepolia.arbiscan.io/address/';
88
157
  this.chainId = 421614;
89
- this.nativeCoinOperationHashPrefix = 'ARBETH';
90
- this.tokenOperationHashPrefix = 'ARBETH-ERC20';
158
+ this.nativeCoinOperationHashPrefix = '421614';
159
+ this.tokenOperationHashPrefix = '421614-ERC20';
160
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
161
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
162
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
163
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
164
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
91
165
  }
92
166
  }
93
167
  class AvalancheC extends Mainnet {
@@ -96,9 +170,10 @@ class AvalancheC extends Mainnet {
96
170
  // https://docs.avax.network/build/tutorials/smart-contracts/deploy-a-smart-contract-on-avalanche-using-remix-and-metamask#avalanche-mainnet-settings
97
171
  this.name = 'AvalancheC';
98
172
  this.family = base_1.CoinFamily.AVAXC;
99
- this.explorerUrl = 'https://snowtrace.io/tx/';
100
- this.accountExplorerUrl = 'https://snowtrace.io/address/';
173
+ this.explorerUrl = 'https://subnets.avax.network/c-chain/tx/';
174
+ this.accountExplorerUrl = 'https://subnets.avax.network/c-chain/address/';
101
175
  this.chainId = 43114;
176
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
102
177
  }
103
178
  }
104
179
  class AvalancheCTestnet extends Testnet {
@@ -107,9 +182,10 @@ class AvalancheCTestnet extends Testnet {
107
182
  // https://docs.avax.network/build/tutorials/smart-contracts/deploy-a-smart-contract-on-avalanche-using-remix-and-metamask#avalanche-mainnet-settings
108
183
  this.name = 'AvalancheCTestnet';
109
184
  this.family = base_1.CoinFamily.AVAXC;
110
- this.explorerUrl = 'https://testnet.snowtrace.io/tx/';
111
- this.accountExplorerUrl = 'https://testnet.snowtrace.io/address/';
185
+ this.explorerUrl = 'https://subnets-test.avax.network/c-chain/tx/';
186
+ this.accountExplorerUrl = 'https://subnets-test.avax.network/c-chain/address/';
112
187
  this.chainId = 43113;
188
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
113
189
  }
114
190
  }
115
191
  class AvalancheP extends Mainnet {
@@ -175,9 +251,12 @@ class BinanceSmartChain extends Mainnet {
175
251
  super(...arguments);
176
252
  this.name = 'BinanceSmartChain';
177
253
  this.family = base_1.CoinFamily.BSC;
178
- this.explorerUrl = 'https://www.bscscan.com/tx/';
179
- this.accountExplorerUrl = 'https://www.bscscan.com/address/';
254
+ this.explorerUrl = 'https://bscscan.com/tx/';
255
+ this.accountExplorerUrl = 'https://bscscan.com/address/';
180
256
  this.chainId = 56;
257
+ this.nativeCoinOperationHashPrefix = '56';
258
+ this.tokenOperationHashPrefix = '56-ERC20';
259
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
181
260
  }
182
261
  }
183
262
  class BinanceSmartChainTestnet extends Testnet {
@@ -188,6 +267,81 @@ class BinanceSmartChainTestnet extends Testnet {
188
267
  this.explorerUrl = 'https://testnet.bscscan.com/tx/';
189
268
  this.accountExplorerUrl = 'https://testnet.bscscan.com/address/';
190
269
  this.chainId = 97;
270
+ this.nativeCoinOperationHashPrefix = '97';
271
+ this.tokenOperationHashPrefix = '97-ERC20';
272
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
273
+ }
274
+ }
275
+ class OpBNB extends Mainnet {
276
+ constructor() {
277
+ super(...arguments);
278
+ this.name = 'OpBNB';
279
+ this.family = base_1.CoinFamily.OPBNB;
280
+ this.explorerUrl = 'https://opbnbscan.com/tx/';
281
+ this.accountExplorerUrl = 'https://opbnbscan.com/address/';
282
+ this.chainId = 204;
283
+ this.nativeCoinOperationHashPrefix = '204';
284
+ this.tokenOperationHashPrefix = '204-ERC20';
285
+ }
286
+ }
287
+ class OpBNBTestnet extends Testnet {
288
+ constructor() {
289
+ super(...arguments);
290
+ this.name = 'OpBNBTestnet';
291
+ this.family = base_1.CoinFamily.OPBNB;
292
+ this.explorerUrl = 'https://testnet.opbnbscan.com/tx/';
293
+ this.accountExplorerUrl = 'https://testnet.opbnbscan.com/address/';
294
+ this.chainId = 5611;
295
+ this.nativeCoinOperationHashPrefix = '5611';
296
+ this.tokenOperationHashPrefix = '5611-ERC20';
297
+ }
298
+ }
299
+ class Fantom extends Mainnet {
300
+ constructor() {
301
+ super(...arguments);
302
+ this.name = 'Fantom';
303
+ this.family = base_1.CoinFamily.FANTOM;
304
+ this.explorerUrl = 'https://explorer.fantom.network/transactions/';
305
+ this.accountExplorerUrl = 'https://explorer.fantom.network/address/';
306
+ this.chainId = 250;
307
+ this.nativeCoinOperationHashPrefix = '250';
308
+ this.tokenOperationHashPrefix = '250-ERC20';
309
+ }
310
+ }
311
+ class FantomTestnet extends Testnet {
312
+ constructor() {
313
+ super(...arguments);
314
+ this.name = 'FantomTestnet';
315
+ this.family = base_1.CoinFamily.FANTOM;
316
+ this.explorerUrl = 'https://explorer.fantom.network/transactions/';
317
+ this.accountExplorerUrl = 'https://explorer.fantom.network/address/';
318
+ this.chainId = 4002;
319
+ this.nativeCoinOperationHashPrefix = '4002';
320
+ this.tokenOperationHashPrefix = '4002-ERC20';
321
+ }
322
+ }
323
+ class LightningBitcoin extends Mainnet {
324
+ constructor() {
325
+ super(...arguments);
326
+ this.name = 'LightningBitcoin';
327
+ this.family = base_1.CoinFamily.LNBTC;
328
+ this.utxolibName = 'bitcoin';
329
+ this.explorerUrl = 'https://mempool.space/lightning';
330
+ this.lightningServicePubKey = '0338508686f978ceffd7ce05404041b1a5b4f75a39bc92a6d355240ccc081f763e';
331
+ this.middlewarePubKey = '020d52f6458b17b565bc03516568d1a65c8cbd131ce03f2207567e4cd3322e82f3';
332
+ this.tatPubKey = '03953da20068c096858d3cca60f8c5b0e5a2f5d0383ecf9b6ab392d71e4f3e72df';
333
+ }
334
+ }
335
+ class LightningBitcoinTestnet extends Testnet {
336
+ constructor() {
337
+ super(...arguments);
338
+ this.name = 'LightningBitcoinTestnet';
339
+ this.family = base_1.CoinFamily.LNBTC;
340
+ this.utxolibName = 'testnet';
341
+ this.explorerUrl = 'https://mempool.space/testnet/lightning';
342
+ this.lightningServicePubKey = '024055021db1e7f019ebb783ab0b0810c21a819207d4cb1ec4a6e2150ac07f1482';
343
+ this.middlewarePubKey = '027cb3bc6b49fc385d282b42a7be232a94ffcbaffc7818b603b17722582bbf539b';
344
+ this.tatPubKey = '02e747c99c371eac9c14fb19913bec8a0e3e46e35ab1a45878e5b9afbb69899c1e';
191
345
  }
192
346
  }
193
347
  class Bitcoin extends Mainnet {
@@ -206,6 +360,35 @@ class BitcoinTestnet extends Testnet {
206
360
  this.family = base_1.CoinFamily.BTC;
207
361
  this.utxolibName = 'testnet';
208
362
  this.explorerUrl = 'https://mempool.space/testnet/tx/';
363
+ // Add our pubkey for our paygo wallet
364
+ this.paygoAddressAttestationPubkey = 'xpub6BKRgmCPX5oQiJgJ6Vq6BF8tDvZhwQki5dVVQohckK2ZJXtxj8K6M9pavLwt9piW33hZz17SWmG8QWsjJ1tHdde2Fs5UA3DFbApCtbdaGKn';
365
+ }
366
+ }
367
+ class BitcoinPublicSignet extends Testnet {
368
+ constructor() {
369
+ super(...arguments);
370
+ this.name = 'BitcoinPublicSignet';
371
+ this.family = base_1.CoinFamily.BTC;
372
+ this.utxolibName = 'bitcoinPublicSignet';
373
+ this.explorerUrl = 'https://mempool.space/signet/tx/';
374
+ }
375
+ }
376
+ class BitcoinTestnet4 extends Testnet {
377
+ constructor() {
378
+ super(...arguments);
379
+ this.name = 'BitcoinTestnet4';
380
+ this.family = base_1.CoinFamily.BTC;
381
+ this.utxolibName = 'bitcoinTestnet4';
382
+ this.explorerUrl = 'https://mempool.space/testnet4/tx/';
383
+ }
384
+ }
385
+ class BitcoinBitGoSignet extends Testnet {
386
+ constructor() {
387
+ super(...arguments);
388
+ this.name = 'BitcoinBitGoSignet';
389
+ this.family = base_1.CoinFamily.BTC;
390
+ this.utxolibName = 'bitcoinBitGoSignet';
391
+ this.explorerUrl = 'https://mempool.space/notanetwork/tx/';
209
392
  }
210
393
  }
211
394
  class BitcoinCash extends Mainnet {
@@ -223,7 +406,7 @@ class BitcoinCashTestnet extends Testnet {
223
406
  this.name = 'BitcoinCashTestnet';
224
407
  this.family = base_1.CoinFamily.BCH;
225
408
  this.utxolibName = 'bitcoincashTestnet';
226
- this.explorerUrl = 'https://www.blockchain.com/bch-testnet/tx/';
409
+ this.explorerUrl = 'https://tbch.loping.net/tx/';
227
410
  }
228
411
  }
229
412
  class BitcoinSV extends Mainnet {
@@ -316,30 +499,30 @@ class ECashTestnet extends Testnet {
316
499
  this.explorerUrl = undefined;
317
500
  }
318
501
  }
319
- class Polkadot extends Mainnet {
502
+ class PolkadotAssetHub extends Mainnet {
320
503
  constructor() {
321
504
  super(...arguments);
322
- this.name = 'Polkadot';
505
+ this.name = 'PolkadotAssetHub';
323
506
  this.family = base_1.CoinFamily.DOT;
324
- this.explorerUrl = 'https://polkadot.subscan.io/extrinsic/';
325
- this.specName = 'polkadot';
326
- this.genesisHash = '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3';
327
- this.specVersion = 9140;
328
- this.chainName = 'Polkadot';
329
- this.txVersion = 9;
507
+ this.explorerUrl = 'https://assethub-polkadot.subscan.io/extrinsic/';
508
+ this.specName = 'statemint';
509
+ this.genesisHash = '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f';
510
+ this.specVersion = 1007001;
511
+ this.chainName = 'Polkadot Asset Hub';
512
+ this.txVersion = 15;
330
513
  }
331
514
  }
332
- class PolkadotTestnet extends Testnet {
515
+ class WestendAssetHub extends Testnet {
333
516
  constructor() {
334
517
  super(...arguments);
335
- this.name = 'Westend';
518
+ this.name = 'WestendAssetHub';
336
519
  this.family = base_1.CoinFamily.DOT;
337
- this.explorerUrl = 'https://westend.subscan.io/extrinsic/';
338
- this.specName = 'westend';
339
- this.genesisHash = '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e';
340
- this.specVersion = 9430;
341
- this.chainName = 'Westend';
342
- this.txVersion = 22;
520
+ this.explorerUrl = 'https://assethub-westend.subscan.io/extrinsic/';
521
+ this.specName = 'westmint';
522
+ this.genesisHash = '0x67f9723393ef76214df0118c34bbbd3dbebc8ed46a10973a8c969d48fe7598c9';
523
+ this.specVersion = 1020000;
524
+ this.chainName = 'Westend Asset Hub';
525
+ this.txVersion = 16;
343
526
  }
344
527
  }
345
528
  class Celo extends Mainnet {
@@ -350,6 +533,8 @@ class Celo extends Mainnet {
350
533
  this.explorerUrl = 'https://explorer.celo.org/tx/';
351
534
  this.accountExplorerUrl = 'https://explorer.celo.org/address/';
352
535
  this.chainId = 42220;
536
+ this.nativeCoinOperationHashPrefix = 'CELO';
537
+ this.tokenOperationHashPrefix = 'CELO-ERC20';
353
538
  }
354
539
  }
355
540
  class CeloTestnet extends Testnet {
@@ -357,9 +542,57 @@ class CeloTestnet extends Testnet {
357
542
  super(...arguments);
358
543
  this.name = 'CeloTestnet';
359
544
  this.family = base_1.CoinFamily.CELO;
360
- this.explorerUrl = 'https://alfajores-blockscout.celo-testnet.org/tx/';
361
- this.accountExplorerUrl = 'https://alfajores-blockscout.celo-testnet.org/address/';
362
- this.chainId = 44787;
545
+ this.explorerUrl = 'https://sepolia.celoscan.io/tx/';
546
+ this.accountExplorerUrl = 'https://sepolia.celoscan.io/address/';
547
+ this.chainId = 11142220;
548
+ this.nativeCoinOperationHashPrefix = 'CELO';
549
+ this.tokenOperationHashPrefix = 'CELO-ERC20';
550
+ }
551
+ }
552
+ class Chiliz extends Mainnet {
553
+ constructor() {
554
+ super(...arguments);
555
+ this.name = 'Chiliz';
556
+ this.family = base_1.CoinFamily.CHILIZ;
557
+ this.explorerUrl = 'https://chiliscan.com/tx/';
558
+ this.accountExplorerUrl = 'https://chiliscan.com/address/';
559
+ this.chainId = 88888;
560
+ this.nativeCoinOperationHashPrefix = '88888';
561
+ this.tokenOperationHashPrefix = '88888-ERC20';
562
+ }
563
+ }
564
+ class ChilizTestnet extends Testnet {
565
+ constructor() {
566
+ super(...arguments);
567
+ this.name = 'ChilizTestnet';
568
+ this.family = base_1.CoinFamily.CHILIZ;
569
+ this.explorerUrl = 'https://testnet.chiliscan.com/tx/';
570
+ this.accountExplorerUrl = 'https://testnet.chiliscan.com/address/';
571
+ this.chainId = 88882;
572
+ this.nativeCoinOperationHashPrefix = '88882';
573
+ this.tokenOperationHashPrefix = '88882-ERC20';
574
+ }
575
+ }
576
+ class CodexEth extends Mainnet {
577
+ constructor() {
578
+ super(...arguments);
579
+ this.name = 'Codex Ethereum';
580
+ this.family = base_1.CoinFamily.CODEXETH;
581
+ this.explorerUrl = 'https://explorer.codex.xyz/tx/';
582
+ this.accountExplorerUrl = 'https://explorer.codex.xyz/address/';
583
+ this.chainId = 81224;
584
+ this.nativeCoinOperationHashPrefix = '81224';
585
+ }
586
+ }
587
+ class CodexEthTestnet extends Testnet {
588
+ constructor() {
589
+ super(...arguments);
590
+ this.name = 'Testnet Codex Ethereum';
591
+ this.family = base_1.CoinFamily.CODEXETH;
592
+ this.explorerUrl = 'https://explorer.codex-stg.xyz/tx/';
593
+ this.accountExplorerUrl = 'https://explorer.codex-stg.xyz/address/';
594
+ this.chainId = 812242;
595
+ this.nativeCoinOperationHashPrefix = '812242';
363
596
  }
364
597
  }
365
598
  // TODO update explorerUrl STLX-1657
@@ -391,11 +624,21 @@ class Ethereum extends Mainnet {
391
624
  this.blockExplorerUrl = 'https://etherscan.io/block/';
392
625
  // from https://github.com/ethereumjs/ethereumjs-common/blob/a978f630858f6843176bb20b277569785914e899/src/chains/index.ts
393
626
  this.chainId = 1;
394
- this.batcherContractAddress = '0x0c9b25dfe02b2c89cce86e1a0bd6c04a7aca01b6';
627
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
395
628
  this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
396
629
  this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
630
+ this.walletV2ForwarderFactoryAddress = '0x29Ef46035e9fA3D570c598d3266424Ca11413b0C';
631
+ this.walletV2ForwarderImplementationAddress = '0x5397d0869aBA0D55e96D5716d383F6e1d8695ed7';
632
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
633
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
397
634
  this.nativeCoinOperationHashPrefix = 'ETHER';
398
635
  this.tokenOperationHashPrefix = 'ERC20';
636
+ this.walletFactoryAddress = '0x9a0d63911620f7fc15c3c020edbe4d7267ea3e4d';
637
+ this.walletImplementationAddress = '0xe8e847cf573fc8ed75621660a36affd18c543d7e';
638
+ this.walletV2FactoryAddress = '0xa7198f48C58E91f01317E70Cd24C5Cce475c1555';
639
+ this.walletV2ImplementationAddress = '0xe5DcdC13B628c2df813DB1080367E929c1507Ca0';
640
+ this.walletV4FactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
641
+ this.walletV4ImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
399
642
  }
400
643
  }
401
644
  class Ethereum2 extends Mainnet {
@@ -422,6 +665,28 @@ class EthereumW extends Mainnet {
422
665
  this.tokenOperationHashPrefix = 'ERC20';
423
666
  }
424
667
  }
668
+ class XtzEvm extends Mainnet {
669
+ constructor() {
670
+ super(...arguments);
671
+ this.name = 'Etherlink';
672
+ this.family = base_1.CoinFamily.XTZEVM;
673
+ this.explorerUrl = 'https://explorer.etherlink.com/tx/';
674
+ this.accountExplorerUrl = 'https://explorer.etherlink.com/address/';
675
+ this.chainId = 42793;
676
+ this.nativeCoinOperationHashPrefix = '42793';
677
+ }
678
+ }
679
+ class XtzEvmTestnet extends Testnet {
680
+ constructor() {
681
+ super(...arguments);
682
+ this.name = 'Testnet Etherlink';
683
+ this.family = base_1.CoinFamily.XTZEVM;
684
+ this.explorerUrl = 'https://shadownet.explorer.etherlink.com/tx/';
685
+ this.accountExplorerUrl = 'https://shadownet.explorer.etherlink.com/address/';
686
+ this.chainId = 127823;
687
+ this.nativeCoinOperationHashPrefix = '127823';
688
+ }
689
+ }
425
690
  class Pyrmont extends Testnet {
426
691
  constructor() {
427
692
  super(...arguments);
@@ -469,16 +734,47 @@ class Holesky extends Testnet {
469
734
  super(...arguments);
470
735
  this.name = 'Holesky';
471
736
  this.family = base_1.CoinFamily.ETH;
472
- this.explorerUrl = 'https://holesky.beaconcha.in/tx/';
473
- this.accountExplorerUrl = 'https://holesky.beaconcha.in/address/';
474
- this.blockExplorerUrl = 'https://holesky.beaconcha.in/block/';
737
+ this.explorerUrl = 'https://holesky.etherscan.io/tx/';
738
+ this.accountExplorerUrl = 'https://holesky.etherscan.io/address/';
739
+ this.blockExplorerUrl = 'https://holesky.etherscan.io/block/';
475
740
  // https://chainlist.org/chain/17000
476
741
  this.chainId = 17000;
477
- this.batcherContractAddress = '0xe8e847cf573fc8ed75621660a36affd18c543d7e';
478
- this.forwarderFactoryAddress = '0xf5caa5e3e93afbc21bd19ef4f2691a37121f7917';
479
- this.forwarderImplementationAddress = '0x80d5c91e8cc21df69fc4d64f21dc2d83121c3999';
742
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
743
+ this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
744
+ this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
745
+ this.nativeCoinOperationHashPrefix = 'ETHER';
746
+ this.tokenOperationHashPrefix = 'ERC20';
747
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
748
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
749
+ }
750
+ }
751
+ class Hoodi extends Testnet {
752
+ constructor() {
753
+ super(...arguments);
754
+ this.name = 'Hoodi';
755
+ this.family = base_1.CoinFamily.ETH;
756
+ this.explorerUrl = 'https://hoodi.etherscan.io/tx/';
757
+ this.accountExplorerUrl = 'https://hoodi.etherscan.io/address/';
758
+ this.blockExplorerUrl = 'https://hoodi.etherscan.io/block/';
759
+ // https://chainlist.org/chain/560048
760
+ this.chainId = 560048;
761
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
762
+ this.forwarderFactoryAddress = '0x0e2874d6824fae4f61e446012317a9b86384bd8e';
763
+ this.forwarderImplementationAddress = '0x7441f20a59be97011842404b9aefd8d85fd81aa6';
764
+ this.walletV2ForwarderFactoryAddress = '0x0e2874d6824fae4f61e446012317a9b86384bd8e';
765
+ this.walletV2ForwarderImplementationAddress = '0x7441f20a59be97011842404b9aefd8d85fd81aa6';
766
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
767
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
768
+ this.walletFactoryAddress = '0xf514cd80a41bde2e20033b251f1f74633caf3e59';
769
+ this.walletImplementationAddress = '0x6bb86b3b27b092bf8a285080fe7d58acdf841041';
770
+ this.walletV2FactoryAddress = '0xf514cd80a41bde2e20033b251f1f74633caf3e59';
771
+ this.walletV2ImplementationAddress = '0x6bb86b3b27b092bf8a285080fe7d58acdf841041';
772
+ this.walletV4FactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
773
+ this.walletV4ImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
480
774
  this.nativeCoinOperationHashPrefix = 'ETHER';
481
775
  this.tokenOperationHashPrefix = 'ERC20';
776
+ // https://github.com/zama-ai/sdk/blob/prerelease/packages/sdk/src/chains/configs.ts#L52
777
+ this.zamaAclContractAddress = '0x6d3faf6f86e1ff9f3b0831dda920aba1cbd5bd68';
482
778
  }
483
779
  }
484
780
  class EthereumClassic extends Mainnet {
@@ -490,6 +786,8 @@ class EthereumClassic extends Mainnet {
490
786
  this.accountExplorerUrl = 'https://blockscout.com/etc/mainnet/address/';
491
787
  // from https://chainid.network/chains/
492
788
  this.chainId = 61;
789
+ this.nativeCoinOperationHashPrefix = 'ETC';
790
+ this.tokenOperationHashPrefix = 'ETC-ERC20';
493
791
  }
494
792
  }
495
793
  class EthereumClassicTestnet extends Testnet {
@@ -501,6 +799,8 @@ class EthereumClassicTestnet extends Testnet {
501
799
  this.accountExplorerUrl = 'https://blockscout.com/etc/mordor/address/';
502
800
  // from https://chainid.network/chains/
503
801
  this.chainId = 63;
802
+ this.nativeCoinOperationHashPrefix = 'ETC';
803
+ this.tokenOperationHashPrefix = 'ETC-ERC20';
504
804
  }
505
805
  }
506
806
  class Eos extends Mainnet {
@@ -524,7 +824,7 @@ class Hedera extends Mainnet {
524
824
  super(...arguments);
525
825
  this.name = 'Hedera';
526
826
  this.family = base_1.CoinFamily.HBAR;
527
- this.explorerUrl = 'https://explorer.kabuto.sh/mainnet/transaction/';
827
+ this.explorerUrl = 'https://hashscan.io/mainnet/transaction/';
528
828
  }
529
829
  }
530
830
  class HederaTestnet extends Testnet {
@@ -532,7 +832,7 @@ class HederaTestnet extends Testnet {
532
832
  super(...arguments);
533
833
  this.name = 'HederaTestnet';
534
834
  this.family = base_1.CoinFamily.HBAR;
535
- this.explorerUrl = 'https://explorer.kabuto.sh/testnet/transaction/';
835
+ this.explorerUrl = 'https://testnet.dragonglass.me/hedera/search?q=';
536
836
  }
537
837
  }
538
838
  class Litecoin extends Mainnet {
@@ -541,7 +841,7 @@ class Litecoin extends Mainnet {
541
841
  this.name = 'Litecoin';
542
842
  this.family = base_1.CoinFamily.LTC;
543
843
  this.utxolibName = 'litecoin';
544
- this.explorerUrl = 'https://blockchair.com/litecoin/transaction/';
844
+ this.explorerUrl = 'https://litecoinspace.org/tx/';
545
845
  }
546
846
  }
547
847
  class LitecoinTestnet extends Testnet {
@@ -577,6 +877,8 @@ class Rbtc extends Mainnet {
577
877
  this.explorerUrl = 'https://explorer.rsk.co/tx/';
578
878
  this.accountExplorerUrl = 'https://explorer.rsk.co/address/';
579
879
  this.chainId = 30;
880
+ this.nativeCoinOperationHashPrefix = 'RSK';
881
+ this.tokenOperationHashPrefix = 'RSK-ERC20';
580
882
  }
581
883
  }
582
884
  class RbtcTestnet extends Testnet {
@@ -587,6 +889,8 @@ class RbtcTestnet extends Testnet {
587
889
  this.explorerUrl = 'https://explorer.testnet.rsk.co/tx/';
588
890
  this.accountExplorerUrl = 'https://explorer.testnet.rsk.co/address/';
589
891
  this.chainId = 31;
892
+ this.nativeCoinOperationHashPrefix = 'RSK';
893
+ this.tokenOperationHashPrefix = 'RSK-ERC20';
590
894
  }
591
895
  }
592
896
  class Stellar extends Mainnet {
@@ -621,12 +925,31 @@ class SolTestnet extends Testnet {
621
925
  this.explorerUrl = 'https://explorer.solana.com/tx/?cluster=devnet';
622
926
  }
623
927
  }
928
+ class StarknetMainnet extends Mainnet {
929
+ constructor() {
930
+ super(...arguments);
931
+ this.name = 'Starknet';
932
+ this.family = base_1.CoinFamily.STARKNET;
933
+ this.explorerUrl = 'https://voyager.online/tx/';
934
+ this.accountExplorerUrl = 'https://voyager.online/contract/';
935
+ }
936
+ }
937
+ class StarknetTestnet extends Testnet {
938
+ constructor() {
939
+ super(...arguments);
940
+ this.name = 'Testnet Starknet';
941
+ this.family = base_1.CoinFamily.STARKNET;
942
+ this.explorerUrl = 'https://sepolia.voyager.online/tx/';
943
+ this.accountExplorerUrl = 'https://sepolia.voyager.online/contract/';
944
+ }
945
+ }
624
946
  class Sui extends Mainnet {
625
947
  constructor() {
626
948
  super(...arguments);
627
949
  this.name = 'Sui';
628
950
  this.family = base_1.CoinFamily.SUI;
629
951
  this.explorerUrl = 'https://explorer.sui.io/txblock/?network=mainnet';
952
+ this.accountExplorerUrl = 'https://explorer.sui.io/address/?network=mainnet';
630
953
  }
631
954
  }
632
955
  class SuiTestnet extends Testnet {
@@ -635,6 +958,7 @@ class SuiTestnet extends Testnet {
635
958
  this.name = 'Testnet Sui';
636
959
  this.family = base_1.CoinFamily.SUI;
637
960
  this.explorerUrl = 'https://explorer.sui.io/txblock/?network=testnet';
961
+ this.accountExplorerUrl = 'https://explorer.sui.io/address/?network=testnet';
638
962
  }
639
963
  }
640
964
  class Atom extends Mainnet {
@@ -642,7 +966,8 @@ class Atom extends Mainnet {
642
966
  super(...arguments);
643
967
  this.name = 'Cosmos Hub ATOM';
644
968
  this.family = base_1.CoinFamily.ATOM;
645
- this.explorerUrl = 'https://atomscan.com/transactions/';
969
+ this.explorerUrl = 'https://www.mintscan.io/cosmos/tx/';
970
+ this.addressPrefix = 'cosmos';
646
971
  }
647
972
  }
648
973
  class AtomTestnet extends Testnet {
@@ -650,7 +975,8 @@ class AtomTestnet extends Testnet {
650
975
  super(...arguments);
651
976
  this.name = 'Testnet Cosmos Hub ATOM';
652
977
  this.family = base_1.CoinFamily.ATOM;
653
- this.explorerUrl = 'https://explorer.theta-testnet.polypore.xyz/transactions/';
978
+ this.explorerUrl = 'https://explorer.polypore.xyz/provider/tx/';
979
+ this.addressPrefix = 'cosmos';
654
980
  }
655
981
  }
656
982
  class Osmo extends Mainnet {
@@ -659,6 +985,7 @@ class Osmo extends Mainnet {
659
985
  this.name = 'Osmosis';
660
986
  this.family = base_1.CoinFamily.OSMO;
661
987
  this.explorerUrl = 'https://www.mintscan.io/osmosis/txs/';
988
+ this.addressPrefix = 'osmo';
662
989
  }
663
990
  }
664
991
  class OsmoTestnet extends Testnet {
@@ -667,6 +994,7 @@ class OsmoTestnet extends Testnet {
667
994
  this.name = 'Testnet Osmosis';
668
995
  this.family = base_1.CoinFamily.OSMO;
669
996
  this.explorerUrl = 'https://testnet.osmosis.explorers.guru/transaction/';
997
+ this.addressPrefix = 'osmo';
670
998
  }
671
999
  }
672
1000
  class Tia extends Mainnet {
@@ -675,6 +1003,7 @@ class Tia extends Mainnet {
675
1003
  this.name = 'Celestia';
676
1004
  this.family = base_1.CoinFamily.TIA;
677
1005
  this.explorerUrl = 'https://www.mintscan.io/celestia/tx/';
1006
+ this.addressPrefix = 'celestia';
678
1007
  }
679
1008
  }
680
1009
  class TiaTestnet extends Testnet {
@@ -682,7 +1011,8 @@ class TiaTestnet extends Testnet {
682
1011
  super(...arguments);
683
1012
  this.name = 'Testnet Celestia';
684
1013
  this.family = base_1.CoinFamily.TIA;
685
- this.explorerUrl = 'https://testnet.mintscan.io/celestia-testnet/txs/';
1014
+ this.explorerUrl = 'https://testnet.celestia.explorers.guru/transaction/';
1015
+ this.addressPrefix = 'celestia';
686
1016
  }
687
1017
  }
688
1018
  class Hash extends Mainnet {
@@ -691,6 +1021,7 @@ class Hash extends Mainnet {
691
1021
  this.name = 'Provenance';
692
1022
  this.family = base_1.CoinFamily.HASH;
693
1023
  this.explorerUrl = 'https://explorer.provenance.io/tx/';
1024
+ this.addressPrefix = 'pb';
694
1025
  }
695
1026
  }
696
1027
  class HashTestnet extends Testnet {
@@ -699,6 +1030,7 @@ class HashTestnet extends Testnet {
699
1030
  this.name = 'Testnet Provenance';
700
1031
  this.family = base_1.CoinFamily.HASH;
701
1032
  this.explorerUrl = 'https://explorer.test.provenance.io/tx/';
1033
+ this.addressPrefix = 'tp';
702
1034
  }
703
1035
  }
704
1036
  class Bld extends Mainnet {
@@ -707,6 +1039,7 @@ class Bld extends Mainnet {
707
1039
  this.name = 'Agoric';
708
1040
  this.family = base_1.CoinFamily.BLD;
709
1041
  this.explorerUrl = 'https://bigdipper.live/agoric/transactions/';
1042
+ this.addressPrefix = 'agoric';
710
1043
  }
711
1044
  }
712
1045
  class BldTestnet extends Testnet {
@@ -715,6 +1048,7 @@ class BldTestnet extends Testnet {
715
1048
  this.name = 'Testnet Agoric';
716
1049
  this.family = base_1.CoinFamily.BLD;
717
1050
  this.explorerUrl = 'https://emerynet.explorer.agoric.net/agoric/tx/';
1051
+ this.addressPrefix = 'agoric';
718
1052
  }
719
1053
  }
720
1054
  class Sei extends Mainnet {
@@ -722,8 +1056,8 @@ class Sei extends Mainnet {
722
1056
  super(...arguments);
723
1057
  this.name = 'Sei';
724
1058
  this.family = base_1.CoinFamily.SEI;
725
- // TODO(BG-78997): Sei is still only in testnet update to mainnet url when it's live
726
- this.explorerUrl = 'https://sei.explorers.guru/transaction/';
1059
+ this.explorerUrl = 'https://mintscan.io/sei/tx/';
1060
+ this.addressPrefix = 'sei';
727
1061
  }
728
1062
  }
729
1063
  class SeiTestnet extends Testnet {
@@ -731,7 +1065,8 @@ class SeiTestnet extends Testnet {
731
1065
  super(...arguments);
732
1066
  this.name = 'Testnet Sei';
733
1067
  this.family = base_1.CoinFamily.SEI;
734
- this.explorerUrl = 'https://www.seiscan.app/atlantic-2/txs/';
1068
+ this.explorerUrl = 'https://testnet.seitrace.com/tx/';
1069
+ this.addressPrefix = 'sei';
735
1070
  }
736
1071
  }
737
1072
  class Zeta extends Mainnet {
@@ -739,8 +1074,8 @@ class Zeta extends Mainnet {
739
1074
  super(...arguments);
740
1075
  this.name = 'Zeta';
741
1076
  this.family = base_1.CoinFamily.ZETA;
742
- // TODO(WIN-142): Zeta is still only in testnet update to mainnet url when it's live
743
- this.explorerUrl = 'https://explorer.zetachain.com/cc/tx/';
1077
+ this.explorerUrl = 'https://explorer.zetachain.com/cosmos/tx/';
1078
+ this.addressPrefix = 'zeta';
744
1079
  }
745
1080
  }
746
1081
  class ZetaTestnet extends Testnet {
@@ -748,7 +1083,8 @@ class ZetaTestnet extends Testnet {
748
1083
  super(...arguments);
749
1084
  this.name = 'Testnet Zeta';
750
1085
  this.family = base_1.CoinFamily.ZETA;
751
- this.explorerUrl = 'https://zetachain.explorers.guru/transaction/';
1086
+ this.explorerUrl = 'https://athens.explorer.zetachain.com/cosmos/tx/';
1087
+ this.addressPrefix = 'zeta';
752
1088
  }
753
1089
  }
754
1090
  class Injective extends Mainnet {
@@ -756,7 +1092,8 @@ class Injective extends Mainnet {
756
1092
  super(...arguments);
757
1093
  this.name = 'Injective';
758
1094
  this.family = base_1.CoinFamily.INJECTIVE;
759
- this.explorerUrl = 'https://explorer.injective.network/transaction/';
1095
+ this.explorerUrl = 'https://www.mintscan.io/injective/tx/';
1096
+ this.addressPrefix = 'inj';
760
1097
  }
761
1098
  }
762
1099
  class InjectiveTestnet extends Testnet {
@@ -765,70 +1102,231 @@ class InjectiveTestnet extends Testnet {
765
1102
  this.name = 'InjectiveTestnet';
766
1103
  this.family = base_1.CoinFamily.INJECTIVE;
767
1104
  this.explorerUrl = 'https://testnet.explorer.injective.network/transaction/';
1105
+ this.addressPrefix = 'inj';
1106
+ }
1107
+ }
1108
+ class KavaCosmos extends Mainnet {
1109
+ constructor() {
1110
+ super(...arguments);
1111
+ this.name = 'KavaCosmos';
1112
+ this.family = base_1.CoinFamily.KAVACOSMOS;
1113
+ this.explorerUrl = 'https://www.mintscan.io/kava/tx/';
1114
+ this.addressPrefix = 'kava';
1115
+ this.validatorPrefix = 'kavavaloper';
1116
+ this.denom = 'ukava';
1117
+ this.gasAmount = '5000';
1118
+ this.gasLimit = 200000;
1119
+ this.validDenoms = ['kava', 'ukava'];
1120
+ }
1121
+ }
1122
+ class KavaCosmosTestnet extends Testnet {
1123
+ constructor() {
1124
+ super(...arguments);
1125
+ this.name = 'KavaCosmosTestnet';
1126
+ this.family = base_1.CoinFamily.KAVACOSMOS;
1127
+ this.explorerUrl = 'https://www.mintscan.io/kava-testnet/tx/';
1128
+ this.addressPrefix = 'kava';
1129
+ this.validatorPrefix = 'kavavaloper';
1130
+ this.denom = 'ukava';
1131
+ this.gasAmount = '5000';
1132
+ this.gasLimit = 200000;
1133
+ this.validDenoms = ['kava', 'ukava'];
768
1134
  }
769
1135
  }
770
- class Kava extends Mainnet {
1136
+ class Dydx extends Mainnet {
771
1137
  constructor() {
772
1138
  super(...arguments);
773
- this.name = 'Kava';
774
- this.family = base_1.CoinFamily.KAVA;
775
- this.explorerUrl = 'https://www.mintscan.io/kava/transactions/';
1139
+ this.name = 'Dydx';
1140
+ this.family = base_1.CoinFamily.DYDXCOSMOS;
1141
+ this.explorerUrl = 'https://www.mintscan.io/dydx/tx/';
1142
+ this.addressPrefix = 'dydx';
1143
+ this.validatorPrefix = 'dydxvaloper';
1144
+ this.denom = 'adydx';
1145
+ this.gasAmount = '5000000000000000';
1146
+ this.gasLimit = 200000;
1147
+ this.validDenoms = ['adydx'];
776
1148
  }
777
1149
  }
778
- class KavaTestnet extends Testnet {
1150
+ class DydxTestnet extends Testnet {
779
1151
  constructor() {
780
1152
  super(...arguments);
781
- this.name = 'KavaTestnet';
782
- this.family = base_1.CoinFamily.KAVA;
783
- this.explorerUrl = 'https://testnet.mintscan.io/kava-testnet/txs/';
1153
+ this.name = 'DydxTestnet';
1154
+ this.family = base_1.CoinFamily.DYDXCOSMOS;
1155
+ this.explorerUrl = 'https://www.mintscan.io/dydx-testnet/tx/';
1156
+ this.addressPrefix = 'dydx';
1157
+ this.validatorPrefix = 'dydxvaloper';
1158
+ this.denom = 'adv4tnt';
1159
+ this.gasAmount = '5000000000000000';
1160
+ this.gasLimit = 200000;
1161
+ this.validDenoms = ['adv4tnt'];
784
1162
  }
785
1163
  }
786
1164
  class Ton extends Mainnet {
787
1165
  constructor() {
788
1166
  super(...arguments);
789
- this.name = 'Ton';
1167
+ this.name = 'Gram';
790
1168
  this.family = base_1.CoinFamily.TON;
791
- this.explorerUrl = 'https://https://tonscan.org/';
1169
+ this.explorerUrl = 'https://tonscan.org/tx/';
792
1170
  }
793
1171
  }
794
1172
  class TonTestnet extends Testnet {
795
1173
  constructor() {
796
1174
  super(...arguments);
797
- this.name = 'Testnet Ton';
1175
+ this.name = 'Testnet Gram';
798
1176
  this.family = base_1.CoinFamily.TON;
799
- this.explorerUrl = 'https://https://testnet.tonscan.org/';
1177
+ this.explorerUrl = 'https://testnet.tonscan.org/tx/';
800
1178
  }
801
1179
  }
802
1180
  class Coreum extends Mainnet {
803
1181
  constructor() {
804
1182
  super(...arguments);
805
- this.name = 'Coreum';
1183
+ this.name = 'TX';
806
1184
  this.family = base_1.CoinFamily.COREUM;
807
- this.explorerUrl = 'https://explorer.coreum.com/coreum/transactions/';
1185
+ this.explorerUrl = 'https://explorer.tx.org/tx/transactions/';
1186
+ this.addressPrefix = 'core';
808
1187
  }
809
1188
  }
810
1189
  class CoreumTestnet extends Testnet {
811
1190
  constructor() {
812
1191
  super(...arguments);
813
- this.name = 'CoreumTestnet';
1192
+ this.name = 'Testnet TX';
814
1193
  this.family = base_1.CoinFamily.COREUM;
815
- this.explorerUrl = 'https://explorer.testnet-1.coreum.dev/coreum/transactions/';
1194
+ this.explorerUrl = 'https://explorer.testnet-1.tx.org/tx/transactions/';
1195
+ this.addressPrefix = 'testcore';
816
1196
  }
817
1197
  }
818
- class Bera extends Mainnet {
1198
+ class Rune extends Mainnet {
819
1199
  constructor() {
820
1200
  super(...arguments);
821
- this.name = 'Berachain';
822
- this.family = base_1.CoinFamily.BERA;
823
- this.explorerUrl = undefined;
1201
+ this.name = 'Rune';
1202
+ this.family = base_1.CoinFamily.THOR;
1203
+ this.explorerUrl = 'https://runescan.io/tx/';
1204
+ this.addressPrefix = 'thor';
824
1205
  }
825
1206
  }
826
- class BeraTestnet extends Testnet {
1207
+ class RuneTestNet extends Testnet {
827
1208
  constructor() {
828
1209
  super(...arguments);
829
- this.name = 'BerachainTestnet';
830
- this.family = base_1.CoinFamily.BERA;
831
- this.explorerUrl = undefined;
1210
+ this.name = 'RuneTestNet';
1211
+ this.family = base_1.CoinFamily.THOR;
1212
+ this.explorerUrl = 'https://runescan.io/tx/?network=stagenet';
1213
+ this.addressPrefix = 'sthor';
1214
+ }
1215
+ }
1216
+ class Baby extends Mainnet {
1217
+ constructor() {
1218
+ super(...arguments);
1219
+ this.name = 'Babylon';
1220
+ this.family = base_1.CoinFamily.BABY;
1221
+ this.explorerUrl = 'https://www.mintscan.io/babylon/tx/';
1222
+ this.addressPrefix = 'bbn';
1223
+ }
1224
+ }
1225
+ class BabyTestnet extends Testnet {
1226
+ constructor() {
1227
+ super(...arguments);
1228
+ this.name = 'Testnet Babylon';
1229
+ this.family = base_1.CoinFamily.BABY;
1230
+ this.explorerUrl = 'https://www.mintscan.io/babylon-testnet/tx/';
1231
+ this.addressPrefix = 'bbn';
1232
+ }
1233
+ }
1234
+ class Mantra extends Mainnet {
1235
+ constructor() {
1236
+ super(...arguments);
1237
+ this.name = 'Mantra';
1238
+ this.family = base_1.CoinFamily.MANTRA;
1239
+ this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-1/tx/';
1240
+ this.addressPrefix = 'mantra';
1241
+ this.validatorPrefix = 'mantravaloper';
1242
+ this.denom = 'uom';
1243
+ this.gasAmount = '8000';
1244
+ this.gasLimit = 200000;
1245
+ this.validDenoms = ['om', 'uom'];
1246
+ }
1247
+ }
1248
+ class MantraTestnet extends Testnet {
1249
+ constructor() {
1250
+ super(...arguments);
1251
+ this.name = 'Testnet Mantra';
1252
+ this.family = base_1.CoinFamily.MANTRA;
1253
+ this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-Dukong/tx/';
1254
+ this.addressPrefix = 'mantra';
1255
+ this.validatorPrefix = 'mantravaloper';
1256
+ this.denom = 'uom';
1257
+ this.gasAmount = '8000';
1258
+ this.gasLimit = 200000;
1259
+ this.validDenoms = ['om', 'uom'];
1260
+ }
1261
+ }
1262
+ class Cronos extends Mainnet {
1263
+ constructor() {
1264
+ super(...arguments);
1265
+ this.name = 'Cronos POS';
1266
+ this.family = base_1.CoinFamily.CRONOS;
1267
+ this.explorerUrl = 'https://cronos-pos.org/explorer/tx/';
1268
+ this.addressPrefix = 'cro';
1269
+ }
1270
+ }
1271
+ class CronosTestnet extends Testnet {
1272
+ constructor() {
1273
+ super(...arguments);
1274
+ this.name = 'Testnet Cronos POS';
1275
+ this.family = base_1.CoinFamily.CRONOS;
1276
+ this.explorerUrl = 'https://cronos-pos.org/explorer/croeseid4/tx/';
1277
+ this.addressPrefix = 'tcro';
1278
+ }
1279
+ }
1280
+ class FetchAi extends Mainnet {
1281
+ constructor() {
1282
+ super(...arguments);
1283
+ this.name = 'Fetch';
1284
+ this.family = base_1.CoinFamily.FETCHAI;
1285
+ this.explorerUrl = 'https://www.mintscan.io/fetchai';
1286
+ }
1287
+ }
1288
+ class FetchAiTestnet extends Testnet {
1289
+ constructor() {
1290
+ super(...arguments);
1291
+ this.name = 'Testnet Fetch';
1292
+ this.family = base_1.CoinFamily.FETCHAI;
1293
+ this.explorerUrl = 'https://explore-eridanus-1.fetch.ai/';
1294
+ }
1295
+ }
1296
+ class Initia extends Mainnet {
1297
+ constructor() {
1298
+ super(...arguments);
1299
+ this.name = 'Initia';
1300
+ this.family = base_1.CoinFamily.INITIA;
1301
+ this.explorerUrl = 'https://scan.initia.xyz/interwoven-1/txs/';
1302
+ this.addressPrefix = 'init';
1303
+ }
1304
+ }
1305
+ class InitiaTestnet extends Testnet {
1306
+ constructor() {
1307
+ super(...arguments);
1308
+ this.name = 'Testnet Initia';
1309
+ this.family = base_1.CoinFamily.INITIA;
1310
+ this.explorerUrl = 'https://scan.testnet.initia.xyz/initiation-2/txs/';
1311
+ this.addressPrefix = 'init';
1312
+ }
1313
+ }
1314
+ class Asi extends Mainnet {
1315
+ constructor() {
1316
+ super(...arguments);
1317
+ this.name = 'Fetch Native';
1318
+ this.family = base_1.CoinFamily.ASI;
1319
+ this.explorerUrl = 'https://companion.fetch.ai/fetchhub-4/transactions/';
1320
+ this.addressPrefix = 'fetch';
1321
+ }
1322
+ }
1323
+ class AsiTestnet extends Testnet {
1324
+ constructor() {
1325
+ super(...arguments);
1326
+ this.name = 'Testnet Fetch Native';
1327
+ this.family = base_1.CoinFamily.ASI;
1328
+ this.explorerUrl = 'https://companion.fetch.ai/dorado-1/transactions/';
1329
+ this.addressPrefix = 'fetch';
832
1330
  }
833
1331
  }
834
1332
  class Islm extends Mainnet {
@@ -837,6 +1335,7 @@ class Islm extends Mainnet {
837
1335
  this.name = 'Haqq';
838
1336
  this.family = base_1.CoinFamily.ISLM;
839
1337
  this.explorerUrl = 'https://ping.pub/haqq/tx/';
1338
+ this.addressPrefix = 'haqq';
840
1339
  }
841
1340
  }
842
1341
  class IslmTestnet extends Testnet {
@@ -845,6 +1344,7 @@ class IslmTestnet extends Testnet {
845
1344
  this.name = 'HaqqTestnet';
846
1345
  this.family = base_1.CoinFamily.ISLM;
847
1346
  this.explorerUrl = 'https://testnet.ping.pub/haqq/tx/';
1347
+ this.addressPrefix = 'haqq';
848
1348
  }
849
1349
  }
850
1350
  class Stx extends Mainnet {
@@ -852,9 +1352,10 @@ class Stx extends Mainnet {
852
1352
  super(...arguments);
853
1353
  this.name = 'Stx';
854
1354
  this.family = base_1.CoinFamily.STX;
855
- this.explorerUrl = 'https://explorer.stacks.co/txid/';
1355
+ this.explorerUrl = 'https://explorer.hiro.so/txid/';
856
1356
  this.sendmanymemoContractAddress = 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE';
857
1357
  this.stakingContractAddress = 'SP000000000000000000002Q6VF78';
1358
+ this.sbtcWithdrawalContractAddress = 'SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4';
858
1359
  }
859
1360
  }
860
1361
  class StxTestnet extends Testnet {
@@ -862,9 +1363,10 @@ class StxTestnet extends Testnet {
862
1363
  super(...arguments);
863
1364
  this.name = 'StxTestnet';
864
1365
  this.family = base_1.CoinFamily.STX;
865
- this.explorerUrl = 'https://explorer.stacks.co/txid/?chain=testnet';
1366
+ this.explorerUrl = 'https://explorer.hiro.so/txid/?chain=testnet';
866
1367
  this.sendmanymemoContractAddress = 'ST3F1X4QGV2SM8XD96X45M6RTQXKA1PZJZZCQAB4B';
867
1368
  this.stakingContractAddress = 'ST000000000000000000002AMW42H';
1369
+ this.sbtcWithdrawalContractAddress = 'SN69P7RZRKK8ERQCCABHT2JWKB2S4DHH9H74231T';
868
1370
  }
869
1371
  }
870
1372
  class SUSD extends Mainnet {
@@ -899,11 +1401,33 @@ class Fiat extends Mainnet {
899
1401
  this.explorerUrl = undefined;
900
1402
  }
901
1403
  }
1404
+ class Bittensor extends Mainnet {
1405
+ constructor() {
1406
+ super(...arguments);
1407
+ this.name = 'Tao';
1408
+ this.family = base_1.CoinFamily.TAO;
1409
+ this.explorerUrl = 'https://taostats.io/extrinsic/';
1410
+ }
1411
+ }
1412
+ class BittensorTestnet extends Testnet {
1413
+ constructor() {
1414
+ super(...arguments);
1415
+ this.name = 'Testnet Tao';
1416
+ this.family = base_1.CoinFamily.TAO;
1417
+ this.explorerUrl = 'https://explorer.finney.opentensor.ai/#/';
1418
+ this.specName = 'node-subtensor';
1419
+ this.genesisHash = '0x8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105';
1420
+ this.specVersion = 224;
1421
+ this.chainName = 'bittensor';
1422
+ this.txVersion = 1;
1423
+ }
1424
+ }
902
1425
  class Trx extends Mainnet {
903
1426
  constructor() {
904
1427
  super(...arguments);
905
1428
  this.name = 'Trx';
906
1429
  this.family = base_1.CoinFamily.TRX;
1430
+ this.accountExplorerUrl = 'https://tronscan.org/#/address/';
907
1431
  this.explorerUrl = 'https://tronscan.org/#/transaction/';
908
1432
  this.maxFeeLimit = '5000000000';
909
1433
  this.contractCallFeeLimit = '100000000';
@@ -914,6 +1438,7 @@ class TrxTestnet extends Testnet {
914
1438
  super(...arguments);
915
1439
  this.name = 'TrxTestnet';
916
1440
  this.family = base_1.CoinFamily.TRX;
1441
+ this.accountExplorerUrl = 'https://shasta.tronscan.org/#/address/';
917
1442
  this.explorerUrl = 'https://shasta.tronscan.org/#/transaction/';
918
1443
  this.maxFeeLimit = '5000000000';
919
1444
  this.contractCallFeeLimit = '100000000';
@@ -932,7 +1457,7 @@ class XrpTestnet extends Testnet {
932
1457
  super(...arguments);
933
1458
  this.name = 'XrpTestnet';
934
1459
  this.family = base_1.CoinFamily.XRP;
935
- this.explorerUrl = 'https://test.bithomp.com/explorer/';
1460
+ this.explorerUrl = 'https://test.xrplexplorer.com/explorer/';
936
1461
  }
937
1462
  }
938
1463
  class Xtz extends Mainnet {
@@ -941,6 +1466,7 @@ class Xtz extends Mainnet {
941
1466
  this.name = 'Xtz';
942
1467
  this.family = base_1.CoinFamily.XTZ;
943
1468
  this.explorerUrl = 'https://tzstats.com/';
1469
+ this.accountExplorerUrl = 'https://tzstats.com/';
944
1470
  }
945
1471
  }
946
1472
  class XtzTestnet extends Testnet {
@@ -948,7 +1474,8 @@ class XtzTestnet extends Testnet {
948
1474
  super(...arguments);
949
1475
  this.name = 'XtzTestnet';
950
1476
  this.family = base_1.CoinFamily.XTZ;
951
- this.explorerUrl = 'https://mumbai.tzstats.com/';
1477
+ this.explorerUrl = 'https://ghostnet.tzkt.io/';
1478
+ this.accountExplorerUrl = 'https://ghostnet.tzkt.io/';
952
1479
  }
953
1480
  }
954
1481
  class ZCash extends Mainnet {
@@ -957,7 +1484,7 @@ class ZCash extends Mainnet {
957
1484
  this.name = 'ZCash';
958
1485
  this.family = base_1.CoinFamily.ZEC;
959
1486
  this.utxolibName = 'zcash';
960
- this.explorerUrl = 'https://chain.so/tx/ZEC/';
1487
+ this.explorerUrl = 'https://mainnet.zcashexplorer.app/transactions/';
961
1488
  }
962
1489
  }
963
1490
  class ZCashTestnet extends Testnet {
@@ -966,7 +1493,7 @@ class ZCashTestnet extends Testnet {
966
1493
  this.name = 'ZCashTestnet';
967
1494
  this.family = base_1.CoinFamily.ZEC;
968
1495
  this.utxolibName = 'zcashTest';
969
- this.explorerUrl = 'https://chain.so/tx/ZECTEST/';
1496
+ this.explorerUrl = 'https://testnet.zcashexplorer.app/transactions/';
970
1497
  }
971
1498
  }
972
1499
  class Near extends Mainnet {
@@ -974,7 +1501,8 @@ class Near extends Mainnet {
974
1501
  super(...arguments);
975
1502
  this.name = 'Near';
976
1503
  this.family = base_1.CoinFamily.NEAR;
977
- this.explorerUrl = 'https://explorer.near.org/transactions/';
1504
+ this.explorerUrl = 'https://nearblocks.io/txns/';
1505
+ this.accountExplorerUrl = 'https://nearblocks.io/address/';
978
1506
  this.feeReserve = '50000000000000000000000';
979
1507
  this.storageReserve = '2000000000000000000000'; // feeReserve + storageReserve is minimum account balance for a NEAR wallet https://docs.near.org/integrator/faq#is-there-a-minimum-account-balance
980
1508
  }
@@ -984,7 +1512,8 @@ class NearTestnet extends Testnet {
984
1512
  super(...arguments);
985
1513
  this.name = 'NearTestnet';
986
1514
  this.family = base_1.CoinFamily.NEAR;
987
- this.explorerUrl = 'https://explorer.testnet.near.org/transactions/';
1515
+ this.explorerUrl = 'https://testnet.nearblocks.io/txns/';
1516
+ this.accountExplorerUrl = 'https://testnet.nearblocks.io/address/';
988
1517
  this.feeReserve = '50000000000000000000000';
989
1518
  this.storageReserve = '2000000000000000000000'; // feeReserve + storageReserve is minimum account balance for a NEAR wallet https://docs.near.org/integrator/faq#is-there-a-minimum-account-balance
990
1519
  }
@@ -1001,9 +1530,11 @@ class Polygon extends Mainnet {
1001
1530
  this.forwarderImplementationAddress = '0x5397d0869aba0d55e96d5716d383f6e1d8695ed7';
1002
1531
  this.walletFactoryAddress = '0xa7198f48c58e91f01317e70cd24c5cce475c1555';
1003
1532
  this.walletImplementationAddress = '0xe5dcdc13b628c2df813db1080367e929c1507ca0';
1004
- this.batcherContractAddress = '0x7adc9b3d7521710321bec7dd6897d337e53c2493';
1533
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1005
1534
  this.nativeCoinOperationHashPrefix = 'POLYGON';
1006
1535
  this.tokenOperationHashPrefix = 'POLYGON-ERC20';
1536
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1537
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1007
1538
  }
1008
1539
  }
1009
1540
  class PolygonTestnet extends Testnet {
@@ -1011,16 +1542,18 @@ class PolygonTestnet extends Testnet {
1011
1542
  super(...arguments);
1012
1543
  this.name = 'PolygonTestnet';
1013
1544
  this.family = base_1.CoinFamily.POLYGON;
1014
- this.explorerUrl = 'https://mumbai.polygonscan.com/tx/';
1015
- this.accountExplorerUrl = 'https://mumbai.polygonscan.com/address/';
1016
- this.chainId = 80001;
1017
- this.forwarderFactoryAddress = '0x7d10cfdcb763375fb5f0a0e9101f490f0bf1b43a';
1018
- this.forwarderImplementationAddress = '0xaa2216d72d7c149dfe4c3dd2154cd00994216506';
1019
- this.walletFactoryAddress = '0xe37c07faec87be075ce4002b5fedbde00a4fe9d5';
1020
- this.walletImplementationAddress = '0x11f8d70a4ee9d0962bb1160d776d4a996cfdff40';
1021
- this.batcherContractAddress = '0xcdf01a31ea2a1d62951aac3a5743c4416f9da3fb';
1545
+ this.explorerUrl = 'https://amoy.polygonscan.com/tx/';
1546
+ this.accountExplorerUrl = 'https://amoy.polygonscan.com/address/';
1547
+ this.chainId = 80002;
1548
+ this.forwarderFactoryAddress = '0x23223fd7cfc5f34b20f38ebb9a489e1ff3c084d1';
1549
+ this.forwarderImplementationAddress = '0xd4c24325b5ef514fbb1ecc76a9bb4dcb57a8341e';
1550
+ this.walletFactoryAddress = '0xe9c16033e01bf9f94bf9f99fc0fefcfb8b124992';
1551
+ this.walletImplementationAddress = '0xf8360c213e4f44cce03e48cb9281254de2a7a566';
1552
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1022
1553
  this.nativeCoinOperationHashPrefix = 'POLYGON';
1023
1554
  this.tokenOperationHashPrefix = 'POLYGON-ERC20';
1555
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1556
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1024
1557
  }
1025
1558
  }
1026
1559
  class Optimism extends Mainnet {
@@ -1031,8 +1564,15 @@ class Optimism extends Mainnet {
1031
1564
  this.explorerUrl = 'https://optimistic.etherscan.io/tx/';
1032
1565
  this.accountExplorerUrl = 'https://optimistic.etherscan.io/address/';
1033
1566
  this.chainId = 10;
1034
- this.nativeCoinOperationHashPrefix = 'OPETH';
1035
- this.tokenOperationHashPrefix = 'OPETH-ERC20';
1567
+ this.nativeCoinOperationHashPrefix = '10';
1568
+ this.tokenOperationHashPrefix = '10-ERC20';
1569
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1570
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1571
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1572
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1573
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1574
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1575
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
1036
1576
  }
1037
1577
  }
1038
1578
  class OptimismTestnet extends Testnet {
@@ -1043,31 +1583,1598 @@ class OptimismTestnet extends Testnet {
1043
1583
  this.explorerUrl = 'https://sepolia-optimism.etherscan.io/tx/';
1044
1584
  this.accountExplorerUrl = 'https://sepolia-optimism.etherscan.io/address/';
1045
1585
  this.chainId = 11155420;
1046
- this.nativeCoinOperationHashPrefix = 'OPETH';
1047
- this.tokenOperationHashPrefix = 'OPETH-ERC20';
1586
+ this.nativeCoinOperationHashPrefix = '11155420';
1587
+ this.tokenOperationHashPrefix = '11155420-ERC20';
1588
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1589
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1590
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1591
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1592
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1593
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1594
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
1595
+ }
1596
+ }
1597
+ class ZkSync extends Mainnet {
1598
+ constructor() {
1599
+ super(...arguments);
1600
+ this.name = 'ZkSync';
1601
+ this.family = base_1.CoinFamily.ZKETH;
1602
+ this.explorerUrl = 'https://explorer.zksync.io/tx/';
1603
+ this.accountExplorerUrl = 'https://explorer.zksync.io/address/';
1604
+ this.chainId = 324;
1605
+ this.nativeCoinOperationHashPrefix = '324';
1606
+ this.tokenOperationHashPrefix = '324-ERC20';
1607
+ }
1608
+ }
1609
+ class ZkSyncTestnet extends Testnet {
1610
+ constructor() {
1611
+ super(...arguments);
1612
+ this.name = 'ZkSyncTestnet';
1613
+ this.family = base_1.CoinFamily.ZKETH;
1614
+ this.explorerUrl = 'https://sepolia.explorer.zksync.io/tx/';
1615
+ this.accountExplorerUrl = 'https://sepolia.explorer.zksync.io/address/';
1616
+ this.chainId = 300;
1617
+ this.nativeCoinOperationHashPrefix = '300';
1618
+ this.tokenOperationHashPrefix = '300-ERC20';
1619
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
1620
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
1621
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1622
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1623
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
1624
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
1625
+ }
1626
+ }
1627
+ class ZkSyncEra extends Mainnet {
1628
+ constructor() {
1629
+ super(...arguments);
1630
+ this.name = 'ZkSyncEra';
1631
+ this.family = base_1.CoinFamily.ZKSYNCERA;
1632
+ this.explorerUrl = 'https://explorer.zksync.io/tx/';
1633
+ this.accountExplorerUrl = 'https://explorer.zksync.io/address/';
1634
+ this.chainId = 324;
1635
+ this.nativeCoinOperationHashPrefix = '324';
1636
+ this.tokenOperationHashPrefix = '324-ERC20';
1637
+ }
1638
+ }
1639
+ class ZkSyncEraTestnet extends Testnet {
1640
+ constructor() {
1641
+ super(...arguments);
1642
+ this.name = 'ZkSyncEraTestnet';
1643
+ this.family = base_1.CoinFamily.ZKSYNCERA;
1644
+ this.explorerUrl = 'https://sepolia.explorer.zksync.io/tx/';
1645
+ this.accountExplorerUrl = 'https://sepolia.explorer.zksync.io/address/';
1646
+ this.chainId = 300;
1647
+ this.nativeCoinOperationHashPrefix = '300';
1648
+ this.tokenOperationHashPrefix = '300-ERC20';
1649
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
1650
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
1651
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1652
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1653
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
1654
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
1655
+ }
1656
+ }
1657
+ class Berachain extends Mainnet {
1658
+ constructor() {
1659
+ super(...arguments);
1660
+ this.name = 'Bera';
1661
+ this.family = base_1.CoinFamily.BERA;
1662
+ this.explorerUrl = 'https://berascan.com/tx/';
1663
+ this.accountExplorerUrl = 'https://berascan.com/address/';
1664
+ this.chainId = 80094;
1665
+ this.nativeCoinOperationHashPrefix = '80094';
1666
+ this.tokenOperationHashPrefix = '80094-ERC20';
1667
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1668
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1669
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1670
+ }
1671
+ }
1672
+ class BerachainTestnet extends Testnet {
1673
+ constructor() {
1674
+ super(...arguments);
1675
+ this.name = 'BeraTestnet';
1676
+ this.family = base_1.CoinFamily.BERA;
1677
+ this.explorerUrl = 'https://testnet.berascan.com/tx/';
1678
+ this.accountExplorerUrl = 'https://testnet.berascan.com/address/';
1679
+ this.chainId = 80069;
1680
+ this.nativeCoinOperationHashPrefix = '80069';
1681
+ this.tokenOperationHashPrefix = '80069-ERC20';
1682
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1683
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1684
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1685
+ }
1686
+ }
1687
+ class Oas extends Mainnet {
1688
+ constructor() {
1689
+ super(...arguments);
1690
+ this.name = 'Oas';
1691
+ this.family = base_1.CoinFamily.OAS;
1692
+ this.explorerUrl = 'https://explorer.oasys.games/tx/';
1693
+ this.accountExplorerUrl = 'https://explorer.oasys.games/address/';
1694
+ this.chainId = 248;
1695
+ this.nativeCoinOperationHashPrefix = '248';
1696
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1697
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1698
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1699
+ }
1700
+ }
1701
+ class OasTestnet extends Testnet {
1702
+ constructor() {
1703
+ super(...arguments);
1704
+ this.name = 'OasTestnet';
1705
+ this.family = base_1.CoinFamily.OAS;
1706
+ this.explorerUrl = 'https://explorer.testnet.oasys.games/tx/';
1707
+ this.accountExplorerUrl = 'https://explorer.testnet.oasys.games/address/';
1708
+ this.chainId = 9372;
1709
+ this.nativeCoinOperationHashPrefix = '9372';
1710
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1711
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1712
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1713
+ }
1714
+ }
1715
+ class Coredao extends Mainnet {
1716
+ constructor() {
1717
+ super(...arguments);
1718
+ this.name = 'Coredao';
1719
+ this.family = base_1.CoinFamily.COREDAO;
1720
+ this.explorerUrl = 'https://scan.coredao.org/tx/';
1721
+ this.accountExplorerUrl = 'https://scan.coredao.org/address/';
1722
+ this.chainId = 1116;
1723
+ this.nativeCoinOperationHashPrefix = '1116';
1724
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
1725
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1726
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1727
+ }
1728
+ }
1729
+ class CoredaoTestnet extends Testnet {
1730
+ constructor() {
1731
+ super(...arguments);
1732
+ this.name = 'CoredaoTestnet';
1733
+ this.family = base_1.CoinFamily.COREDAO;
1734
+ this.explorerUrl = 'https://scan.test2.btcs.network/tx/';
1735
+ this.accountExplorerUrl = 'https://scan.test2.btcs.network/address/';
1736
+ this.chainId = 1114;
1737
+ this.nativeCoinOperationHashPrefix = '1114';
1738
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
1739
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1740
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1741
+ }
1742
+ }
1743
+ class IP extends Mainnet {
1744
+ constructor() {
1745
+ super(...arguments);
1746
+ this.name = 'Story';
1747
+ this.family = base_1.CoinFamily.IP;
1748
+ this.explorerUrl = 'https://www.storyscan.io/tx/';
1749
+ this.accountExplorerUrl = 'https://www.storyscan.io/address/';
1750
+ this.chainId = 1514;
1751
+ this.nativeCoinOperationHashPrefix = '1514';
1752
+ }
1753
+ }
1754
+ class IPTestnet extends Testnet {
1755
+ constructor() {
1756
+ super(...arguments);
1757
+ this.name = 'StoryTestnet';
1758
+ this.family = base_1.CoinFamily.IP;
1759
+ this.explorerUrl = 'https://aeneid.storyscan.io/tx/';
1760
+ this.accountExplorerUrl = 'https://aeneid.storyscan.io/address/';
1761
+ this.chainId = 1315;
1762
+ this.nativeCoinOperationHashPrefix = '1315';
1763
+ }
1764
+ }
1765
+ class ApeChain extends Mainnet {
1766
+ constructor() {
1767
+ super(...arguments);
1768
+ this.name = 'ApeChain';
1769
+ this.family = base_1.CoinFamily.APECHAIN;
1770
+ this.explorerUrl = 'https://apescan.io/tx/';
1771
+ this.accountExplorerUrl = 'https://apescan.io/address/';
1772
+ this.chainId = 33139;
1773
+ this.nativeCoinOperationHashPrefix = '33139';
1774
+ }
1775
+ }
1776
+ class ApeChainTestnet extends Testnet {
1777
+ constructor() {
1778
+ super(...arguments);
1779
+ this.name = 'ApeChainTestnet';
1780
+ this.family = base_1.CoinFamily.APECHAIN;
1781
+ this.explorerUrl = 'https://curtis.apescan.io/tx/';
1782
+ this.accountExplorerUrl = 'https://curtis.apescan.io/address/';
1783
+ this.chainId = 33111;
1784
+ this.nativeCoinOperationHashPrefix = '33111';
1785
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1786
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1787
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1788
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1789
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1790
+ }
1791
+ }
1792
+ class AbstractEth extends Mainnet {
1793
+ constructor() {
1794
+ super(...arguments);
1795
+ this.name = 'Abstract Ethereum';
1796
+ this.family = base_1.CoinFamily.ABSTRACTETH;
1797
+ this.explorerUrl = 'https://abscan.org/tx/';
1798
+ this.accountExplorerUrl = 'https://abscan.org/address/';
1799
+ this.chainId = 2741;
1800
+ this.nativeCoinOperationHashPrefix = '2741';
1801
+ }
1802
+ }
1803
+ class AbstractEthTestnet extends Testnet {
1804
+ constructor() {
1805
+ super(...arguments);
1806
+ this.name = 'Testnet Abstract Ethereum';
1807
+ this.family = base_1.CoinFamily.ABSTRACTETH;
1808
+ this.explorerUrl = 'https://sepolia.abscan.org/tx/';
1809
+ this.accountExplorerUrl = 'https://sepolia.abscan.org/address/';
1810
+ this.chainId = 11124;
1811
+ this.nativeCoinOperationHashPrefix = '11124';
1812
+ }
1813
+ }
1814
+ class Pharos extends Mainnet {
1815
+ constructor() {
1816
+ super(...arguments);
1817
+ this.name = 'Pharos';
1818
+ this.family = base_1.CoinFamily.PHRS;
1819
+ this.explorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
1820
+ this.accountExplorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
1821
+ this.chainId = 688688; // TODO: WIN-5787 Add mainnet id when available
1822
+ this.nativeCoinOperationHashPrefix = '688688';
1823
+ }
1824
+ }
1825
+ class PharosTestnet extends Testnet {
1826
+ constructor() {
1827
+ super(...arguments);
1828
+ this.name = 'PharosTestnet';
1829
+ this.family = base_1.CoinFamily.PHRS;
1830
+ this.explorerUrl = 'https://atlantic.pharosscan.xyz/tx/';
1831
+ this.accountExplorerUrl = 'https://atlantic.pharosscan.xyz/address/';
1832
+ this.chainId = 688689;
1833
+ this.nativeCoinOperationHashPrefix = '688689';
1834
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1835
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1836
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1837
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1838
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1839
+ }
1840
+ }
1841
+ class Creditcoin extends Mainnet {
1842
+ constructor() {
1843
+ super(...arguments);
1844
+ this.name = 'Creditcoin';
1845
+ this.family = base_1.CoinFamily.CTC;
1846
+ this.explorerUrl = 'https://creditcoin.blockscout.com/tx/';
1847
+ this.accountExplorerUrl = 'https://creditcoin.blockscout.com/address/';
1848
+ this.chainId = 102030;
1849
+ this.nativeCoinOperationHashPrefix = '102030';
1850
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1851
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1852
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1853
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1854
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1855
+ }
1856
+ }
1857
+ class Plasma extends Mainnet {
1858
+ constructor() {
1859
+ super(...arguments);
1860
+ this.name = 'Plasma';
1861
+ this.family = base_1.CoinFamily.XPL;
1862
+ this.explorerUrl = 'https://plasmascan.to/tx/';
1863
+ this.accountExplorerUrl = 'https://plasmascan.to/address/';
1864
+ this.chainId = 9745;
1865
+ this.nativeCoinOperationHashPrefix = '9745';
1866
+ }
1867
+ }
1868
+ class PlasmaTestnet extends Testnet {
1869
+ constructor() {
1870
+ super(...arguments);
1871
+ this.name = 'PlasmaTestnet';
1872
+ this.family = base_1.CoinFamily.XPL;
1873
+ this.explorerUrl = 'https://testnet.plasmascan.to/tx/';
1874
+ this.accountExplorerUrl = 'https://testnet.plasmascan.to/address/';
1875
+ this.chainId = 9746;
1876
+ this.nativeCoinOperationHashPrefix = '9746';
1877
+ }
1878
+ }
1879
+ class HypeEVMTestnet extends Testnet {
1880
+ constructor() {
1881
+ super(...arguments);
1882
+ this.name = 'HyperliquidEVMTestnet';
1883
+ this.family = base_1.CoinFamily.HYPEEVM;
1884
+ this.explorerUrl = 'https://testnet.purrsec.com/tx/';
1885
+ this.accountExplorerUrl = 'https://testnet.purrsec.com/address/';
1886
+ this.chainId = 998;
1887
+ this.nativeCoinOperationHashPrefix = '998';
1888
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1889
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1890
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1891
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1892
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1893
+ }
1894
+ }
1895
+ class HypeEVM extends Mainnet {
1896
+ constructor() {
1897
+ super(...arguments);
1898
+ this.name = 'HyperliquidEVM';
1899
+ this.family = base_1.CoinFamily.HYPEEVM;
1900
+ this.explorerUrl = 'https://hyperevmscan.io/tx/';
1901
+ this.accountExplorerUrl = 'https://hyperevmscan.io/address/';
1902
+ this.chainId = 999;
1903
+ this.nativeCoinOperationHashPrefix = '999';
1904
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1905
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1906
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1907
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1908
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1909
+ }
1910
+ }
1911
+ class Hyperliquid extends Mainnet {
1912
+ constructor() {
1913
+ super(...arguments);
1914
+ this.name = 'Hyperliquid';
1915
+ this.family = base_1.CoinFamily.HYPERLIQUID;
1916
+ this.explorerUrl = 'https://app.hyperliquid.xyz/explorer';
1917
+ this.accountExplorerUrl = 'https://app.hyperliquid.xyz/explorer';
1918
+ }
1919
+ }
1920
+ class HyperliquidTestnet extends Testnet {
1921
+ constructor() {
1922
+ super(...arguments);
1923
+ this.name = 'HyperliquidTestnet';
1924
+ this.family = base_1.CoinFamily.HYPERLIQUID;
1925
+ this.explorerUrl = 'https://app.hyperliquid-testnet.xyz/explorer';
1926
+ this.accountExplorerUrl = 'https://app.hyperliquid-testnet.xyz/explorer';
1927
+ }
1928
+ }
1929
+ class KavaEVMTestnet extends Testnet {
1930
+ constructor() {
1931
+ super(...arguments);
1932
+ this.name = 'KavaEVMTestnet';
1933
+ this.family = base_1.CoinFamily.KAVAEVM;
1934
+ this.explorerUrl = 'https://testnet.kavascan.com/tx/';
1935
+ this.accountExplorerUrl = 'https://testnet.kavascan.com/address/';
1936
+ this.chainId = 2221;
1937
+ this.nativeCoinOperationHashPrefix = '2221';
1938
+ }
1939
+ }
1940
+ class KavaEVM extends Mainnet {
1941
+ constructor() {
1942
+ super(...arguments);
1943
+ this.name = 'KavaEVM';
1944
+ this.family = base_1.CoinFamily.KAVAEVM;
1945
+ this.explorerUrl = 'https://kavascan.com/tx/';
1946
+ this.accountExplorerUrl = 'https://kavascan.com/address/';
1947
+ this.chainId = 2222;
1948
+ this.nativeCoinOperationHashPrefix = '2222';
1949
+ }
1950
+ }
1951
+ class LineaETH extends Mainnet {
1952
+ constructor() {
1953
+ super(...arguments);
1954
+ this.name = 'Linea Ethereum Mainnet';
1955
+ this.family = base_1.CoinFamily.LINEAETH;
1956
+ this.explorerUrl = 'https://lineascan.build/tx/';
1957
+ this.accountExplorerUrl = 'https://lineascan.build/address/';
1958
+ this.chainId = 59144;
1959
+ this.nativeCoinOperationHashPrefix = '59144';
1960
+ }
1961
+ }
1962
+ class LineaETHTestnet extends Testnet {
1963
+ constructor() {
1964
+ super(...arguments);
1965
+ this.name = 'Linea Ethereum Testnet';
1966
+ this.family = base_1.CoinFamily.LINEAETH;
1967
+ this.explorerUrl = 'https://sepolia.lineascan.build/tx/';
1968
+ this.accountExplorerUrl = 'https://sepolia.lineascan.build/address/';
1969
+ this.chainId = 59141;
1970
+ this.nativeCoinOperationHashPrefix = '59141';
1971
+ }
1972
+ }
1973
+ class FluentETH extends Mainnet {
1974
+ constructor() {
1975
+ super(...arguments);
1976
+ this.name = 'Fluent Ethereum';
1977
+ this.family = base_1.CoinFamily.FLUENTETH;
1978
+ this.explorerUrl = 'https://fluentscan.xyz/tx/';
1979
+ this.accountExplorerUrl = 'https://fluentscan.xyz/address/';
1980
+ this.chainId = 25363;
1981
+ this.nativeCoinOperationHashPrefix = '25363';
1982
+ }
1983
+ }
1984
+ class FluentETHTestnet extends Testnet {
1985
+ constructor() {
1986
+ super(...arguments);
1987
+ this.name = 'Testnet Fluent Ethereum';
1988
+ this.family = base_1.CoinFamily.FLUENTETH;
1989
+ this.explorerUrl = 'https://testnet.fluentscan.xyz/tx/';
1990
+ this.accountExplorerUrl = 'https://testnet.fluentscan.xyz/address/';
1991
+ this.chainId = 20994;
1992
+ this.nativeCoinOperationHashPrefix = '20994';
1993
+ }
1994
+ }
1995
+ class Mantle extends Mainnet {
1996
+ constructor() {
1997
+ super(...arguments);
1998
+ this.name = 'Mantle Native';
1999
+ this.family = base_1.CoinFamily.MANTLE;
2000
+ this.explorerUrl = 'https://mantlescan.xyz/tx/';
2001
+ this.accountExplorerUrl = 'https://mantlescan.xyz/address/';
2002
+ this.chainId = 5000;
2003
+ this.nativeCoinOperationHashPrefix = '5000';
2004
+ }
2005
+ }
2006
+ class MantleTestnet extends Testnet {
2007
+ constructor() {
2008
+ super(...arguments);
2009
+ this.name = 'Testnet Mantle Native';
2010
+ this.family = base_1.CoinFamily.MANTLE;
2011
+ this.explorerUrl = 'https://sepolia.mantlescan.xyz/tx/';
2012
+ this.accountExplorerUrl = 'https://sepolia.mantlescan.xyz/address/';
2013
+ this.chainId = 5003;
2014
+ this.nativeCoinOperationHashPrefix = '5003';
2015
+ }
2016
+ }
2017
+ class JovayETH extends Mainnet {
2018
+ constructor() {
2019
+ super(...arguments);
2020
+ this.name = 'Jovay Ethereum';
2021
+ this.family = base_1.CoinFamily.JOVAYETH;
2022
+ this.explorerUrl = 'https://explorer.jovay.io/tx/';
2023
+ this.accountExplorerUrl = 'https://explorer.jovay.io/address/';
2024
+ this.chainId = 5734951;
2025
+ this.nativeCoinOperationHashPrefix = '5734951';
2026
+ }
2027
+ }
2028
+ class JovayETHTestnet extends Testnet {
2029
+ constructor() {
2030
+ super(...arguments);
2031
+ this.name = 'Testnet Jovay Ethereum';
2032
+ this.family = base_1.CoinFamily.JOVAYETH;
2033
+ this.explorerUrl = 'https://sepolia-explorer.jovay.io/tx/';
2034
+ this.accountExplorerUrl = 'https://sepolia-explorer.jovay.io/address/';
2035
+ this.chainId = 2019775;
2036
+ this.nativeCoinOperationHashPrefix = '2019775';
2037
+ }
2038
+ }
2039
+ class Unieth extends Mainnet {
2040
+ constructor() {
2041
+ super(...arguments);
2042
+ this.name = 'Unichain';
2043
+ this.family = base_1.CoinFamily.UNIETH;
2044
+ this.explorerUrl = 'https://uniscan.xyz/tx/';
2045
+ this.accountExplorerUrl = 'https://uniscan.xyz/address/';
2046
+ this.chainId = 130;
2047
+ this.nativeCoinOperationHashPrefix = '130';
2048
+ }
2049
+ }
2050
+ class UniethTestnet extends Testnet {
2051
+ constructor() {
2052
+ super(...arguments);
2053
+ this.name = 'Testnet Unichain';
2054
+ this.family = base_1.CoinFamily.UNIETH;
2055
+ this.explorerUrl = 'https://sepolia.uniscan.xyz/tx/';
2056
+ this.accountExplorerUrl = 'https://sepolia.uniscan.xyz/address/';
2057
+ this.chainId = 1301;
2058
+ this.nativeCoinOperationHashPrefix = '1301';
2059
+ }
2060
+ }
2061
+ class Hppeth extends Mainnet {
2062
+ constructor() {
2063
+ super(...arguments);
2064
+ this.name = 'House Party Protocol';
2065
+ this.family = base_1.CoinFamily.HPPETH;
2066
+ this.explorerUrl = 'https://explorer.hpp.io/tx/';
2067
+ this.accountExplorerUrl = 'https://explorer.hpp.io/address/';
2068
+ this.chainId = 190415;
2069
+ this.nativeCoinOperationHashPrefix = '190415';
2070
+ }
2071
+ }
2072
+ class HppethTestnet extends Testnet {
2073
+ constructor() {
2074
+ super(...arguments);
2075
+ this.name = 'Testnet House Party Protocol';
2076
+ this.family = base_1.CoinFamily.HPPETH;
2077
+ this.explorerUrl = 'https://sepolia-explorer.hpp.io/tx/';
2078
+ this.accountExplorerUrl = 'https://sepolia-explorer.hpp.io/address/';
2079
+ this.chainId = 181228;
2080
+ this.nativeCoinOperationHashPrefix = '181228';
2081
+ }
2082
+ }
2083
+ class HoodethTestnet extends Testnet {
2084
+ constructor() {
2085
+ super(...arguments);
2086
+ this.name = 'Testnet Robinhood Chain';
2087
+ this.family = base_1.CoinFamily.HOODETH;
2088
+ this.explorerUrl = 'https://explorer.testnet.chain.robinhood.com/tx/';
2089
+ this.accountExplorerUrl = 'https://explorer.testnet.chain.robinhood.com/address/';
2090
+ this.chainId = 46630;
2091
+ this.nativeCoinOperationHashPrefix = '46630';
2092
+ }
2093
+ }
2094
+ class Hoodeth extends Mainnet {
2095
+ constructor() {
2096
+ super(...arguments);
2097
+ this.name = 'Robinhood Chain';
2098
+ this.family = base_1.CoinFamily.HOODETH;
2099
+ this.explorerUrl = 'https://8crv4vmq6tiu1yqr.blockscout.com/tx/';
2100
+ this.accountExplorerUrl = 'https://8crv4vmq6tiu1yqr.blockscout.com/address/';
2101
+ this.chainId = 4663;
2102
+ this.nativeCoinOperationHashPrefix = '4663';
2103
+ }
2104
+ }
2105
+ class HumanityProtocol extends Mainnet {
2106
+ constructor() {
2107
+ super(...arguments);
2108
+ this.name = 'Humanity Protocol';
2109
+ this.family = base_1.CoinFamily.H;
2110
+ this.explorerUrl = 'https://explorer.humanity.org/mainnet/txns/';
2111
+ this.accountExplorerUrl = 'https://explorer.humanity.org/mainnet/accounts/';
2112
+ this.chainId = 6985385;
2113
+ this.nativeCoinOperationHashPrefix = '6985385';
2114
+ }
2115
+ }
2116
+ class HumanityProtocolTestnet extends Testnet {
2117
+ constructor() {
2118
+ super(...arguments);
2119
+ this.name = 'Testnet Humanity Protocol';
2120
+ this.family = base_1.CoinFamily.H;
2121
+ this.explorerUrl = 'https://explorer.humanity.org/testnet/txns/';
2122
+ this.accountExplorerUrl = 'https://explorer.humanity.org/testnet/accounts/';
2123
+ this.chainId = 7080969;
2124
+ this.nativeCoinOperationHashPrefix = '7080969';
2125
+ }
2126
+ }
2127
+ class Xlayer extends Mainnet {
2128
+ constructor() {
2129
+ super(...arguments);
2130
+ this.name = 'X Layer';
2131
+ this.family = base_1.CoinFamily.OKBXLAYER;
2132
+ this.explorerUrl = 'https://www.oklink.com/x-layer/tx/';
2133
+ this.accountExplorerUrl = 'https://www.oklink.com/x-layer/address/';
2134
+ this.chainId = 196;
2135
+ this.nativeCoinOperationHashPrefix = '196';
2136
+ }
2137
+ }
2138
+ class XlayerTestnet extends Testnet {
2139
+ constructor() {
2140
+ super(...arguments);
2141
+ this.name = 'Testnet X Layer';
2142
+ this.family = base_1.CoinFamily.OKBXLAYER;
2143
+ this.explorerUrl = 'https://www.oklink.com/x-layer-testnet/tx/';
2144
+ this.accountExplorerUrl = 'https://www.oklink.com/x-layer-testnet/address/';
2145
+ this.chainId = 1952;
2146
+ this.nativeCoinOperationHashPrefix = '1952';
2147
+ }
2148
+ }
2149
+ class Morph extends Mainnet {
2150
+ constructor() {
2151
+ super(...arguments);
2152
+ this.name = 'Morph Mainnet';
2153
+ this.family = base_1.CoinFamily.MORPH;
2154
+ this.explorerUrl = 'https://explorer-api-hoodi.morphl2.io/tx/'; // TODO: WIN-8134 add mainnet url when available
2155
+ this.accountExplorerUrl = 'https://explorer-api-hoodi.morphl2.io/address/'; // TODO: WIN-8134 add mainnet account explorer url when available
2156
+ this.chainId = 2818;
2157
+ this.nativeCoinOperationHashPrefix = '2818';
2158
+ }
2159
+ }
2160
+ class MorphTestnet extends Testnet {
2161
+ constructor() {
2162
+ super(...arguments);
2163
+ this.name = 'Morph Testnet';
2164
+ this.family = base_1.CoinFamily.MORPH;
2165
+ this.explorerUrl = 'https://explorer-hoodi.morph.network/tx/';
2166
+ this.accountExplorerUrl = 'https://explorer-hoodi.morph.network/address/';
2167
+ this.chainId = 2910;
2168
+ this.nativeCoinOperationHashPrefix = '2910';
2169
+ }
2170
+ }
2171
+ class MorphETH extends Mainnet {
2172
+ constructor() {
2173
+ super(...arguments);
2174
+ this.name = 'Morph Ethereum Mainnet';
2175
+ this.family = base_1.CoinFamily.MORPHETH;
2176
+ this.explorerUrl = 'https://explorer.morph.network/tx/';
2177
+ this.accountExplorerUrl = 'https://explorer.morph.network/address/';
2178
+ this.chainId = 2818;
2179
+ this.nativeCoinOperationHashPrefix = '2818';
2180
+ }
2181
+ }
2182
+ class MorphETHTestnet extends Testnet {
2183
+ constructor() {
2184
+ super(...arguments);
2185
+ this.name = 'Morph Ethereum Testnet';
2186
+ this.family = base_1.CoinFamily.MORPHETH;
2187
+ this.explorerUrl = 'https://explorer-hoodi.morph.network/tx/';
2188
+ this.accountExplorerUrl = 'https://explorer-hoodi.morph.network/address/';
2189
+ this.chainId = 2910;
2190
+ this.nativeCoinOperationHashPrefix = '2910';
2191
+ }
2192
+ }
2193
+ class CreditcoinTestnet extends Testnet {
2194
+ constructor() {
2195
+ super(...arguments);
2196
+ this.name = 'CreditcoinTestnet';
2197
+ this.family = base_1.CoinFamily.CTC;
2198
+ this.explorerUrl = 'https://creditcoin-testnet.blockscout.com/tx/';
2199
+ this.accountExplorerUrl = 'https://creditcoin-testnet.blockscout.com/address/';
2200
+ this.chainId = 102031;
2201
+ this.nativeCoinOperationHashPrefix = '102031';
2202
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2203
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2204
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2205
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2206
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2207
+ }
2208
+ }
2209
+ class Sonic extends Mainnet {
2210
+ constructor() {
2211
+ super(...arguments);
2212
+ this.name = 'Sonic';
2213
+ this.family = base_1.CoinFamily.SONIC;
2214
+ this.explorerUrl = 'https://sonicscan.org/tx/';
2215
+ this.accountExplorerUrl = 'https://sonicscan.org/address/';
2216
+ this.chainId = 146;
2217
+ this.nativeCoinOperationHashPrefix = '146';
2218
+ }
2219
+ }
2220
+ class SonicTestnet extends Testnet {
2221
+ constructor() {
2222
+ super(...arguments);
2223
+ this.name = 'SonicTestnet';
2224
+ this.family = base_1.CoinFamily.SONIC;
2225
+ this.explorerUrl = 'https://testnet.sonicscan.org/tx/';
2226
+ this.accountExplorerUrl = 'https://testnet.sonicscan.org/address/';
2227
+ this.chainId = 14601;
2228
+ this.nativeCoinOperationHashPrefix = '14601';
2229
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2230
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2231
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2232
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2233
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2234
+ }
2235
+ }
2236
+ class Usdt0 extends Mainnet {
2237
+ constructor() {
2238
+ super(...arguments);
2239
+ this.name = 'StableEVM';
2240
+ this.family = base_1.CoinFamily.USDT0;
2241
+ this.explorerUrl = 'https://stablescan.xyz/tx/';
2242
+ this.accountExplorerUrl = 'https://stablescan.xyz/address/';
2243
+ this.chainId = 988;
2244
+ this.nativeCoinOperationHashPrefix = '988';
2245
+ }
2246
+ }
2247
+ class Usdt0Testnet extends Testnet {
2248
+ constructor() {
2249
+ super(...arguments);
2250
+ this.name = 'Testnet StableEVM';
2251
+ this.family = base_1.CoinFamily.USDT0;
2252
+ this.explorerUrl = 'https://testnet.stablescan.xyz/tx/';
2253
+ this.accountExplorerUrl = 'https://testnet.stablescan.xyz/address/';
2254
+ this.chainId = 2201;
2255
+ this.nativeCoinOperationHashPrefix = '2201';
2256
+ }
2257
+ }
2258
+ class Kaia extends Mainnet {
2259
+ constructor() {
2260
+ super(...arguments);
2261
+ this.name = 'Kaia';
2262
+ this.family = base_1.CoinFamily.KAIA;
2263
+ this.explorerUrl = 'https://kaiascan.io/tx/';
2264
+ this.accountExplorerUrl = 'https://kaiascan.io/address/';
2265
+ this.chainId = 8217;
2266
+ this.nativeCoinOperationHashPrefix = '8217';
2267
+ }
2268
+ }
2269
+ class KaiaTestnet extends Testnet {
2270
+ constructor() {
2271
+ super(...arguments);
2272
+ this.name = 'KaiaTestnet';
2273
+ this.family = base_1.CoinFamily.KAIA;
2274
+ this.explorerUrl = 'https://kairos.kaiascan.io/tx/';
2275
+ this.accountExplorerUrl = 'https://kairos.kaiascan.io/address/';
2276
+ this.chainId = 1001;
2277
+ this.nativeCoinOperationHashPrefix = '1001';
2278
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2279
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2280
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2281
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2282
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2283
+ }
2284
+ }
2285
+ class Irys extends Mainnet {
2286
+ constructor() {
2287
+ super(...arguments);
2288
+ this.name = 'Irys';
2289
+ this.family = base_1.CoinFamily.IRYS;
2290
+ this.explorerUrl = 'https://evm-explorer.irys.xyz/tx/';
2291
+ this.accountExplorerUrl = 'https://evm-explorer.irys.xyz/address/';
2292
+ this.chainId = 3282;
2293
+ this.nativeCoinOperationHashPrefix = '3282';
2294
+ }
2295
+ }
2296
+ class IrysTestnet extends Testnet {
2297
+ constructor() {
2298
+ super(...arguments);
2299
+ this.name = 'IrysTestnet';
2300
+ this.family = base_1.CoinFamily.IRYS;
2301
+ this.explorerUrl = 'https://testnet-explorer.irys.xyz/tx/';
2302
+ this.accountExplorerUrl = 'https://testnet-explorer.irys.xyz/address/';
2303
+ this.chainId = 1270;
2304
+ this.nativeCoinOperationHashPrefix = '1270';
2305
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2306
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2307
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2308
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2309
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2310
+ }
2311
+ }
2312
+ class Og extends Mainnet {
2313
+ constructor() {
2314
+ super(...arguments);
2315
+ this.name = 'Zero Gravity';
2316
+ this.family = base_1.CoinFamily.OG;
2317
+ this.explorerUrl = 'https://chainscan.0g.ai/tx/';
2318
+ this.accountExplorerUrl = 'https://chainscan.0g.ai/address/';
2319
+ this.chainId = 16661;
2320
+ this.nativeCoinOperationHashPrefix = '16661';
2321
+ }
2322
+ }
2323
+ class OgTestnet extends Testnet {
2324
+ constructor() {
2325
+ super(...arguments);
2326
+ this.name = 'Zero Gravity Testnet';
2327
+ this.family = base_1.CoinFamily.OG;
2328
+ this.explorerUrl = 'https://chainscan-galileo.0g.ai/tx/';
2329
+ this.accountExplorerUrl = 'https://chainscan-galileo.0g.ai/address/';
2330
+ this.chainId = 16602;
2331
+ this.nativeCoinOperationHashPrefix = '16602';
2332
+ }
2333
+ }
2334
+ class Xdc extends Mainnet {
2335
+ constructor() {
2336
+ super(...arguments);
2337
+ this.name = 'XdcChain';
2338
+ this.family = base_1.CoinFamily.XDC;
2339
+ this.explorerUrl = 'https://xdcscan.com/tx/';
2340
+ this.accountExplorerUrl = 'https://xdcscan.com/address/';
2341
+ this.chainId = 50;
2342
+ this.nativeCoinOperationHashPrefix = '50';
2343
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2344
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2345
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2346
+ }
2347
+ }
2348
+ class XdcTestnet extends Testnet {
2349
+ constructor() {
2350
+ super(...arguments);
2351
+ this.name = 'XdcChainTestnet';
2352
+ this.family = base_1.CoinFamily.XDC;
2353
+ this.explorerUrl = 'https://testnet.xdcscan.com/tx/';
2354
+ this.accountExplorerUrl = 'https://testnet.xdcscan.com/address/';
2355
+ this.chainId = 51;
2356
+ this.nativeCoinOperationHashPrefix = '51';
2357
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
2358
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2359
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2360
+ }
2361
+ }
2362
+ class Wemix extends Mainnet {
2363
+ constructor() {
2364
+ super(...arguments);
2365
+ this.name = 'WemixChain';
2366
+ this.family = base_1.CoinFamily.WEMIX;
2367
+ this.explorerUrl = 'https://explorer.wemix.com/tx/';
2368
+ this.accountExplorerUrl = 'https://explorer.wemix.com/address/';
2369
+ this.chainId = 1111;
2370
+ this.nativeCoinOperationHashPrefix = '1111';
2371
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2372
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2373
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2374
+ }
2375
+ }
2376
+ class WemixTestnet extends Testnet {
2377
+ constructor() {
2378
+ super(...arguments);
2379
+ this.name = 'WemixChainTestnet';
2380
+ this.family = base_1.CoinFamily.WEMIX;
2381
+ this.explorerUrl = 'https://explorer.test.wemix.com/tx/';
2382
+ this.accountExplorerUrl = 'https://explorer.test.wemix.com/address/';
2383
+ this.chainId = 1112;
2384
+ this.nativeCoinOperationHashPrefix = '1112';
2385
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2386
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2387
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2388
+ }
2389
+ }
2390
+ class MonadTestnet extends Testnet {
2391
+ constructor() {
2392
+ super(...arguments);
2393
+ this.name = 'MonadTestnet';
2394
+ this.family = base_1.CoinFamily.MON;
2395
+ this.explorerUrl = 'https://testnet.monadexplorer.com/tx/';
2396
+ this.accountExplorerUrl = 'https://testnet.monadexplorer.com/address/';
2397
+ this.chainId = 10143;
2398
+ this.nativeCoinOperationHashPrefix = '10143';
2399
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2400
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2401
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2402
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2403
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2404
+ }
2405
+ }
2406
+ class Monad extends Mainnet {
2407
+ constructor() {
2408
+ super(...arguments);
2409
+ this.name = 'Monad';
2410
+ this.family = base_1.CoinFamily.MON;
2411
+ this.explorerUrl = 'https://mainnet-beta.monvision.io/tx/';
2412
+ this.chainId = 143;
2413
+ this.nativeCoinOperationHashPrefix = '143';
2414
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2415
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2416
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2417
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2418
+ }
2419
+ }
2420
+ class World extends Mainnet {
2421
+ constructor() {
2422
+ super(...arguments);
2423
+ this.name = 'Worldchain';
2424
+ this.family = base_1.CoinFamily.WORLD;
2425
+ this.explorerUrl = 'https://worldscan.org/tx/';
2426
+ this.accountExplorerUrl = 'https://worldscan.org/address/';
2427
+ this.chainId = 480;
2428
+ this.nativeCoinOperationHashPrefix = '480';
2429
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2430
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2431
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2432
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2433
+ }
2434
+ }
2435
+ class WorldTestnet extends Testnet {
2436
+ constructor() {
2437
+ super(...arguments);
2438
+ this.name = 'WorldchainTestnet';
2439
+ this.family = base_1.CoinFamily.WORLD;
2440
+ this.explorerUrl = 'https://sepolia.worldscan.org/tx/';
2441
+ this.accountExplorerUrl = 'https://sepolia.worldscan.org/address/';
2442
+ this.chainId = 4801;
2443
+ this.nativeCoinOperationHashPrefix = '4801';
2444
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2445
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2446
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2447
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2448
+ }
2449
+ }
2450
+ class Soneium extends Mainnet {
2451
+ constructor() {
2452
+ super(...arguments);
2453
+ this.name = 'Soneium';
2454
+ this.family = base_1.CoinFamily.SONEIUM;
2455
+ this.explorerUrl = 'https://soneium.blockscout.com/tx/';
2456
+ this.accountExplorerUrl = 'https://soneium.blockscout.com/address/';
2457
+ this.chainId = 1868;
2458
+ this.nativeCoinOperationHashPrefix = '1868';
2459
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2460
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2461
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2462
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2463
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2464
+ }
2465
+ }
2466
+ class SoneiumTestnet extends Testnet {
2467
+ constructor() {
2468
+ super(...arguments);
2469
+ this.name = 'SoneiumTestnet';
2470
+ this.family = base_1.CoinFamily.SONEIUM;
2471
+ this.explorerUrl = 'https://soneium-minato.blockscout.com/tx/';
2472
+ this.accountExplorerUrl = 'https://soneium-minato.blockscout.com/address/';
2473
+ this.chainId = 1946;
2474
+ this.nativeCoinOperationHashPrefix = '1946';
2475
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2476
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2477
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2478
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2479
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2480
+ }
2481
+ }
2482
+ class ScrollEth extends Mainnet {
2483
+ constructor() {
2484
+ super(...arguments);
2485
+ this.name = 'Scroll';
2486
+ this.family = base_1.CoinFamily.SCROLLETH;
2487
+ this.explorerUrl = 'https://scrollscan.com/tx/';
2488
+ this.accountExplorerUrl = 'https://scrollscan.com/address/';
2489
+ this.chainId = 534352;
2490
+ this.nativeCoinOperationHashPrefix = '534352';
2491
+ }
2492
+ }
2493
+ class ScrollEthTestnet extends Testnet {
2494
+ constructor() {
2495
+ super(...arguments);
2496
+ this.name = 'Scroll Sepolia';
2497
+ this.family = base_1.CoinFamily.SCROLLETH;
2498
+ this.explorerUrl = 'https://sepolia.scrollscan.com/tx/';
2499
+ this.accountExplorerUrl = 'https://sepolia.scrollscan.com/address/';
2500
+ this.chainId = 534351;
2501
+ this.nativeCoinOperationHashPrefix = '534351';
2502
+ }
2503
+ }
2504
+ class SeiEvm extends Mainnet {
2505
+ constructor() {
2506
+ super(...arguments);
2507
+ this.name = 'Seievm';
2508
+ this.family = base_1.CoinFamily.SEIEVM;
2509
+ this.explorerUrl = 'https://seiscan.io/tx/';
2510
+ this.accountExplorerUrl = 'https://seiscan.io/address/';
2511
+ this.chainId = 1329;
2512
+ this.nativeCoinOperationHashPrefix = '1329';
2513
+ }
2514
+ }
2515
+ class SeiEvmTestnet extends Testnet {
2516
+ constructor() {
2517
+ super(...arguments);
2518
+ this.name = 'SeiEvmTestnet';
2519
+ this.family = base_1.CoinFamily.SEIEVM;
2520
+ this.explorerUrl = 'https://testnet.seiscan.io/tx/';
2521
+ this.accountExplorerUrl = 'https://testnet.seiscan.io/address/';
2522
+ this.chainId = 1328;
2523
+ this.nativeCoinOperationHashPrefix = '1328';
2524
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2525
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2526
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2527
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2528
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2529
+ }
2530
+ }
2531
+ class SomniaTestnet extends Testnet {
2532
+ constructor() {
2533
+ super(...arguments);
2534
+ this.name = 'SomniaTestnet';
2535
+ this.family = base_1.CoinFamily.STT;
2536
+ this.explorerUrl = 'https://shannon-explorer.somnia.network/tx/';
2537
+ this.accountExplorerUrl = 'https://shannon-explorer.somnia.network/address/';
2538
+ this.chainId = 50312;
2539
+ this.nativeCoinOperationHashPrefix = '50312';
2540
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2541
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2542
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2543
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2544
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2545
+ }
2546
+ }
2547
+ class Somi extends Mainnet {
2548
+ constructor() {
2549
+ super(...arguments);
2550
+ this.name = 'Somnia';
2551
+ this.family = base_1.CoinFamily.SOMI;
2552
+ this.explorerUrl = 'https://mainnet.somnia.w3us.site/tx/';
2553
+ this.chainId = 5031;
2554
+ this.nativeCoinOperationHashPrefix = '5031';
2555
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2556
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2557
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2558
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2559
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2560
+ }
2561
+ }
2562
+ class FlareP extends Mainnet {
2563
+ constructor() {
2564
+ super(...arguments);
2565
+ this.assetId = '2MxKSeEWXViLdYyDhW1SQ46AECZEbE2bnVRZptv42JrxqyUX5k';
2566
+ this.name = 'FlareP';
2567
+ this.family = base_1.CoinFamily.FLRP;
2568
+ this.explorerUrl = 'https://flarescan.com/blockchain/pvm/tx/';
2569
+ this.accountExplorerUrl = 'https://flarescan.com/blockchain/pvm/address/';
2570
+ this.blockchainID = '11111111111111111111111111111111LpoYY';
2571
+ this.cChainBlockchainID = 'umkbhSrjVw5nUvy1eo25AdrjRkPBdtzAMewuxA2rqEx4YMo4c';
2572
+ this.xChainBlockchainID = 'fK5e6T3EniMqagBkxXjAug9EbhFDZbEzPPr4f22uwMoP5i2cJ';
2573
+ this.networkID = 14;
2574
+ this.hrp = 'flare';
2575
+ this.alias = 'P';
2576
+ this.vm = 'platformvm';
2577
+ this.minImportToPFee = '1261000'; // 0.1261 FLR
2578
+ this.txFee = '200000'; // FLR P-chain import requires higher fee than base txFee
2579
+ this.baseTxFee = '1000000';
2580
+ this.maxImportFee = '10000000'; // defaults
2581
+ this.createAssetTxFee = '1000000';
2582
+ this.createSubnetTx = '100000000'; // defaults
2583
+ this.transformSubnetTxFee = '100000000';
2584
+ this.createChainTx = '100000000'; // defaults
2585
+ this.creationTxFee = '10000000'; // defaults
2586
+ this.minConsumption = '0.1';
2587
+ this.maxConsumption = '0.12';
2588
+ this.maxSupply = '103688266974000000000'; // 103B tokens
2589
+ this.minStake = '1000000000000000'; // 1M FLR
2590
+ this.minStakeDuration = '5256000'; // 2 months
2591
+ this.maxStakeDuration = '31536000'; // 1 year
2592
+ this.minDelegationStake = '50000000000000'; // 50000 FLR
2593
+ this.minDelegationFee = '0';
2594
+ this.addPrimaryNetworkValidatorFee = '0';
2595
+ this.addSubnetValidatorFee = '1000000';
2596
+ this.addSubnetDelegatorFee = '1000000';
2597
+ }
2598
+ }
2599
+ exports.FlareP = FlareP;
2600
+ class FlarePTestnet extends Testnet {
2601
+ constructor() {
2602
+ super(...arguments);
2603
+ this.name = 'FlarePTestnet';
2604
+ this.family = base_1.CoinFamily.FLRP;
2605
+ this.explorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/pvm/tx/';
2606
+ this.accountExplorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/pvm/address/';
2607
+ this.flarePublicUrl = 'https://coston2.testnet.flare.network';
2608
+ this.blockchainID = '11111111111111111111111111111111LpoYY';
2609
+ this.cChainBlockchainID = 'vE8M98mEQH6wk56sStD1ML8HApTgSqfJZLk9gQ3Fsd4i6m3Bi';
2610
+ this.xChainBlockchainID = 'FJuSwZuP85eyBpuBrKECnpPedGyXoDy2hP9q4JD8qBTZGxYJ';
2611
+ this.networkID = 114;
2612
+ this.hrp = 'costwo';
2613
+ this.alias = 'P';
2614
+ this.assetId = 'fxMAKpBQQpFedrUhWMsDYfCUJxdUw4mneTczKBzNg3rc2JUub';
2615
+ this.vm = 'platformvm';
2616
+ this.minImportToPFee = '1261000'; // 0.1261 FLR
2617
+ this.txFee = '200000'; // FLR P-chain import requires higher fee than base txFee
2618
+ this.baseTxFee = '1000000';
2619
+ this.maxImportFee = '10000000'; // defaults
2620
+ this.createAssetTxFee = '1000000';
2621
+ this.createSubnetTx = '100000000'; // defaults
2622
+ this.transformSubnetTxFee = '100000000';
2623
+ this.createChainTx = '100000000'; // defaults
2624
+ this.creationTxFee = '10000000'; // defaults
2625
+ this.minConsumption = '0.1';
2626
+ this.maxConsumption = '0.12';
2627
+ this.maxSupply = '79000000000000000000000'; // 79 trillion tokens
2628
+ this.minStake = '1000000000000000'; // 1M FLR
2629
+ this.minStakeDuration = '5256000'; // 2 months
2630
+ this.maxStakeDuration = '31536000'; // 1 year
2631
+ this.minDelegationStake = '50000000000000'; // 50000 FLR
2632
+ this.minDelegationFee = '0';
2633
+ this.addPrimaryNetworkValidatorFee = '0';
2634
+ this.addSubnetValidatorFee = '1000000';
2635
+ this.addSubnetDelegatorFee = '1000000';
2636
+ }
2637
+ }
2638
+ exports.FlarePTestnet = FlarePTestnet;
2639
+ class Flare extends Mainnet {
2640
+ constructor() {
2641
+ super(...arguments);
2642
+ this.name = 'Flarechain';
2643
+ this.family = base_1.CoinFamily.FLR;
2644
+ this.explorerUrl = 'https://flarescan.com/tx/';
2645
+ this.accountExplorerUrl = 'https://flarescan.com/blockchain/address/';
2646
+ this.flarePublicUrl = 'https://flarescan.com';
2647
+ this.chainId = 14;
2648
+ this.nativeCoinOperationHashPrefix = '14';
2649
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2650
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2651
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2652
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2653
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2654
+ }
2655
+ }
2656
+ exports.Flare = Flare;
2657
+ class FlareTestnet extends Testnet {
2658
+ constructor() {
2659
+ super(...arguments);
2660
+ this.name = 'FlarechainTestnet';
2661
+ this.family = base_1.CoinFamily.FLR;
2662
+ this.explorerUrl = 'https://coston2.testnet.flarescan.com/tx/';
2663
+ this.accountExplorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/address/';
2664
+ this.chainId = 114;
2665
+ this.nativeCoinOperationHashPrefix = '114';
2666
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2667
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2668
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2669
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2670
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2671
+ }
2672
+ }
2673
+ exports.FlareTestnet = FlareTestnet;
2674
+ class Songbird extends Mainnet {
2675
+ constructor() {
2676
+ super(...arguments);
2677
+ this.name = 'Songbirdchain';
2678
+ this.family = base_1.CoinFamily.SGB;
2679
+ this.explorerUrl = 'https://songbird-explorer.flare.network/tx/';
2680
+ this.accountExplorerUrl = 'https://songbird-explorer.flare.network/address/';
2681
+ this.chainId = 19;
2682
+ this.nativeCoinOperationHashPrefix = '19';
2683
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2684
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2685
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2686
+ }
2687
+ }
2688
+ class SongbirdTestnet extends Testnet {
2689
+ constructor() {
2690
+ super(...arguments);
2691
+ this.name = 'SongbirdchainTestnet';
2692
+ this.family = base_1.CoinFamily.SGB;
2693
+ this.explorerUrl = 'https://coston-explorer.flare.network/tx/';
2694
+ this.accountExplorerUrl = 'https://coston-explorer.flare.network/address/';
2695
+ this.chainId = 16;
2696
+ this.nativeCoinOperationHashPrefix = '16';
2697
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2698
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2699
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2700
+ }
2701
+ }
2702
+ class BaseChainTestnet extends Testnet {
2703
+ constructor() {
2704
+ super(...arguments);
2705
+ //BaseETH testnet
2706
+ this.name = 'BaseChainTestnet';
2707
+ this.family = base_1.CoinFamily.BASEETH;
2708
+ this.explorerUrl = 'https://sepolia.basescan.org/tx/';
2709
+ this.accountExplorerUrl = 'https://sepolia.basescan.org/address/';
2710
+ this.chainId = 84532;
2711
+ this.nativeCoinOperationHashPrefix = '84532';
2712
+ this.tokenOperationHashPrefix = '84532-ERC20';
2713
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
2714
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
2715
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
2716
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
2717
+ }
2718
+ }
2719
+ class BaseChain extends Mainnet {
2720
+ constructor() {
2721
+ super(...arguments);
2722
+ //BaseETH
2723
+ this.name = 'BaseChain';
2724
+ this.family = base_1.CoinFamily.BASEETH;
2725
+ this.explorerUrl = 'https://basescan.org/tx/';
2726
+ this.accountExplorerUrl = 'https://basescan.org/address/';
2727
+ this.chainId = 8453;
2728
+ this.nativeCoinOperationHashPrefix = '8453';
2729
+ this.tokenOperationHashPrefix = '8453-ERC20';
2730
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
2731
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
2732
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
2733
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
2734
+ }
2735
+ }
2736
+ class Polymesh extends Mainnet {
2737
+ constructor() {
2738
+ super(...arguments);
2739
+ this.name = 'Polymesh';
2740
+ this.family = base_1.CoinFamily.POLYX;
2741
+ this.explorerUrl = 'https://polymesh.subscan.io/extrinsic/';
2742
+ this.specName = 'polymesh_mainnet';
2743
+ this.genesisHash = '0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063';
2744
+ this.specVersion = 7002000;
2745
+ this.chainName = 'Polymesh Mainnet';
2746
+ this.txVersion = 7;
2747
+ }
2748
+ }
2749
+ class PolymeshTestnet extends Testnet {
2750
+ constructor() {
2751
+ super(...arguments);
2752
+ this.name = 'PolymeshTestnet';
2753
+ this.family = base_1.CoinFamily.POLYX;
2754
+ this.explorerUrl = 'https://polymesh-testnet.subscan.io/extrinsic/';
2755
+ this.specName = 'polymesh_testnet';
2756
+ this.genesisHash = '0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6';
2757
+ this.specVersion = 7002000;
2758
+ this.chainName = 'Polymesh Testnet';
2759
+ this.txVersion = 7;
2760
+ }
2761
+ }
2762
+ class Vet extends Mainnet {
2763
+ constructor() {
2764
+ super(...arguments);
2765
+ this.name = 'VeChain';
2766
+ this.family = base_1.CoinFamily.VET;
2767
+ this.explorerUrl = 'https://explore.vechain.org/transactions/';
2768
+ this.accountExplorerUrl = 'https://explore.vechain.org/accounts/';
2769
+ this.chainId = 100009;
2770
+ this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
2771
+ this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
2772
+ }
2773
+ }
2774
+ class VetTestnet extends Testnet {
2775
+ constructor() {
2776
+ super(...arguments);
2777
+ this.name = 'VeChainTestnet';
2778
+ this.family = base_1.CoinFamily.VET;
2779
+ this.explorerUrl = 'https://explore-testnet.vechain.org/transactions/';
2780
+ this.accountExplorerUrl = 'https://explore-testnet.vechain.org/accounts/';
2781
+ this.chainId = 100010;
2782
+ this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
2783
+ this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
2784
+ }
2785
+ }
2786
+ class Iota extends Mainnet {
2787
+ constructor() {
2788
+ super(...arguments);
2789
+ this.name = 'Iota';
2790
+ this.family = base_1.CoinFamily.IOTA;
2791
+ this.explorerUrl = 'https://explorer.iota.org/txblock/?network=mainnet';
2792
+ this.accountExplorerUrl = 'https://explorer.iota.org/address/?network=mainnet';
2793
+ }
2794
+ }
2795
+ class IotaTestnet extends Testnet {
2796
+ constructor() {
2797
+ super(...arguments);
2798
+ this.name = 'Testnet Iota';
2799
+ this.family = base_1.CoinFamily.IOTA;
2800
+ this.explorerUrl = 'https://explorer.iota.org/txblock/?network=testnet';
2801
+ this.accountExplorerUrl = 'https://explorer.iota.org/address/?network=testnet';
2802
+ }
2803
+ }
2804
+ class Flow extends Mainnet {
2805
+ constructor() {
2806
+ super(...arguments);
2807
+ this.name = 'Flow';
2808
+ this.family = base_1.CoinFamily.FLOW;
2809
+ this.explorerUrl = 'https://evm.flowscan.io/tx/';
2810
+ this.accountExplorerUrl = 'https://evm.flowscan.io/address/';
2811
+ this.chainId = 747;
2812
+ this.nativeCoinOperationHashPrefix = '747';
2813
+ }
2814
+ }
2815
+ class FlowTestnet extends Testnet {
2816
+ constructor() {
2817
+ super(...arguments);
2818
+ this.name = 'FlowTestnet';
2819
+ this.family = base_1.CoinFamily.FLOW;
2820
+ this.explorerUrl = 'https://evm-testnet.flowscan.io/tx/';
2821
+ this.accountExplorerUrl = 'https://evm-testnet.flowscan.io/address/';
2822
+ this.chainId = 545;
2823
+ this.nativeCoinOperationHashPrefix = '545';
2824
+ }
2825
+ }
2826
+ class GasEvm extends Mainnet {
2827
+ constructor() {
2828
+ super(...arguments);
2829
+ this.name = 'Neo X';
2830
+ this.family = base_1.CoinFamily.GASEVM;
2831
+ this.explorerUrl = 'https://neoxscan.ngd.network/tx/';
2832
+ this.accountExplorerUrl = 'https://neoxscan.ngd.network/address/';
2833
+ this.chainId = 47763;
2834
+ this.nativeCoinOperationHashPrefix = '47763';
2835
+ }
2836
+ }
2837
+ class GasEvmTestnet extends Testnet {
2838
+ constructor() {
2839
+ super(...arguments);
2840
+ this.name = 'Testnet Neo X';
2841
+ this.family = base_1.CoinFamily.GASEVM;
2842
+ this.explorerUrl = 'https://neoxt4scan.ngd.network/tx/';
2843
+ this.accountExplorerUrl = 'https://neoxt4scan.ngd.network/address/';
2844
+ this.chainId = 12227332;
2845
+ this.nativeCoinOperationHashPrefix = '12227332';
2846
+ }
2847
+ }
2848
+ class MegaETH extends Mainnet {
2849
+ constructor() {
2850
+ super(...arguments);
2851
+ this.name = 'MegaETH';
2852
+ this.family = base_1.CoinFamily.MEGAETH;
2853
+ this.explorerUrl = 'https://megaeth.blockscout.com/tx/';
2854
+ this.accountExplorerUrl = 'https://megaeth.blockscout.com/address/';
2855
+ this.chainId = 4326;
2856
+ this.nativeCoinOperationHashPrefix = '4326';
2857
+ }
2858
+ }
2859
+ class MegaETHTestnet extends Testnet {
2860
+ constructor() {
2861
+ super(...arguments);
2862
+ this.name = 'MegaETHTestnet';
2863
+ this.family = base_1.CoinFamily.MEGAETH;
2864
+ this.explorerUrl = 'https://www.megaexplorer.xyz/tx/';
2865
+ this.accountExplorerUrl = 'https://www.megaexplorer.xyz/address/';
2866
+ this.chainId = 6343;
2867
+ this.nativeCoinOperationHashPrefix = '6343';
2868
+ }
2869
+ }
2870
+ class Plume extends Mainnet {
2871
+ constructor() {
2872
+ super(...arguments);
2873
+ this.name = 'Plume';
2874
+ this.family = base_1.CoinFamily.PLUME;
2875
+ this.explorerUrl = 'https://explorer.plume.org/tx/';
2876
+ this.accountExplorerUrl = 'https://explorer.plume.org/address/';
2877
+ this.chainId = 98866;
2878
+ this.nativeCoinOperationHashPrefix = '98866';
2879
+ }
2880
+ }
2881
+ class HederaEVMTestnet extends Testnet {
2882
+ constructor() {
2883
+ super(...arguments);
2884
+ this.name = 'Testnet Hedera EVM';
2885
+ this.family = base_1.CoinFamily.HBAREVM;
2886
+ this.explorerUrl = 'https://hashscan.io/testnet/transaction/';
2887
+ this.accountExplorerUrl = 'https://hashscan.io/testnet/account/';
2888
+ this.chainId = 296;
2889
+ this.nativeCoinOperationHashPrefix = '296';
2890
+ }
2891
+ }
2892
+ class HederaEVM extends Mainnet {
2893
+ constructor() {
2894
+ super(...arguments);
2895
+ this.name = 'Hedera EVM';
2896
+ this.family = base_1.CoinFamily.HBAREVM;
2897
+ this.explorerUrl = 'https://hashscan.io/mainnet/transaction/';
2898
+ this.accountExplorerUrl = 'https://hashscan.io/mainnet/account/';
2899
+ this.chainId = 295;
2900
+ this.nativeCoinOperationHashPrefix = '295';
2901
+ }
2902
+ }
2903
+ class HemiEth extends Mainnet {
2904
+ constructor() {
2905
+ super(...arguments);
2906
+ this.name = 'Hemi Ethereum';
2907
+ this.family = base_1.CoinFamily.HEMIETH;
2908
+ this.explorerUrl = 'https://explorer.hemi.xyz/tx/';
2909
+ this.accountExplorerUrl = 'https://explorer.hemi.xyz/address/';
2910
+ this.chainId = 43111;
2911
+ this.nativeCoinOperationHashPrefix = '43111';
2912
+ }
2913
+ }
2914
+ class HemiEthTestnet extends Testnet {
2915
+ constructor() {
2916
+ super(...arguments);
2917
+ this.name = 'Testnet Hemi Ethereum';
2918
+ this.family = base_1.CoinFamily.HEMIETH;
2919
+ this.explorerUrl = 'https://testnet.explorer.hemi.xyz/tx/';
2920
+ this.accountExplorerUrl = 'https://testnet.explorer.hemi.xyz/address/';
2921
+ this.chainId = 743111;
2922
+ this.nativeCoinOperationHashPrefix = '743111';
2923
+ }
2924
+ }
2925
+ class KatanaEth extends Mainnet {
2926
+ constructor() {
2927
+ super(...arguments);
2928
+ this.name = 'Katana';
2929
+ this.family = base_1.CoinFamily.KATANAETH;
2930
+ this.explorerUrl = 'https://katanascan.com/tx/';
2931
+ this.accountExplorerUrl = 'https://katanascan.com/address/';
2932
+ this.chainId = 747474;
2933
+ this.nativeCoinOperationHashPrefix = '747474';
2934
+ }
2935
+ }
2936
+ class KatanaEthTestnet extends Testnet {
2937
+ constructor() {
2938
+ super(...arguments);
2939
+ this.name = 'Testnet Katana';
2940
+ this.family = base_1.CoinFamily.KATANAETH;
2941
+ this.explorerUrl = 'https://explorer-bokuto.katanarpc.com/tx/';
2942
+ this.accountExplorerUrl = 'https://explorer-bokuto.katanarpc.com/address/';
2943
+ this.chainId = 737373;
2944
+ this.nativeCoinOperationHashPrefix = '737373';
2945
+ }
2946
+ }
2947
+ class PrividiumETH extends Mainnet {
2948
+ constructor() {
2949
+ super(...arguments);
2950
+ this.name = 'Prividium Ethereum Mainnet';
2951
+ this.family = base_1.CoinFamily.PRIVIDIUMETH;
2952
+ this.explorerUrl = 'https://explorer.prividium.zksync.dev/tx/'; // TODO: update with mainnet URL when available
2953
+ this.accountExplorerUrl = 'https://explorer.prividium.zksync.dev/address/'; // TODO: update with mainnet URL when available
2954
+ this.chainId = 9999999; // TODO: update with mainnet chain ID when available
2955
+ this.nativeCoinOperationHashPrefix = '9999999';
2956
+ }
2957
+ }
2958
+ class PrividiumETHTestnet extends Testnet {
2959
+ constructor() {
2960
+ super(...arguments);
2961
+ this.name = 'Prividium Ethereum Testnet';
2962
+ this.family = base_1.CoinFamily.PRIVIDIUMETH;
2963
+ this.explorerUrl = 'https://explorer.testnet-prividium.zksync.dev/tx/';
2964
+ this.accountExplorerUrl = 'https://explorer.testnet-prividium.zksync.dev/address/';
2965
+ this.chainId = 8022834;
2966
+ this.nativeCoinOperationHashPrefix = '8022834';
2967
+ }
2968
+ }
2969
+ class InkEth extends Mainnet {
2970
+ constructor() {
2971
+ super(...arguments);
2972
+ this.name = 'INK Mainnet';
2973
+ this.family = base_1.CoinFamily.INKETH;
2974
+ this.explorerUrl = 'https://explorer.inkonchain.com/tx/';
2975
+ this.accountExplorerUrl = 'https://explorer.inkonchain.com/address/';
2976
+ this.chainId = 57073;
2977
+ this.nativeCoinOperationHashPrefix = '57073';
2978
+ }
2979
+ }
2980
+ class InkEthTestnet extends Testnet {
2981
+ constructor() {
2982
+ super(...arguments);
2983
+ this.name = 'INK Testnet';
2984
+ this.family = base_1.CoinFamily.INKETH;
2985
+ this.explorerUrl = 'https://explorer-sepolia.inkonchain.com/tx/';
2986
+ this.accountExplorerUrl = 'https://explorer-sepolia.inkonchain.com/address/';
2987
+ this.chainId = 763373;
2988
+ this.nativeCoinOperationHashPrefix = '763373';
2989
+ }
2990
+ }
2991
+ class PlumeTestnet extends Testnet {
2992
+ constructor() {
2993
+ super(...arguments);
2994
+ this.name = 'PlumeTestnet';
2995
+ this.family = base_1.CoinFamily.PLUME;
2996
+ this.explorerUrl = 'https://testnet-explorer.plume.org/tx/';
2997
+ this.accountExplorerUrl = 'https://testnet-explorer.plume.org/address/';
2998
+ this.chainId = 98867;
2999
+ this.nativeCoinOperationHashPrefix = '98867';
3000
+ }
3001
+ }
3002
+ class Canton extends Mainnet {
3003
+ constructor() {
3004
+ super(...arguments);
3005
+ this.name = 'Canton';
3006
+ this.family = base_1.CoinFamily.CANTON;
3007
+ this.explorerUrl = 'https://lighthouse.cantonloop.com/transactions/';
3008
+ }
3009
+ }
3010
+ class CantonTestnet extends Testnet {
3011
+ constructor() {
3012
+ super(...arguments);
3013
+ this.name = 'CantonTestnet';
3014
+ this.family = base_1.CoinFamily.CANTON;
3015
+ this.explorerUrl = 'https://lighthouse.testnet.cantonloop.com/transactions/';
3016
+ }
3017
+ }
3018
+ class Dogeos extends Mainnet {
3019
+ constructor() {
3020
+ super(...arguments);
3021
+ this.name = 'Doge OS';
3022
+ this.family = base_1.CoinFamily.DOGEOS;
3023
+ this.explorerUrl = 'https://blockscout.testnet.dogeos.com/tx/'; //TODO: WIN-8082 => add mainnet url when available
3024
+ this.accountExplorerUrl = "'https://blockscout.testnet.dogeos.com/address/"; //TODO: WIN-8082 => add mainnet url when available
3025
+ this.chainId = 1234567; ////TODO: WIN-8082 => add mainnet chainId when available
3026
+ this.nativeCoinOperationHashPrefix = '1234567'; //TODO: WIN-8082 => add when mainnet details available
3027
+ }
3028
+ }
3029
+ class DogeosTestnet extends Testnet {
3030
+ constructor() {
3031
+ super(...arguments);
3032
+ this.name = 'Doge OS Testnet';
3033
+ this.family = base_1.CoinFamily.DOGEOS;
3034
+ this.explorerUrl = 'https://blockscout.testnet.dogeos.com/tx/';
3035
+ this.accountExplorerUrl = 'https://blockscout.testnet.dogeos.com/address/';
3036
+ this.chainId = 6281971;
3037
+ this.nativeCoinOperationHashPrefix = '6281971';
3038
+ }
3039
+ }
3040
+ class ArcUSDCTestnet extends Testnet {
3041
+ constructor() {
3042
+ super(...arguments);
3043
+ this.name = 'USDC (ARC) Testnet';
3044
+ this.family = base_1.CoinFamily.ARCUSDC;
3045
+ this.explorerUrl = 'https://testnet.arcscan.app/tx/';
3046
+ this.accountExplorerUrl = 'https://testnet.arcscan.app/address/';
3047
+ this.chainId = 5042002;
3048
+ this.nativeCoinOperationHashPrefix = '5042002';
3049
+ }
3050
+ }
3051
+ class ArcUSDC extends Mainnet {
3052
+ constructor() {
3053
+ super(...arguments);
3054
+ this.name = 'USDC (ARC)';
3055
+ this.family = base_1.CoinFamily.ARCUSDC;
3056
+ this.explorerUrl = 'https://explorer.arc.io/tx/'; // WIN-8844 change to prod explorer url
3057
+ this.accountExplorerUrl = 'https://explorer.arc.io/address/'; // change to prod explorer url when available
3058
+ this.chainId = 5042;
3059
+ this.nativeCoinOperationHashPrefix = '5042';
3060
+ }
3061
+ }
3062
+ class Tempo extends Mainnet {
3063
+ constructor() {
3064
+ super(...arguments);
3065
+ this.name = 'Tempo';
3066
+ this.family = base_1.CoinFamily.TEMPO;
3067
+ this.explorerUrl = 'https://explore.mainnet.tempo.xyz/tx/';
3068
+ this.accountExplorerUrl = 'https://explore.mainnet.tempo.xyz/address/';
3069
+ this.chainId = 4217;
3070
+ this.nativeCoinOperationHashPrefix = 'TEMPO';
3071
+ this.tokenOperationHashPrefix = 'TEMPO-TIP20';
3072
+ }
3073
+ }
3074
+ class TempoTestnet extends Testnet {
3075
+ constructor() {
3076
+ super(...arguments);
3077
+ this.name = 'Tempo Testnet';
3078
+ this.family = base_1.CoinFamily.TEMPO;
3079
+ this.explorerUrl = 'https://explore.testnet.tempo.xyz/tx/';
3080
+ this.accountExplorerUrl = 'https://explore.testnet.tempo.xyz/address/';
3081
+ this.chainId = 42431;
3082
+ this.nativeCoinOperationHashPrefix = '42431';
3083
+ this.tokenOperationHashPrefix = '42431';
3084
+ }
3085
+ }
3086
+ class Boba extends Mainnet {
3087
+ constructor() {
3088
+ super(...arguments);
3089
+ this.name = 'Boba';
3090
+ this.family = base_1.CoinFamily.BOBAETH;
3091
+ this.explorerUrl = 'https://bobascan.com/blockchain/transactions';
3092
+ this.accountExplorerUrl = 'https://bobascan.com/blockchain/accounts';
3093
+ this.chainId = 288;
3094
+ this.nativeCoinOperationHashPrefix = '288';
3095
+ this.tokenOperationHashPrefix = '288-ERC20';
3096
+ }
3097
+ }
3098
+ class BobaTestnet extends Testnet {
3099
+ constructor() {
3100
+ super(...arguments);
3101
+ this.name = 'Boba Testnet';
3102
+ this.family = base_1.CoinFamily.BOBAETH;
3103
+ this.explorerUrl = 'https://testnet.bobascan.com/blockchain/transactions';
3104
+ this.accountExplorerUrl = 'https://testnet.bobascan.com/blockchain/accounts';
3105
+ this.chainId = 28882;
3106
+ this.nativeCoinOperationHashPrefix = '28882';
3107
+ this.tokenOperationHashPrefix = '28882-ERC20';
3108
+ }
3109
+ }
3110
+ /**
3111
+ * Concrete network class for AMS-discovered chains not yet registered in local statics.
3112
+ * Accepts string-typed type/family and casts to enums internally (safe since both are string enums).
3113
+ * Currently covers BaseNetwork + AccountNetwork + EthereumNetwork fields.
3114
+ */
3115
+ class DynamicNetwork extends BaseNetwork {
3116
+ constructor(options) {
3117
+ super();
3118
+ this.name = options.name;
3119
+ this.type = options.type;
3120
+ this.family = options.family;
3121
+ this.explorerUrl = options.explorerUrl;
3122
+ this.accountExplorerUrl = options.accountExplorerUrl;
3123
+ this.blockExplorerUrl = options.blockExplorerUrl;
3124
+ this.chainId = options.chainId;
3125
+ this.batcherContractAddress = options.batcherContractAddress;
3126
+ this.forwarderFactoryAddress = options.forwarderFactoryAddress;
3127
+ this.forwarderImplementationAddress = options.forwarderImplementationAddress;
3128
+ this.walletFactoryAddress = options.walletFactoryAddress;
3129
+ this.walletImplementationAddress = options.walletImplementationAddress;
3130
+ this.walletV2FactoryAddress = options.walletV2FactoryAddress;
3131
+ this.walletV2ImplementationAddress = options.walletV2ImplementationAddress;
3132
+ this.walletV4FactoryAddress = options.walletV4FactoryAddress;
3133
+ this.walletV4ImplementationAddress = options.walletV4ImplementationAddress;
3134
+ this.walletV2ForwarderFactoryAddress = options.walletV2ForwarderFactoryAddress;
3135
+ this.walletV2ForwarderImplementationAddress = options.walletV2ForwarderImplementationAddress;
3136
+ this.walletV4ForwarderFactoryAddress = options.walletV4ForwarderFactoryAddress;
3137
+ this.walletV4ForwarderImplementationAddress = options.walletV4ForwarderImplementationAddress;
3138
+ this.nativeCoinOperationHashPrefix = options.nativeCoinOperationHashPrefix;
3139
+ this.tokenOperationHashPrefix = options.tokenOperationHashPrefix;
1048
3140
  }
1049
3141
  }
3142
+ exports.DynamicNetwork = DynamicNetwork;
1050
3143
  exports.Networks = {
1051
3144
  main: {
3145
+ abstracteth: Object.freeze(new AbstractEth()),
1052
3146
  ada: Object.freeze(new Ada()),
1053
3147
  algorand: Object.freeze(new Algorand()),
3148
+ apechain: Object.freeze(new ApeChain()),
3149
+ apt: Object.freeze(new Apt()),
1054
3150
  arbitrum: Object.freeze(new Arbitrum()),
3151
+ arcusdc: Object.freeze(new ArcUSDC()),
3152
+ asi: Object.freeze(new Asi()),
1055
3153
  atom: Object.freeze(new Atom()),
1056
3154
  avalancheC: Object.freeze(new AvalancheC()),
1057
3155
  avalancheP: Object.freeze(new AvalancheP()),
3156
+ baby: Object.freeze(new Baby()),
3157
+ basechain: Object.freeze(new BaseChain()),
1058
3158
  bitcoin: Object.freeze(new Bitcoin()),
1059
3159
  bitcoinCash: Object.freeze(new BitcoinCash()),
1060
3160
  bitcoinGold: Object.freeze(new BitcoinGold()),
1061
3161
  bitcoinSV: Object.freeze(new BitcoinSV()),
1062
- bera: Object.freeze(new Bera()),
3162
+ bera: Object.freeze(new Berachain()),
1063
3163
  bld: Object.freeze(new Bld()),
1064
3164
  bsc: Object.freeze(new BinanceSmartChain()),
3165
+ canton: Object.freeze(new Canton()),
1065
3166
  casper: Object.freeze(new Casper()),
1066
3167
  celo: Object.freeze(new Celo()),
3168
+ chiliz: Object.freeze(new Chiliz()),
3169
+ codexeth: Object.freeze(new CodexEth()),
3170
+ coredao: Object.freeze(new Coredao()),
1067
3171
  coreum: Object.freeze(new Coreum()),
3172
+ cronos: Object.freeze(new Cronos()),
1068
3173
  dash: Object.freeze(new Dash()),
1069
3174
  dogecoin: Object.freeze(new Dogecoin()),
1070
- dot: Object.freeze(new Polkadot()),
3175
+ dogeos: Object.freeze(new Dogeos()),
3176
+ dot: Object.freeze(new PolkadotAssetHub()),
3177
+ dydx: Object.freeze(new Dydx()),
1071
3178
  eCash: Object.freeze(new ECash()),
1072
3179
  eos: Object.freeze(new Eos()),
1073
3180
  ethereum: Object.freeze(new Ethereum()),
@@ -1075,85 +3182,286 @@ exports.Networks = {
1075
3182
  ethereumClassic: Object.freeze(new EthereumClassic()),
1076
3183
  ethereumW: Object.freeze(new EthereumW()),
1077
3184
  fiat: Object.freeze(new Fiat()),
3185
+ fetchai: Object.freeze(new FetchAi()),
3186
+ flow: Object.freeze(new Flow()),
3187
+ gasevm: Object.freeze(new GasEvm()),
3188
+ flr: Object.freeze(new Flare()),
3189
+ flrP: Object.freeze(new FlareP()),
3190
+ fluenteth: Object.freeze(new FluentETH()),
3191
+ h: Object.freeze(new HumanityProtocol()),
1078
3192
  hash: Object.freeze(new Hash()),
3193
+ hoodeth: Object.freeze(new Hoodeth()),
1079
3194
  hedera: Object.freeze(new Hedera()),
3195
+ hederaEVM: Object.freeze(new HederaEVM()),
3196
+ hemieth: Object.freeze(new HemiEth()),
3197
+ inketh: Object.freeze(new InkEth()),
3198
+ hppeth: Object.freeze(new Hppeth()),
3199
+ prividiumeth: Object.freeze(new PrividiumETH()),
3200
+ icp: Object.freeze(new Icp()),
3201
+ ip: Object.freeze(new IP()),
3202
+ initia: Object.freeze(new Initia()),
3203
+ iota: Object.freeze(new Iota()),
1080
3204
  injective: Object.freeze(new Injective()),
3205
+ irys: Object.freeze(new Irys()),
1081
3206
  islm: Object.freeze(new Islm()),
1082
- kava: Object.freeze(new Kava()),
3207
+ jovayeth: Object.freeze(new JovayETH()),
3208
+ kaia: Object.freeze(new Kaia()),
3209
+ kaspa: Object.freeze(new KaspaMainnet()),
3210
+ katanaeth: Object.freeze(new KatanaEth()),
3211
+ kavacosmos: Object.freeze(new KavaCosmos()),
3212
+ kavaevm: Object.freeze(new KavaEVM()),
3213
+ lnbtc: Object.freeze(new LightningBitcoin()),
1083
3214
  litecoin: Object.freeze(new Litecoin()),
3215
+ megaeth: Object.freeze(new MegaETH()),
3216
+ mon: Object.freeze(new Monad()),
3217
+ mantle: Object.freeze(new Mantle()),
3218
+ mantra: Object.freeze(new Mantra()),
3219
+ plume: Object.freeze(new Plume()),
1084
3220
  polygon: Object.freeze(new Polygon()),
3221
+ polyx: Object.freeze(new Polymesh()),
3222
+ phrs: Object.freeze(new Pharos()),
3223
+ ctc: Object.freeze(new Creditcoin()),
3224
+ hypeevm: Object.freeze(new HypeEVM()),
3225
+ hyperliquid: Object.freeze(new Hyperliquid()),
3226
+ lineaeth: Object.freeze(new LineaETH()),
3227
+ oas: Object.freeze(new Oas()),
3228
+ og: Object.freeze(new Og()),
1085
3229
  ofc: Object.freeze(new Ofc()),
3230
+ okbxlayer: Object.freeze(new Xlayer()),
3231
+ opbnb: Object.freeze(new OpBNB()),
3232
+ fantom: Object.freeze(new Fantom()),
3233
+ morph: Object.freeze(new Morph()),
3234
+ morpheth: Object.freeze(new MorphETH()),
1086
3235
  optimism: Object.freeze(new Optimism()),
1087
3236
  osmo: Object.freeze(new Osmo()),
1088
3237
  rbtc: Object.freeze(new Rbtc()),
3238
+ rune: Object.freeze(new Rune()),
1089
3239
  stellar: Object.freeze(new Stellar()),
3240
+ scrolleth: Object.freeze(new ScrollEth()),
1090
3241
  sei: Object.freeze(new Sei()),
3242
+ seievm: Object.freeze(new SeiEvm()),
3243
+ sgb: Object.freeze(new Songbird()),
1091
3244
  sol: Object.freeze(new Sol()),
3245
+ sonic: Object.freeze(new Sonic()),
3246
+ starknet: Object.freeze(new StarknetMainnet()),
1092
3247
  sui: Object.freeze(new Sui()),
1093
3248
  near: Object.freeze(new Near()),
1094
3249
  stx: Object.freeze(new Stx()),
3250
+ somi: Object.freeze(new Somi()),
3251
+ soneium: Object.freeze(new Soneium()),
1095
3252
  susd: Object.freeze(new SUSD()),
3253
+ tao: Object.freeze(new Bittensor()),
3254
+ tempo: Object.freeze(new Tempo()),
1096
3255
  tia: Object.freeze(new Tia()),
1097
3256
  ton: Object.freeze(new Ton()),
1098
3257
  trx: Object.freeze(new Trx()),
3258
+ usdt0: Object.freeze(new Usdt0()),
3259
+ vet: Object.freeze(new Vet()),
3260
+ wemix: Object.freeze(new Wemix()),
3261
+ world: Object.freeze(new World()),
3262
+ xdc: Object.freeze(new Xdc()),
3263
+ xpl: Object.freeze(new Plasma()),
1099
3264
  xrp: Object.freeze(new Xrp()),
1100
3265
  xtz: Object.freeze(new Xtz()),
3266
+ xtzevm: Object.freeze(new XtzEvm()),
1101
3267
  zCash: Object.freeze(new ZCash()),
1102
3268
  zeta: Object.freeze(new Zeta()),
3269
+ zkSync: Object.freeze(new ZkSync()),
3270
+ zkSyncEra: Object.freeze(new ZkSyncEra()),
3271
+ unieth: Object.freeze(new Unieth()),
3272
+ boba: Object.freeze(new Boba()),
1103
3273
  },
1104
3274
  test: {
3275
+ abstracteth: Object.freeze(new AbstractEthTestnet()),
1105
3276
  ada: Object.freeze(new AdaTestnet()),
1106
3277
  algorand: Object.freeze(new AlgorandTestnet()),
3278
+ apechain: Object.freeze(new ApeChainTestnet()),
3279
+ apt: Object.freeze(new AptTestnet()),
1107
3280
  arbitrum: Object.freeze(new ArbitrumTestnet()),
3281
+ arcusdc: Object.freeze(new ArcUSDCTestnet()),
3282
+ asi: Object.freeze(new AsiTestnet()),
1108
3283
  atom: Object.freeze(new AtomTestnet()),
1109
3284
  avalancheC: Object.freeze(new AvalancheCTestnet()),
1110
3285
  avalancheP: Object.freeze(new AvalanchePTestnet()),
3286
+ baby: Object.freeze(new BabyTestnet()),
3287
+ basechain: Object.freeze(new BaseChainTestnet()),
1111
3288
  bitcoin: Object.freeze(new BitcoinTestnet()),
3289
+ bitcoinPublicSignet: Object.freeze(new BitcoinPublicSignet()),
3290
+ bitcoinTestnet4: Object.freeze(new BitcoinTestnet4()),
3291
+ bitcoinBitGoSignet: Object.freeze(new BitcoinBitGoSignet()),
1112
3292
  bitcoinCash: Object.freeze(new BitcoinCashTestnet()),
1113
3293
  bitcoinGold: Object.freeze(new BitcoinGoldTestnet()),
1114
3294
  bitcoinSV: Object.freeze(new BitcoinSVTestnet()),
1115
- bera: Object.freeze(new BeraTestnet()),
3295
+ bera: Object.freeze(new BerachainTestnet()),
1116
3296
  bld: Object.freeze(new BldTestnet()),
1117
3297
  bsc: Object.freeze(new BinanceSmartChainTestnet()),
3298
+ canton: Object.freeze(new CantonTestnet()),
1118
3299
  casper: Object.freeze(new CasperTestnet()),
1119
3300
  celo: Object.freeze(new CeloTestnet()),
3301
+ chiliz: Object.freeze(new ChilizTestnet()),
3302
+ codexeth: Object.freeze(new CodexEthTestnet()),
3303
+ coredao: Object.freeze(new CoredaoTestnet()),
3304
+ cronos: Object.freeze(new CronosTestnet()),
1120
3305
  dash: Object.freeze(new DashTestnet()),
1121
3306
  dogecoin: Object.freeze(new DogecoinTestnet()),
1122
- dot: Object.freeze(new PolkadotTestnet()),
3307
+ dogeos: Object.freeze(new DogeosTestnet()),
3308
+ dot: Object.freeze(new WestendAssetHub()),
3309
+ dydx: Object.freeze(new DydxTestnet()),
1123
3310
  eCash: Object.freeze(new ECashTestnet()),
1124
3311
  eos: Object.freeze(new EosTestnet()),
1125
3312
  fiat: Object.freeze(new FiatTestnet()),
3313
+ fetchai: Object.freeze(new FetchAiTestnet()),
3314
+ flow: Object.freeze(new FlowTestnet()),
3315
+ tgasevm: Object.freeze(new GasEvmTestnet()),
3316
+ flr: Object.freeze(new FlareTestnet()),
3317
+ flrP: Object.freeze(new FlarePTestnet()),
3318
+ fluenteth: Object.freeze(new FluentETHTestnet()),
3319
+ h: Object.freeze(new HumanityProtocolTestnet()),
3320
+ mon: Object.freeze(new MonadTestnet()),
3321
+ megaeth: Object.freeze(new MegaETHTestnet()),
1126
3322
  pyrmont: Object.freeze(new Pyrmont()),
3323
+ plume: Object.freeze(new PlumeTestnet()),
1127
3324
  ethereumClassicTestnet: Object.freeze(new EthereumClassicTestnet()),
1128
3325
  hash: Object.freeze(new HashTestnet()),
1129
3326
  hedera: Object.freeze(new HederaTestnet()),
3327
+ hoodeth: Object.freeze(new HoodethTestnet()),
3328
+ hppeth: Object.freeze(new HppethTestnet()),
3329
+ prividiumeth: Object.freeze(new PrividiumETHTestnet()),
3330
+ hederaEVM: Object.freeze(new HederaEVMTestnet()),
3331
+ hemieth: Object.freeze(new HemiEthTestnet()),
3332
+ inketh: Object.freeze(new InkEthTestnet()),
3333
+ icp: Object.freeze(new IcpTestnet()),
3334
+ ip: Object.freeze(new IPTestnet()),
3335
+ initia: Object.freeze(new InitiaTestnet()),
1130
3336
  injective: Object.freeze(new InjectiveTestnet()),
3337
+ iota: Object.freeze(new IotaTestnet()),
3338
+ irys: Object.freeze(new IrysTestnet()),
1131
3339
  islm: Object.freeze(new IslmTestnet()),
1132
- kava: Object.freeze(new KavaTestnet()),
3340
+ jovayeth: Object.freeze(new JovayETHTestnet()),
3341
+ kaspa: Object.freeze(new KaspaTestnet()),
3342
+ katanaeth: Object.freeze(new KatanaEthTestnet()),
3343
+ kavacosmos: Object.freeze(new KavaCosmosTestnet()),
3344
+ kavaevm: Object.freeze(new KavaEVMTestnet()),
1133
3345
  kovan: Object.freeze(new Kovan()),
1134
3346
  goerli: Object.freeze(new Goerli()),
1135
3347
  holesky: Object.freeze(new Holesky()),
3348
+ hoodi: Object.freeze(new Hoodi()),
3349
+ lnbtc: Object.freeze(new LightningBitcoinTestnet()),
1136
3350
  litecoin: Object.freeze(new LitecoinTestnet()),
3351
+ mantle: Object.freeze(new MantleTestnet()),
3352
+ mantra: Object.freeze(new MantraTestnet()),
1137
3353
  polygon: Object.freeze(new PolygonTestnet()),
3354
+ polyx: Object.freeze(new PolymeshTestnet()),
3355
+ phrs: Object.freeze(new PharosTestnet()),
3356
+ ctc: Object.freeze(new CreditcoinTestnet()),
3357
+ hypeevm: Object.freeze(new HypeEVMTestnet()),
3358
+ hyperliquid: Object.freeze(new HyperliquidTestnet()),
3359
+ lineaeth: Object.freeze(new LineaETHTestnet()),
3360
+ oas: Object.freeze(new OasTestnet()),
3361
+ og: Object.freeze(new OgTestnet()),
1138
3362
  ofc: Object.freeze(new OfcTestnet()),
3363
+ okbxlayer: Object.freeze(new XlayerTestnet()),
3364
+ opbnb: Object.freeze(new OpBNBTestnet()),
3365
+ fantom: Object.freeze(new FantomTestnet()),
3366
+ morph: Object.freeze(new MorphTestnet()),
3367
+ morpheth: Object.freeze(new MorphETHTestnet()),
1139
3368
  optimism: Object.freeze(new OptimismTestnet()),
1140
3369
  osmo: Object.freeze(new OsmoTestnet()),
1141
3370
  rbtc: Object.freeze(new RbtcTestnet()),
3371
+ rune: Object.freeze(new RuneTestNet()),
3372
+ sgb: Object.freeze(new SongbirdTestnet()),
1142
3373
  stellar: Object.freeze(new StellarTestnet()),
1143
3374
  sei: Object.freeze(new SeiTestnet()),
3375
+ seievm: Object.freeze(new SeiEvmTestnet()),
1144
3376
  sol: Object.freeze(new SolTestnet()),
3377
+ starknet: Object.freeze(new StarknetTestnet()),
1145
3378
  sui: Object.freeze(new SuiTestnet()),
1146
3379
  near: Object.freeze(new NearTestnet()),
1147
3380
  stx: Object.freeze(new StxTestnet()),
3381
+ stt: Object.freeze(new SomniaTestnet()),
3382
+ scrolleth: Object.freeze(new ScrollEthTestnet()),
3383
+ soneium: Object.freeze(new SoneiumTestnet()),
3384
+ sonic: Object.freeze(new SonicTestnet()),
3385
+ kaia: Object.freeze(new KaiaTestnet()),
1148
3386
  susd: Object.freeze(new SUSDTestnet()),
1149
3387
  coreum: Object.freeze(new CoreumTestnet()),
3388
+ tao: Object.freeze(new BittensorTestnet()),
3389
+ tempo: Object.freeze(new TempoTestnet()),
1150
3390
  tia: Object.freeze(new TiaTestnet()),
1151
3391
  ton: Object.freeze(new TonTestnet()),
1152
3392
  trx: Object.freeze(new TrxTestnet()),
3393
+ usdt0: Object.freeze(new Usdt0Testnet()),
3394
+ vet: Object.freeze(new VetTestnet()),
3395
+ wemix: Object.freeze(new WemixTestnet()),
3396
+ world: Object.freeze(new WorldTestnet()),
3397
+ xdc: Object.freeze(new XdcTestnet()),
3398
+ xpl: Object.freeze(new PlasmaTestnet()),
1153
3399
  xrp: Object.freeze(new XrpTestnet()),
1154
3400
  xtz: Object.freeze(new XtzTestnet()),
3401
+ xtzevm: Object.freeze(new XtzEvmTestnet()),
1155
3402
  zCash: Object.freeze(new ZCashTestnet()),
1156
3403
  zeta: Object.freeze(new ZetaTestnet()),
3404
+ zkSync: Object.freeze(new ZkSyncTestnet()),
3405
+ zkSyncEra: Object.freeze(new ZkSyncEraTestnet()),
3406
+ unieth: Object.freeze(new UniethTestnet()),
3407
+ boba: Object.freeze(new BobaTestnet()),
1157
3408
  },
1158
3409
  };
1159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQW9DO0FBRXBDLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUFFRCxNQUFzQixXQUFXO0NBS2hDO0FBTEQsa0NBS0M7QUF3RkQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFlLE9BQVEsU0FBUSxXQUFXO0lBQTFDOztRQUNFLFNBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7Q0FBQTtBQUVELE1BQU0sUUFBUyxTQUFRLE9BQU87SUFBOUI7O1FBQ0UsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUNsQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxJQUFJLENBQUM7UUFDekIsZ0JBQVcsR0FBRyw2QkFBNkIsQ0FBQztJQUM5QyxDQUFDO0NBQUE7QUFFRCxNQUFNLGVBQWdCLFNBQVEsT0FBTztJQUFyQzs7UUFDRSxTQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDekIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcscUNBQXFDLENBQUM7SUFDdEQsQ0FBQztDQUFBO0FBRUQsTUFBTSxHQUFJLFNBQVEsT0FBTztJQUF6Qjs7UUFDRSxTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixvQkFBZSxHQUFHLE9BQU8sQ0FBQztRQUMx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TSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7S0FDaEM7SUFDRCxJQUFJLEVBQUU7UUFDSixHQUFHLEVB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OUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO0tBQ3ZDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgZW51bSBOZXR3b3JrVHlwZSB7XG4gIE1BSU5ORVQgPSAnbWFpbm5ldCcsXG4gIFRFU1RORVQgPSAndGVzdG5ldCcsXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTmV0d29yayB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBOZXR3b3JrVHlwZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZhbWlseTogQ29pbkZhbWlseTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV4cGxvcmVyVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXR4b05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIE5ldHdvcmsgbmFtZSBhcyBkZWZpbmVkIGluIEBiaXRnby1iZXRhL3V0eG8tbGliIG5ldHdvcmtzLnRzXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRhTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gTmV0d29yayBuYW1lIGFzIGRlZmluZWQgaW4gQGJpdGdvLWJldGEvdXR4by1saWIgbmV0d29ya3MudHNcbiAgLy8gbWF5YmUgYWRkIG5ldHdvcmsgaWRlbnRpZmllciAvIG1hZ2ljIG5ldHdvcmsgbnVtYmVyXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG4gIHBvb2xEZXBvc2l0OiBudW1iZXI7XG4gIHN0YWtlS2V5RGVwb3NpdDogbnVtYmVyO1xuICBtYXhWYWx1ZVNpemU6IG51bWJlcjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplOiBudW1iZXI7XG4gIGNvaW5zUGVyVXR4b1dvcmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFsYW5jaGVOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICByZWFkb25seSBhbGlhczogc3RyaW5nO1xuICByZWFkb25seSBibG9ja2NoYWluSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY0NoYWluQmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldHdvcmtJRDogbnVtYmVyO1xuICByZWFkb25seSBocnA6IHN0cmluZztcbiAgcmVhZG9ubHkgdm06IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRpb25UeEZlZTogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVTdWJuZXRUeDogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVDaGFpblR4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkNvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heENvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN1cHBseTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZUR1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN0YWtlRHVyYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWluRGVsZWdhdGlvblN0YWtlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkRlbGVnYXRpb25GZWU6IHN0cmluZztcbiAgLy8gY3VycmVudCB2YWxpZCBhc3NldCBpZCBpcyBBVkFYXG4gIHJlYWRvbmx5IGF2YXhBc3NldElEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4RmVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heEltcG9ydEZlZTogc3RyaW5nOyAvLyAwLjAxIEFWQVhcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50TmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gc29tZSBjaGFpbnMgcGF5IGZlZXMgdmlhIGFuIGVudGVycHJpc2UgZ2FzIHRhc2suIFRoZSBhY2NvdW50IGV4cGxvcmVyIHVybFxuICAvLyBpcyBhIHVybCB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIGFjY291bnQgZm9yIHRoZSBnYXMgdGFuayBvbi1jaGFpbi5cbiAgcmVhZG9ubHkgYWNjb3VudEV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICByZWFkb25seSBibG9ja0V4cGxvcmVyVXJsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gbmFtZSB0eXBlIG9mIHRoZSBjaGFpbi4gVXNlZCBpbiBzZXR0aW5nIHVwIHRoZSByZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBQb2xrYWRvdFNwZWNOYW1lVHlwZSA9ICdrdXNhbWEnIHwgJ3BvbGthZG90JyB8ICd3ZXN0ZW5kJyB8ICdzdGF0ZW1pbnQnIHwgJ3N0YXRlbWluZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG90TmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gc29tZSBjaGFpbnMgcGF5IGZlZXMgdmlhIGFuIGVudGVycHJpc2UgZ2FzIHRhc2suIFRoZSBhY2NvdW50IGV4cGxvcmVyIHVybFxuICAvLyBpcyBhIHVybCB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIGFjY291bnQgZm9yIHRoZSBnYXMgdGFuayBvbi1jaGFpbi5cbiAgcmVhZG9ubHkgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlO1xuICByZWFkb25seSBnZW5lc2lzSGFzaDogc3RyaW5nO1xuICByZWFkb25seSBzcGVjVmVyc2lvbjogbnVtYmVyO1xuICByZWFkb25seSBjaGFpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHhWZXJzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRoZXJldW1OZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyB1bmlxdWUgY2hhaW4gaWQgdXNlZCBmb3IgcmVwbGF5LXByb3RlY3RpbmcgdHJhbnNhY3Rpb25zXG4gIHJlYWRvbmx5IGNoYWluSWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgLy8gZm9yd2FyZGVyIGNvbmZpZ3VyYXRpb24gYWRkcmVzc2VzIHVzZWQgZm9yIGNhbGN1bGF0aW5nIGZvcndhcmRlciB2ZXJzaW9uIDEgYWRkcmVzc2VzXG4gIHJlYWRvbmx5IGZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICByZWFkb25seSB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJvbk5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIG1heEZlZUxpbWl0OiBzdHJpbmc7XG4gIGNvbnRyYWN0Q2FsbEZlZUxpbWl0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tzTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgcmVhZG9ubHkgc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YWtpbmdDb250cmFjdEFkZHJlc3M6IHN0cmluZztcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgT2ZjTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHt9XG5cbmFic3RyYWN0IGNsYXNzIE1haW5uZXQgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIHR5cGUgPSBOZXR3b3JrVHlwZS5NQUlOTkVUO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBUZXN0bmV0IGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICB0eXBlID0gTmV0d29ya1R5cGUuVEVTVE5FVDtcbn1cblxuY2xhc3MgQWxnb3JhbmQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0FsZ29yYW5kJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BTEdPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FsZ29leHBsb3Jlci5pby90eC8nO1xufVxuXG5jbGFzcyBBbGdvcmFuZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0FsZ29yYW5kVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQUxHTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmFsZ29leHBsb3Jlci5pby90eC8nO1xufVxuXG5jbGFzcyBBZGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWRhTmV0d29yayB7XG4gIG5hbWUgPSAnQWRhQ2FyZGFubyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQURBO1xuICB1dHhvbGliTmFtZSA9ICdjYXJkYW5vJztcbiAgcG9vbERlcG9zaXQgPSA1MDAwMDAwMDA7XG4gIHN0YWtlS2V5RGVwb3NpdCA9IDIwMDAwMDA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY2FyZGFuby5vcmcvZW4vdHJhbnNhY3Rpb24/aWQ9JztcbiAgY29pbnNQZXJVdHhvV29yZCA9IDM0NDgyO1xuICBtYXhUcmFuc2FjdGlvblNpemUgPSA4MDAwO1xuICBtYXhWYWx1ZVNpemUgPSA0MDAwO1xufVxuXG5jbGFzcyBBZGFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFkYU5ldHdvcmsge1xuICBuYW1lID0gJ0FkYUNhcmRhbm9UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BREE7XG4gIHV0eG9saWJOYW1lID0gJ2NhcmRhbm9UZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wcmVwcm9kLmNleHBsb3Jlci5pby8nO1xuICBjb2luc1BlclV0eG9Xb3JkID0gMzQ0ODI7XG4gIG1heFRyYW5zYWN0aW9uU2l6ZSA9IDgwMDA7XG4gIG1heFZhbHVlU2l6ZSA9IDQwMDA7XG4gIHBvb2xEZXBvc2l0ID0gNTAwMDAwMDAwO1xuICBzdGFrZUtleURlcG9zaXQgPSAyMDAwMDAwO1xufVxuXG5jbGFzcyBBcmJpdHJ1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FyYml0cnVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUkJFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0FSQkVUSCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdBUkJFVEgtRVJDMjAnO1xufVxuXG5jbGFzcyBBcmJpdHJ1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmFyYmlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdBUkJFVEgnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQVJCRVRILUVSQzIwJztcbn1cblxuY2xhc3MgQXZhbGFuY2hlQyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc25vd3RyYWNlLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Nub3d0cmFjZS5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MzExNDtcbn1cblxuY2xhc3MgQXZhbGFuY2hlQ1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyBodHRwczovL2RvY3MuYXZheC5uZXR3b3JrL2J1aWxkL3R1dG9yaWFscy9zbWFydC1jb250cmFjdHMvZGVwbG95LWEtc21hcnQtY29udHJhY3Qtb24tYXZhbGFuY2hlLXVzaW5nLXJlbWl4LWFuZC1tZXRhbWFzayNhdmFsYW5jaGUtbWFpbm5ldC1zZXR0aW5nc1xuICBuYW1lID0gJ0F2YWxhbmNoZUNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNub3d0cmFjZS5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNub3d0cmFjZS5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MzExMztcbn1cblxuY2xhc3MgQXZhbGFuY2hlUCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBdmFsYW5jaGVOZXR3b3JrIHtcbiAgbmFtZSA9ICdBdmFsYW5jaGVQJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLmF2YXgubmV0d29yay9wLWNoYWluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL3AtY2hhaW4vYWRkcmVzcy8nO1xuICBibG9ja2NoYWluSUQgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWSc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRCA9ICcycTllNHI2TXUzVTY4blUxZllqZ2JSNkp2d3JSeDM2Q29ocEFYNVVReHNlNTV4MVE1JztcbiAgYXZheEFzc2V0SUQgPSAnRnZ3RUFobXhLZmVpRzhTbkV2cTQyaGM2d2hSeVkzRUZZQXZlYk1xRE5ER0NneE41Wic7XG4gIG5ldHdvcmtJRCA9IDE7XG4gIGhycCA9ICdhdmF4JztcbiAgYWxpYXMgPSAnUCc7XG4gIHZtID0gJ3BsYXRmb3Jtdm0nO1xuICB0eEZlZSA9ICcxMDAwMDAwJzsgLy8gMSBNSUxMSUFWQVhcbiAgbWF4SW1wb3J0RmVlID0gJzEwMDAwMDAwJzsgLy8gMC4wMSBBVkFYXG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRlQ2hhaW5UeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0aW9uVHhGZWUgPSAnMTAwMDAwMDAnOyAvLyAxIENFTlRJQVZBWFxuICBtaW5Db25zdW1wdGlvbiA9ICcwLjEnO1xuICBtYXhDb25zdW1wdGlvbiA9ICcwLjEyJztcbiAgbWF4U3VwcGx5ID0gJzcyMDAwMDAwMDAwMDAwMDAwMCc7IC8vIDcyMCBtaWwgdG9rZW5zXG4gIG1pblN0YWtlID0gJzIwMDAwMDAwMDAwMDAnOyAvLyAyMDAwIEFWQVhcbiAgbWluU3Rha2VEdXJhdGlvbiA9ICcxMjA5NjAwJzsgLy8gMiB3ZWVrc1xuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICcyNTAwMDAwMDAwMCc7IC8vIDI1IEFWQVhcbiAgbWluRGVsZWdhdGlvbkZlZSA9ICcyJztcbn1cblxuY2xhc3MgQXZhbGFuY2hlUFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQXZhbGFuY2hlTmV0d29yayB7XG4gIG5hbWUgPSAnQXZhbGFuY2hlUFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvcC1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLXRlc3QuYXZheC5uZXR3b3JrL3AtY2hhaW4vYWRkcmVzcy8nO1xuICBibG9ja2NoYWluSUQgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWSc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRCA9ICd5SDhEN1RoTkpreG10a3V2MmpnQmE0UDFSbjNRcHI0cFByN1FZTmZjZG9TNms2SFdwJztcbiAgYXZheEFzc2V0SUQgPSAnVThpUnFKb2lKbTh4WkhBYWNtdll5WlZ3cVF4NnVETnRRZVAzQ1E2ZmNnUWszSnFuSyc7XG4gIG5ldHdvcmtJRCA9IDU7XG4gIGFsaWFzID0gJ1AnO1xuICBocnAgPSAnZnVqaSc7XG4gIHZtID0gJ3BsYXRmb3Jtdm0nO1xuICB0eEZlZSA9ICcxMDAwMDAwJzsgLy8gMSBNSUxMSUFWQVhcbiAgbWF4SW1wb3J0RmVlID0gJzEwMDAwMDAwJzsgLy8gMC4wMSBBVkFYXG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRlQ2hhaW5UeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0aW9uVHhGZWUgPSAnMTAwMDAwMDAnOyAvLyAxIENFTlRJQVZBWFxuICBtaW5Db25zdW1wdGlvbiA9ICcwLjEnO1xuICBtYXhDb25zdW1wdGlvbiA9ICcwLjEyJztcbiAgbWF4U3VwcGx5ID0gJzcyMDAwMDAwMDAwMDAwMDAwMCc7IC8vIDcyMCBtaWwgdG9rZW5zXG4gIG1pblN0YWtlID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgbWluU3Rha2VEdXJhdGlvbiA9ICc4NjQwMCc7IC8vIDEgZGF5XG4gIG1heFN0YWtlRHVyYXRpb24gPSAnMzE1MzYwMDAnOyAvLyAxIHllYXJcbiAgbWluRGVsZWdhdGlvblN0YWtlID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgbWluRGVsZWdhdGlvbkZlZSA9ICcyJztcbn1cblxuY2xhc3MgQmluYW5jZVNtYXJ0Q2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ic2NzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTY7XG59XG5cbmNsYXNzIEJpbmFuY2VTbWFydENoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JpbmFuY2VTbWFydENoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYnNjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5ic2NzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5Nztcbn1cblxuY2xhc3MgQml0Y29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRDO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRDO1xuICB1dHhvbGliTmFtZSA9ICd0ZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkNhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5DYXNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0g7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5jYXNoJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuYmxvY2tjaGFpbi5jb20vYmNoL3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5DYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0g7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5jYXNoVGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LmJsb2NrY2hhaW4uY29tL2JjaC10ZXN0bmV0L3R4Lyc7XG59XG5jbGFzcyBCaXRjb2luU1YgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5TVic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNWO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luc3YnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2JpdGNvaW4tc3YvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgQml0Y29pblNWVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblNWVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNWO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luc3ZUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEJpdGNvaW5Hb2xkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luR29sZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRHO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luZ29sZCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnRnZXhwbG9yZXIuY29tL3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5Hb2xkVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkdvbGRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEc7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5nb2xkVGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBEYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEYXNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5EQVNIO1xuICB1dHhvbGliTmFtZSA9ICdkYXNoJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnNpZ2h0LmRhc2hldm8ub3JnL2luc2lnaHQvdHgvJztcbn1cblxuY2xhc3MgRGFzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0Rhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5EQVNIO1xuICB1dHhvbGliTmFtZSA9ICdkYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1pbnNpZ2h0LmRhc2hldm8ub3JnL2luc2lnaHQvdHgvJztcbn1cblxuY2xhc3MgRG9nZWNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2Vjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET0dFO1xuICB1dHhvbGliTmFtZSA9ICdkb2dlY29pbic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vZG9nZWNvaW4vdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgRG9nZWNvaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEb2dlY29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0U7XG4gIHV0eG9saWJOYW1lID0gJ2RvZ2Vjb2luVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tleHBsb3Jlci5vbmUvZG9nZWNvaW4vdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBFQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRUNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSEE7XG4gIHV0eG9saWJOYW1lID0gJ2VjYXNoJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9lY2FzaCc7XG59XG5cbmNsYXNzIEVDYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRUNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0hBO1xuICB1dHhvbGliTmFtZSA9ICdlY2FzaFRlc3QnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgUG9sa2Fkb3QgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRG90TmV0d29yayB7XG4gIG5hbWUgPSAnUG9sa2Fkb3QnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wb2xrYWRvdC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICdwb2xrYWRvdCcgYXMgUG9sa2Fkb3RTcGVjTmFtZVR5cGU7XG4gIGdlbmVzaXNIYXNoID0gJzB4OTFiMTcxYmIxNThlMmQzODQ4ZmEyM2E5ZjFjMjUxODJmYjhlMjAzMTNiMmMxZWI0OTIxOWRhN2E3MGNlOTBjMyc7XG4gIHNwZWNWZXJzaW9uID0gOTE0MDtcbiAgY2hhaW5OYW1lID0gJ1BvbGthZG90JztcbiAgdHhWZXJzaW9uID0gOTtcbn1cblxuY2xhc3MgUG9sa2Fkb3RUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1dlc3RlbmQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93ZXN0ZW5kLnN1YnNjYW4uaW8vZXh0cmluc2ljLyc7XG4gIHNwZWNOYW1lID0gJ3dlc3RlbmQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweGUxNDNmMjM4MDNhYzUwZThmNmY4ZTYyNjk1ZDFjZTllNGUxZDY4YWEzNmMxY2QyY2ZkMTUzNDAyMTNmMzQyM2UnO1xuICBzcGVjVmVyc2lvbiA9IDk0MzA7XG4gIGNoYWluTmFtZSA9ICdXZXN0ZW5kJztcbiAgdHhWZXJzaW9uID0gMjI7XG59XG5cbmNsYXNzIENlbG8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DRUxPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNlbG8ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNlbG8ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyMjIwO1xufVxuXG5jbGFzcyBDZWxvVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NlbG9UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DRUxPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FsZmFqb3Jlcy1ibG9ja3Njb3V0LmNlbG8tdGVzdG5ldC5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWxmYWpvcmVzLWJsb2Nrc2NvdXQuY2Vsby10ZXN0bmV0Lm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0NDc4Nztcbn1cblxuLy8gVE9ETyB1cGRhdGUgZXhwbG9yZXJVcmwgU1RMWC0xNjU3XG5jbGFzcyBDYXNwZXIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Nhc3Blcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1NQUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jc3ByLmxpdmUvZGVwbG95Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NzcHIubGl2ZS9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIENhc3BlclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Nhc3BlclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNTUFI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaW50ZWdyYXRpb24uY3Nwci5saXZlL2RlcGxveS8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnRlZ3JhdGlvbi5jc3ByLmxpdmUvYWNjb3VudC8nO1xufVxuXG5jbGFzcyBFdGhlcmV1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gMTtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDBjOWIyNWRmZTAyYjJjODljY2U4NmUxYTBiZDZjMDRhN2FjYTAxYjYnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGZmYTM5NzI4NWNlNDZmYjc4YzU4OGE5ZTk5MzI4NmFhYzY4YzM3Y2QnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHgwNTlmZmFmZGM2ZWY1OTQyMzBkZTQ0ZjgyNGUyYmQwYTUxY2E1ZGVkJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBFdGhlcmV1bTIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtMic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIMjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS90eCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FkZHJlc3MnO1xufVxuXG5jbGFzcyBFdGhlcmV1bVcgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bSBQb1cnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSFc7XG4gIGV4cGxvcmVyVXJsID0gJyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICcnO1xuICBjaGFpbklkID0gMTAwMDE7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJyc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgUHlybW9udCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUHlybW9udCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIMjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9weXJtb250L3R4JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vcHlybW9udC9hZGRyZXNzJztcbn1cblxuY2xhc3MgS292YW4gZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLb3Zhbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2tvdmFuLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rb3Zhbi5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSA0MjtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGMwYWFmMjY0OWU3YjBmMzk1MDE2NDY4MWVjYTJiMWE4ZjY1NGE0NzgnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGE3OWE0ODUyOTRkMjI2MDc1ZWU2NTQxMGJjOTRlYTQ1NGYzZTQwOWQnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhhOTQ2ZTc0OGYyNWE1ZWM2ODc4ZWIxYTlmMmU5MDIwMjgxNzRjMGIzJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBHb2VybGkgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdHb2VybGknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9nb2VybGkuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSA1O1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZThlODQ3Y2Y1NzNmYzhlZDc1NjIxNjYwYTM2YWZmZDE4YzU0M2Q3ZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZjVjYWE1ZTNlOTNhZmJjMjFiZDE5ZWY0ZjI2OTFhMzcxMjFmNzkxNyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDgwZDVjOTFlOGNjMjFkZjY5ZmM0ZDY0ZjIxZGMyZDgzMTIxYzM5OTknO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG59XG5cbmNsYXNzIEhvbGVza3kgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIb2xlc2t5JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9sZXNreS5iZWFjb25jaGEuaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9sZXNreS5iZWFjb25jaGEuaW4vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9sZXNreS5iZWFjb25jaGEuaW4vYmxvY2svJztcbiAgLy8gaHR0cHM6Ly9jaGFpbmxpc3Qub3JnL2NoYWluLzE3MDAwXG4gIGNoYWluSWQgPSAxNzAwMDtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGU4ZTg0N2NmNTczZmM4ZWQ3NTYyMTY2MGEzNmFmZmQxOGM1NDNkN2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGY1Y2FhNWUzZTkzYWZiYzIxYmQxOWVmNGYyNjkxYTM3MTIxZjc5MTcnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg4MGQ1YzkxZThjYzIxZGY2OWZjNGQ2NGYyMWRjMmQ4MzEyMWMzOTk5JztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBFdGhlcmV1bUNsYXNzaWMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bUNsYXNzaWMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LmNvbS9ldGMvbWFpbm5ldC90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LmNvbS9ldGMvbWFpbm5ldC9hZGRyZXNzLyc7XG4gIC8vIGZyb20gIGh0dHBzOi8vY2hhaW5pZC5uZXR3b3JrL2NoYWlucy9cbiAgY2hhaW5JZCA9IDYxO1xufVxuXG5jbGFzcyBFdGhlcmV1bUNsYXNzaWNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW1DbGFzc2ljVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tb3Jkb3IvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21vcmRvci9hZGRyZXNzLyc7XG4gIC8vIGZyb20gIGh0dHBzOi8vY2hhaW5pZC5uZXR3b3JrL2NoYWlucy9cbiAgY2hhaW5JZCA9IDYzO1xufVxuXG5jbGFzcyBFb3MgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Vvcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmVvc25ldHdvcmsuY29tL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEVvc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Vvc1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9reWxpbi5lb3N4LmlvL3R4Lyc7XG59XG5cbmNsYXNzIEhlZGVyYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQkFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmthYnV0by5zaC9tYWlubmV0L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEhlZGVyYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hlZGVyYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhCQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIua2FidXRvLnNoL3Rlc3RuZXQvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgTGl0ZWNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0xpdGVjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MVEM7XG4gIHV0eG9saWJOYW1lID0gJ2xpdGVjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9saXRlY29pbi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBMaXRlY29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0xpdGVjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTFRDO1xuICB1dHhvbGliTmFtZSA9ICdsaXRlY29pblRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrZXhwbG9yZXIub25lL2xpdGVjb2luL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgT2ZjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIE9mY05ldHdvcmsge1xuICBuYW1lID0gJ09mYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0ZDO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgT2ZjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBPZmNOZXR3b3JrIHtcbiAgbmFtZSA9ICdPZmNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRkM7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBSYnRjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUmJ0Yyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUkJUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5yc2suY28vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucnNrLmNvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMwO1xufVxuXG5jbGFzcyBSYnRjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1JidGNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5SQlRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQucnNrLmNvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQucnNrLmNvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMxO1xufVxuXG5jbGFzcyBTdGVsbGFyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTdGVsbGFyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3RlbGxhci5leHBlcnQvZXhwbG9yZXIvcHVibGljL3R4Lyc7XG59XG5cbmNsYXNzIFN0ZWxsYXJUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTdGVsbGFyVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWExNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N0ZWxsYXIuZXhwZXJ0L2V4cGxvcmVyL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgU29sIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTb2wnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zb2xhbmEuY29tL3R4Lyc7XG59XG5cbmNsYXNzIFNvbFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NvbFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zb2xhbmEuY29tL3R4Lz9jbHVzdGVyPWRldm5ldCc7XG59XG5cbmNsYXNzIFN1aSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU3VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL3R4YmxvY2svP25ldHdvcms9bWFpbm5ldCc7XG59XG5cbmNsYXNzIFN1aVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU3VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL3R4YmxvY2svP25ldHdvcms9dGVzdG5ldCc7XG59XG5cbmNsYXNzIEF0b20gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Nvc21vcyBIdWIgQVRPTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hdG9tc2Nhbi5jb20vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIEF0b21UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENvc21vcyBIdWIgQVRPTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50aGV0YS10ZXN0bmV0LnBvbHlwb3JlLnh5ei90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgT3NtbyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnT3Ntb3Npcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1NNTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vb3Ntb3Npcy90eHMvJztcbn1cblxuY2xhc3MgT3Ntb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgT3Ntb3Npcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1NNTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm9zbW9zaXMuZXhwbG9yZXJzLmd1cnUvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgVGlhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxlc3RpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVElBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9jZWxlc3RpYS90eC8nO1xufVxuXG5jbGFzcyBUaWFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENlbGVzdGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5USUE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5taW50c2Nhbi5pby9jZWxlc3RpYS10ZXN0bmV0L3R4cy8nO1xufVxuXG5jbGFzcyBIYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdQcm92ZW5hbmNlJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQVNIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnByb3ZlbmFuY2UuaW8vdHgvJztcbn1cblxuY2xhc3MgSGFzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgUHJvdmVuYW5jZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEFTSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0LnByb3ZlbmFuY2UuaW8vdHgvJztcbn1cblxuY2xhc3MgQmxkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBZ29yaWMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJMRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iaWdkaXBwZXIubGl2ZS9hZ29yaWMvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIEJsZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQWdvcmljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CTEQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZW1lcnluZXQuZXhwbG9yZXIuYWdvcmljLm5ldC9hZ29yaWMvdHgvJztcbn1cblxuY2xhc3MgU2VpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTZWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSTtcbiAgLy8gIFRPRE8oQkctNzg5OTcpOiBTZWkgaXMgc3RpbGwgb25seSBpbiB0ZXN0bmV0IHVwZGF0ZSB0byBtYWlubmV0IHVybCB3aGVuIGl0J3MgbGl2ZVxuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlaS5leHBsb3JlcnMuZ3VydS90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBTZWlUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFNlaSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0VJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5zZWlzY2FuLmFwcC9hdGxhbnRpYy0yL3R4cy8nO1xufVxuXG5jbGFzcyBaZXRhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdaZXRhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRVRBO1xuICAvLyAgVE9ETyhXSU4tMTQyKTogWmV0YSBpcyBzdGlsbCBvbmx5IGluIHRlc3RuZXQgdXBkYXRlIHRvIG1haW5uZXQgdXJsIHdoZW4gaXQncyBsaXZlXG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemV0YWNoYWluLmNvbS9jYy90eC8nO1xufVxuXG5jbGFzcyBaZXRhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBaZXRhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRVRBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3pldGFjaGFpbi5leHBsb3JlcnMuZ3VydS90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBJbmplY3RpdmUgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0luamVjdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5KRUNUSVZFO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmluamVjdGl2ZS5uZXR3b3JrL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEluamVjdGl2ZVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0luamVjdGl2ZVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSkVDVElWRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmV4cGxvcmVyLmluamVjdGl2ZS5uZXR3b3JrL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEthdmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0thdmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2thdmEvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIEthdmFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FWQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm1pbnRzY2FuLmlvL2thdmEtdGVzdG5ldC90eHMvJztcbn1cblxuY2xhc3MgVG9uIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9odHRwczovL3RvbnNjYW4ub3JnLyc7XG59XG5cbmNsYXNzIFRvblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgVG9uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaHR0cHM6Ly90ZXN0bmV0LnRvbnNjYW4ub3JnLyc7XG59XG5cbmNsYXNzIENvcmV1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ29yZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY29yZXVtLmNvbS9jb3JldW0vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIENvcmV1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0NvcmV1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNPUkVVTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LTEuY29yZXVtLmRldi9jb3JldW0vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIEJlcmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0JlcmFjaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkVSQTtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEJlcmFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdCZXJhY2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CRVJBO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgSXNsbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGFxcSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9waW5nLnB1Yi9oYXFxL3R4Lyc7XG59XG5cbmNsYXNzIElzbG1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIYXFxVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBpbmcucHViL2hhcXEvdHgvJztcbn1cblxuY2xhc3MgU3R4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1RYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN0YWNrcy5jby90eGlkLyc7XG4gIHNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcyA9ICdTUDNGQlIyQUdLNUg5UUJESDNFRU42REY4RUs4Slk3Ulg4UUo1U1ZURSc7XG4gIHN0YWtpbmdDb250cmFjdEFkZHJlc3MgPSAnU1AwMDAwMDAwMDAwMDAwMDAwMDAwMDJRNlZGNzgnO1xufVxuXG5jbGFzcyBTdHhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdGFja3MuY28vdHhpZC8/Y2hhaW49dGVzdG5ldCc7XG4gIHNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcyA9ICdTVDNGMVg0UUdWMlNNOFhEOTZYNDVNNlJUUVhLQTFQWkpaWkNRQUI0Qic7XG4gIHN0YWtpbmdDb250cmFjdEFkZHJlc3MgPSAnU1QwMDAwMDAwMDAwMDAwMDAwMDAwMDJBTVc0MkgnO1xufVxuXG5jbGFzcyBTVVNEIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTVVNEJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVVNEO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgU1VTRFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NVU0RUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVVNEO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRmlhdFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQmFzZU5ldHdvcmsge1xuICBuYW1lID0gJ0ZpYXRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GSUFUO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRmlhdCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBCYXNlTmV0d29yayB7XG4gIG5hbWUgPSAnRmlhdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRklBVDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFRyeCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBUcm9uTmV0d29yayB7XG4gIG5hbWUgPSAnVHJ4JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHJvbnNjYW4ub3JnLyMvdHJhbnNhY3Rpb24vJztcbiAgbWF4RmVlTGltaXQgPSAnNTAwMDAwMDAwMCc7XG4gIGNvbnRyYWN0Q2FsbEZlZUxpbWl0ID0gJzEwMDAwMDAwMCc7XG59XG5cbmNsYXNzIFRyeFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVHJvbk5ldHdvcmsge1xuICBuYW1lID0gJ1RyeFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRSWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFzdGEudHJvbnNjYW4ub3JnLyMvdHJhbnNhY3Rpb24vJztcbiAgbWF4RmVlTGltaXQgPSAnNTAwMDAwMDAwMCc7XG4gIGNvbnRyYWN0Q2FsbEZlZUxpbWl0ID0gJzEwMDAwMDAwMCc7XG59XG5cbmNsYXNzIFhycCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHJwJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YUlA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbGl2ZW5ldC54cnBsLm9yZy90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgWHJwVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHJwVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3QuYml0aG9tcC5jb20vZXhwbG9yZXIvJztcbn1cblxuY2xhc3MgWHR6IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHonO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90enN0YXRzLmNvbS8nO1xufVxuXG5jbGFzcyBYdHpUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHpUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFo7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbXVtYmFpLnR6c3RhdHMuY29tLyc7XG59XG5cbmNsYXNzIFpDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdaQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVDO1xuICB1dHhvbGliTmFtZSA9ICd6Y2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW4uc28vdHgvWkVDLyc7XG59XG5cbmNsYXNzIFpDYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnWkNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRUM7XG4gIHV0eG9saWJOYW1lID0gJ3pjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW4uc28vdHgvWkVDVEVTVC8nO1xufVxuXG5jbGFzcyBOZWFyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdOZWFyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm5lYXIub3JnL3RyYW5zYWN0aW9ucy8nO1xuICBmZWVSZXNlcnZlID0gJzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcbiAgc3RvcmFnZVJlc2VydmUgPSAnMjAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7IC8vIGZlZVJlc2VydmUgKyBzdG9yYWdlUmVzZXJ2ZSBpcyBtaW5pbXVtIGFjY291bnQgYmFsYW5jZSBmb3IgYSBORUFSIHdhbGxldCBodHRwczovL2RvY3MubmVhci5vcmcvaW50ZWdyYXRvci9mYXEjaXMtdGhlcmUtYS1taW5pbXVtLWFjY291bnQtYmFsYW5jZVxufVxuXG5jbGFzcyBOZWFyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTmVhclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk5FQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5uZWFyLm9yZy90cmFuc2FjdGlvbnMvJztcbiAgZmVlUmVzZXJ2ZSA9ICc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIHN0b3JhZ2VSZXNlcnZlID0gJzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBmZWVSZXNlcnZlICsgc3RvcmFnZVJlc2VydmUgaXMgbWluaW11bSBhY2NvdW50IGJhbGFuY2UgZm9yIGEgTkVBUiB3YWxsZXQgaHR0cHM6Ly9kb2NzLm5lYXIub3JnL2ludGVncmF0b3IvZmFxI2lzLXRoZXJlLWEtbWluaW11bS1hY2NvdW50LWJhbGFuY2Vcbn1cblxuY2xhc3MgUG9seWdvbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlHT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3BvbHlnb25zY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjllZjQ2MDM1ZTlmYTNkNTcwYzU5OGQzMjY2NDI0Y2ExMTQxM2IwYyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDUzOTdkMDg2OWFiYTBkNTVlOTZkNTcxNmQzODNmNmUxZDg2OTVlZDcnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGE3MTk4ZjQ4YzU4ZTkxZjAxMzE3ZTcwY2QyNGM1Y2NlNDc1YzE1NTUnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhlNWRjZGMxM2I2MjhjMmRmODEzZGIxMDgwMzY3ZTkyOWMxNTA3Y2EwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDdhZGM5YjNkNzUyMTcxMDMyMWJlYzdkZDY4OTdkMzM3ZTUzYzI0OTMnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04tRVJDMjAnO1xufVxuXG5jbGFzcyBQb2x5Z29uVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb25UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZR09OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL211bWJhaS5wb2x5Z29uc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbXVtYmFpLnBvbHlnb25zY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MDAwMTtcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHg3ZDEwY2ZkY2I3NjMzNzVmYjVmMGEwZTkxMDFmNDkwZjBiZjFiNDNhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YWEyMjE2ZDcyZDdjMTQ5ZGZlNGMzZGQyMTU0Y2QwMDk5NDIxNjUwNic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ZTM3YzA3ZmFlYzg3YmUwNzVjZTQwMDJiNWZlZGJkZTAwYTRmZTlkNSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDExZjhkNzBhNGVlOWQwOTYyYmIxMTYwZDc3NmQ0YTk5NmNmZGZmNDAnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4Y2RmMDFhMzFlYTJhMWQ2Mjk1MWFhYzNhNTc0M2M0NDE2ZjlkYTNmYic7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUE9MWUdPTi1FUkMyMCc7XG59XG5cbmNsYXNzIE9wdGltaXNtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnT3B0aW1pc20nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9QRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL29wdGltaXN0aWMuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL29wdGltaXN0aWMuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdPUEVUSCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdPUEVUSC1FUkMyMCc7XG59XG5cbmNsYXNzIE9wdGltaXNtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wdGltaXNtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1vcHRpbWlzbS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1vcHRpbWlzbS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNTU0MjA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ09QRVRIJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ09QRVRILUVSQzIwJztcbn1cblxuZXhwb3J0IGNvbnN0IE5ldHdvcmtzID0ge1xuICBtYWluOiB7XG4gICAgYWRhOiBPYmplY3QuZnJlZXplKG5ldyBBZGEoKSksXG4gICAgYWxnb3JhbmQ6IE9iamVjdC5mcmVlemUobmV3IEFsZ29yYW5kKCkpLFxuICAgIGFyYml0cnVtOiBPYmplY3QuZnJlZXplKG5ldyBBcmJpdHJ1bSgpKSxcbiAgICBhdG9tOiBPYmplY3QuZnJlZXplKG5ldyBBdG9tKCkpLFxuICAgIGF2YWxhbmNoZUM6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZUMoKSksXG4gICAgYXZhbGFuY2hlUDogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlUCgpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luKCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGQoKSksXG4gICAgYml0Y29pblNWOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU1YoKSksXG4gICAgYmVyYTogT2JqZWN0LmZyZWV6ZShuZXcgQmVyYSgpKSxcbiAgICBibGQ6IE9iamVjdC5mcmVlemUobmV3IEJsZCgpKSxcbiAgICBic2M6IE9iamVjdC5mcmVlemUobmV3IEJpbmFuY2VTbWFydENoYWluKCkpLFxuICAgIGNhc3BlcjogT2JqZWN0LmZyZWV6ZShuZXcgQ2FzcGVyKCkpLFxuICAgIGNlbG86IE9iamVjdC5mcmVlemUobmV3IENlbG8oKSksXG4gICAgY29yZXVtOiBPYmplY3QuZnJlZXplKG5ldyBDb3JldW0oKSksXG4gICAgZGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgRGFzaCgpKSxcbiAgICBkb2dlY29pbjogT2JqZWN0LmZyZWV6ZShuZXcgRG9nZWNvaW4oKSksXG4gICAgZG90OiBPYmplY3QuZnJlZXplKG5ldyBQb2xrYWRvdCgpKSxcbiAgICBlQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgRUNhc2goKSksXG4gICAgZW9zOiBPYmplY3QuZnJlZXplKG5ldyBFb3MoKSksXG4gICAgZXRoZXJldW06IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtKCkpLFxuICAgIGV0aGVyZXVtMjogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW0yKCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpYzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1DbGFzc2ljKCkpLFxuICAgIGV0aGVyZXVtVzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1XKCkpLFxuICAgIGZpYXQ6IE9iamVjdC5mcmVlemUobmV3IEZpYXQoKSksXG4gICAgaGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgSGFzaCgpKSxcbiAgICBoZWRlcmE6IE9iamVjdC5mcmVlemUobmV3IEhlZGVyYSgpKSxcbiAgICBpbmplY3RpdmU6IE9iamVjdC5mcmVlemUobmV3IEluamVjdGl2ZSgpKSxcbiAgICBpc2xtOiBPYmplY3QuZnJlZXplKG5ldyBJc2xtKCkpLFxuICAgIGthdmE6IE9iamVjdC5mcmVlemUobmV3IEthdmEoKSksXG4gICAgbGl0ZWNvaW46IE9iamVjdC5mcmVlemUobmV3IExpdGVjb2luKCkpLFxuICAgIHBvbHlnb246IE9iamVjdC5mcmVlemUobmV3IFBvbHlnb24oKSksXG4gICAgb2ZjOiBPYmplY3QuZnJlZXplKG5ldyBPZmMoKSksXG4gICAgb3B0aW1pc206IE9iamVjdC5mcmVlemUobmV3IE9wdGltaXNtKCkpLFxuICAgIG9zbW86IE9iamVjdC5mcmVlemUobmV3IE9zbW8oKSksXG4gICAgcmJ0YzogT2JqZWN0LmZyZWV6ZShuZXcgUmJ0YygpKSxcbiAgICBzdGVsbGFyOiBPYmplY3QuZnJlZXplKG5ldyBTdGVsbGFyKCkpLFxuICAgIHNlaTogT2JqZWN0LmZyZWV6ZShuZXcgU2VpKCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sKCkpLFxuICAgIHN1aTogT2JqZWN0LmZyZWV6ZShuZXcgU3VpKCkpLFxuICAgIG5lYXI6IE9iamVjdC5mcmVlemUobmV3IE5lYXIoKSksXG4gICAgc3R4OiBPYmplY3QuZnJlZXplKG5ldyBTdHgoKSksXG4gICAgc3VzZDogT2JqZWN0LmZyZWV6ZShuZXcgU1VTRCgpKSxcbiAgICB0aWE6IE9iamVjdC5mcmVlemUobmV3IFRpYSgpKSxcbiAgICB0b246IE9iamVjdC5mcmVlemUobmV3IFRvbigpKSxcbiAgICB0cng6IE9iamVjdC5mcmVlemUobmV3IFRyeCgpKSxcbiAgICB4cnA6IE9iamVjdC5mcmVlemUobmV3IFhycCgpKSxcbiAgICB4dHo6IE9iamVjdC5mcmVlemUobmV3IFh0eigpKSxcbiAgICB6Q2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgWkNhc2goKSksXG4gICAgemV0YTogT2JqZWN0LmZyZWV6ZShuZXcgWmV0YSgpKSxcbiAgfSxcbiAgdGVzdDoge1xuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhVGVzdG5ldCgpKSxcbiAgICBhbGdvcmFuZDogT2JqZWN0LmZyZWV6ZShuZXcgQWxnb3JhbmRUZXN0bmV0KCkpLFxuICAgIGFyYml0cnVtOiBPYmplY3QuZnJlZXplKG5ldyBBcmJpdHJ1bVRlc3RuZXQoKSksXG4gICAgYXRvbTogT2JqZWN0LmZyZWV6ZShuZXcgQXRvbVRlc3RuZXQoKSksXG4gICAgYXZhbGFuY2hlQzogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlQ1Rlc3RuZXQoKSksXG4gICAgYXZhbGFuY2hlUDogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlUFRlc3RuZXQoKSksXG4gICAgYml0Y29pbjogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblRlc3RuZXQoKSksXG4gICAgYml0Y29pbkNhc2g6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5DYXNoVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGRUZXN0bmV0KCkpLFxuICAgIGJpdGNvaW5TVjogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblNWVGVzdG5ldCgpKSxcbiAgICBiZXJhOiBPYmplY3QuZnJlZXplKG5ldyBCZXJhVGVzdG5ldCgpKSxcbiAgICBibGQ6IE9iamVjdC5mcmVlemUobmV3IEJsZFRlc3RuZXQoKSksXG4gICAgYnNjOiBPYmplY3QuZnJlZXplKG5ldyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQoKSksXG4gICAgY2FzcGVyOiBPYmplY3QuZnJlZXplKG5ldyBDYXNwZXJUZXN0bmV0KCkpLFxuICAgIGNlbG86IE9iamVjdC5mcmVlemUobmV3IENlbG9UZXN0bmV0KCkpLFxuICAgIGRhc2g6IE9iamVjdC5mcmVlemUobmV3IERhc2hUZXN0bmV0KCkpLFxuICAgIGRvZ2Vjb2luOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlY29pblRlc3RuZXQoKSksXG4gICAgZG90OiBPYmplY3QuZnJlZXplKG5ldyBQb2xrYWRvdFRlc3RuZXQoKSksXG4gICAgZUNhc2g6IE9iamVjdC5mcmVlemUobmV3IEVDYXNoVGVzdG5ldCgpKSxcbiAgICBlb3M6IE9iamVjdC5mcmVlemUobmV3IEVvc1Rlc3RuZXQoKSksXG4gICAgZmlhdDogT2JqZWN0LmZyZWV6ZShuZXcgRmlhdFRlc3RuZXQoKSksXG4gICAgcHlybW9udDogT2JqZWN0LmZyZWV6ZShuZXcgUHlybW9udCgpKSxcbiAgICBldGhlcmV1bUNsYXNzaWNUZXN0bmV0OiBPYmplY3QuZnJlZXplKG5ldyBFdGhlcmV1bUNsYXNzaWNUZXN0bmV0KCkpLFxuICAgIGhhc2g6IE9iamVjdC5mcmVlemUobmV3IEhhc2hUZXN0bmV0KCkpLFxuICAgIGhlZGVyYTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhVGVzdG5ldCgpKSxcbiAgICBpbmplY3RpdmU6IE9iamVjdC5mcmVlemUobmV3IEluamVjdGl2ZVRlc3RuZXQoKSksXG4gICAgaXNsbTogT2JqZWN0LmZyZWV6ZShuZXcgSXNsbVRlc3RuZXQoKSksXG4gICAga2F2YTogT2JqZWN0LmZyZWV6ZShuZXcgS2F2YVRlc3RuZXQoKSksXG4gICAga292YW46IE9iamVjdC5mcmVlemUobmV3IEtvdmFuKCkpLFxuICAgIGdvZXJsaTogT2JqZWN0LmZyZWV6ZShuZXcgR29lcmxpKCkpLFxuICAgIGhvbGVza3k6IE9iamVjdC5mcmVlemUobmV3IEhvbGVza3koKSksXG4gICAgbGl0ZWNvaW46IE9iamVjdC5mcmVlemUobmV3IExpdGVjb2luVGVzdG5ldCgpKSxcbiAgICBwb2x5Z29uOiBPYmplY3QuZnJlZXplKG5ldyBQb2x5Z29uVGVzdG5ldCgpKSxcbiAgICBvZmM6IE9iamVjdC5mcmVlemUobmV3IE9mY1Rlc3RuZXQoKSksXG4gICAgb3B0aW1pc206IE9iamVjdC5mcmVlemUobmV3IE9wdGltaXNtVGVzdG5ldCgpKSxcbiAgICBvc21vOiBPYmplY3QuZnJlZXplKG5ldyBPc21vVGVzdG5ldCgpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjVGVzdG5ldCgpKSxcbiAgICBzdGVsbGFyOiBPYmplY3QuZnJlZXplKG5ldyBTdGVsbGFyVGVzdG5ldCgpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaVRlc3RuZXQoKSksXG4gICAgc29sOiBPYmplY3QuZnJlZXplKG5ldyBTb2xUZXN0bmV0KCkpLFxuICAgIHN1aTogT2JqZWN0LmZyZWV6ZShuZXcgU3VpVGVzdG5ldCgpKSxcbiAgICBuZWFyOiBPYmplY3QuZnJlZXplKG5ldyBOZWFyVGVzdG5ldCgpKSxcbiAgICBzdHg6IE9iamVjdC5mcmVlemUobmV3IFN0eFRlc3RuZXQoKSksXG4gICAgc3VzZDogT2JqZWN0LmZyZWV6ZShuZXcgU1VTRFRlc3RuZXQoKSksXG4gICAgY29yZXVtOiBPYmplY3QuZnJlZXplKG5ldyBDb3JldW1UZXN0bmV0KCkpLFxuICAgIHRpYTogT2JqZWN0LmZyZWV6ZShuZXcgVGlhVGVzdG5ldCgpKSxcbiAgICB0b246IE9iamVjdC5mcmVlemUobmV3IFRvblRlc3RuZXQoKSksXG4gICAgdHJ4OiBPYmplY3QuZnJlZXplKG5ldyBUcnhUZXN0bmV0KCkpLFxuICAgIHhycDogT2JqZWN0LmZyZWV6ZShuZXcgWHJwVGVzdG5ldCgpKSxcbiAgICB4dHo6IE9iamVjdC5mcmVlemUobmV3IFh0elRlc3RuZXQoKSksXG4gICAgekNhc2g6IE9iamVjdC5mcmVlemUobmV3IFpDYXNoVGVzdG5ldCgpKSxcbiAgICB6ZXRhOiBPYmplY3QuZnJlZXplKG5ldyBaZXRhVGVzdG5ldCgpKSxcbiAgfSxcbn07XG4iXX0=
3410
+ const networkByName = new Map(Object.values(exports.Networks).flatMap((category) => Object.values(category).map((network) => [network.name, network])));
3411
+ /**
3412
+ * Look up a registered network by its display name (e.g. "Ethereum", "Bitcoin").
3413
+ * Returns undefined for names not registered in local statics.
3414
+ */
3415
+ function getNetworkByName(name) {
3416
+ return networkByName.get(name);
3417
+ }
3418
+ function getNetworksMap() {
3419
+ return new Map(networkByName);
3420
+ }
3421
+ /**
3422
+ * Dynamically register a new network in the lookup map.
3423
+ * Throws if a network with the same name is already registered.
3424
+ */
3425
+ function registerNetwork(network) {
3426
+ if (networkByName.has(network.name)) {
3427
+ throw new Error(`Network '${network.name}' is already registered`);
3428
+ }
3429
+ networkByName.set(network.name, network);
3430
+ }
3431
+ /**
3432
+ * Look up a network by its display name or JSON representation.
3433
+ *
3434
+ * Resolution order:
3435
+ * 1. If `network` is a JSON string representing a DynamicNetworkOptions object
3436
+ * (must have `name`, `type`, and `family` fields), construct and
3437
+ * return a new DynamicNetwork instance.
3438
+ * 2. Local statics cache via getNetworkByName().
3439
+ *
3440
+ * @param network - A network display name (e.g. "bitcoin") or a JSON-encoded
3441
+ * DynamicNetworkOptions object.
3442
+ * @returns The matching BaseNetwork (or DynamicNetwork) instance.
3443
+ * @throws {Error} If the network is not found in local statics and the input
3444
+ * is not a valid DynamicNetworkOptions JSON string.
3445
+ */
3446
+ function getNetwork(network) {
3447
+ // Check if the input is a JSON-encoded DynamicNetworkOptions object.
3448
+ try {
3449
+ const parsed = JSON.parse(network);
3450
+ if (parsed !== null &&
3451
+ typeof parsed === 'object' &&
3452
+ typeof parsed.name === 'string' &&
3453
+ typeof parsed.type === 'string' &&
3454
+ typeof parsed.family === 'string') {
3455
+ return new DynamicNetwork(parsed);
3456
+ }
3457
+ }
3458
+ catch {
3459
+ // Not valid JSON — fall through to local lookup by name.
3460
+ }
3461
+ const networkObj = getNetworkByName(network);
3462
+ if (!networkObj) {
3463
+ throw new Error(`Network ${network} not found`);
3464
+ }
3465
+ return networkObj;
3466
+ }
3467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNGlHQSw0Q0FFQztBQUVELHdDQUVDO0FBTUQsMENBS0M7QUFpQkQsZ0NBc0JDO0FBdmpHRCxpQ0FBb0M7QUFFcEMsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLGtDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFFRCxNQUFzQixXQUFXO0NBS2hDO0FBTEQsa0NBS0M7QUE4SUQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFlLE9BQVEsU0FBUSxXQUFXO0lBQTFDOztRQUNFLFNBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7Q0FBQTtBQUVELE1BQU0sUUFBUyxTQUFRLE9BQU87SUFBOUI7O1FBQ0UsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUNsQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxJQUFJLENBQUM7UUFDekIsZ0JBQVcsR0FBRyx1QkFBdUIsQ0FBQztJQUN4QyxDQUFDO0NBQUE7QUFFRCxNQUFNLGVBQWdCLFNBQVEsT0FBTztJQUFyQzs7UUFDRSxTQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDekIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsbURBQW1ELENBQUM7SUFDcEUsQ0FBQztDQUFBO0FBRUQsTUFBTSxHQUFJLFNBQVEsT0FBTztJQUF6Qjs7UUFDRSxTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNB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TSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNqQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNoQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNuQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNuQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxNQUFNLENB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LElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7UUFDdkMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztLQUN2QztDQUNGLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBNkIsSUFBSSxHQUFHLENBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQ2pILENBQUM7QUFFRjs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFZO0lBQzNDLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBZ0IsY0FBYztJQUM1QixPQUFPLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQUMsT0FBb0I7SUFDbEQsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxPQUFPLENBQUMsSUFBSSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE9BQWU7SUFDeEMscUVBQXFFO0lBQ3JFLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsSUFDRSxNQUFNLEtBQUssSUFBSTtZQUNmLE9BQU8sTUFBTSxLQUFLLFFBQVE7WUFDMUIsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDL0IsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDL0IsT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFDakMsQ0FBQztZQUNELE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBK0IsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AseURBQXlEO0lBQzNELENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLE9BQU8sWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGbGFyZU5ldHdvcmsgaW50ZXJmYWNlIGZvciBGbGFyZS1mYW1pbHkgY2hhaW5zXG5leHBvcnQgaW50ZXJmYWNlIEZsYXJlTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZTogc3RyaW5nO1xuICBmYW1pbHk6IENvaW5GYW1pbHk7XG4gIGV4cGxvcmVyVXJsOiBzdHJpbmc7XG4gIGFjY291bnRFeHBsb3JlclVybDogc3RyaW5nO1xuICBjaGFpbklkPzogbnVtYmVyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeD86IHN0cmluZztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgYmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRDogc3RyaW5nO1xuICBuZXR3b3JrSUQ6IG51bWJlcjtcbiAgaHJwOiBzdHJpbmc7XG4gIGFsaWFzOiBzdHJpbmc7XG4gIGFzc2V0SWQ6IHN0cmluZztcbiAgdm0/OiBzdHJpbmc7XG4gIHR4RmVlOiBzdHJpbmc7XG4gIG1pbkltcG9ydFRvUEZlZTogc3RyaW5nO1xuICBtYXhJbXBvcnRGZWU6IHN0cmluZztcbiAgY3JlYXRlU3VibmV0VHg/OiBzdHJpbmc7XG4gIGNyZWF0ZUNoYWluVHg/OiBzdHJpbmc7XG4gIGNyZWF0aW9uVHhGZWU/OiBzdHJpbmc7XG4gIG1pbkNvbnN1bXB0aW9uPzogc3RyaW5nO1xuICBtYXhDb25zdW1wdGlvbj86IHN0cmluZztcbiAgbWF4U3VwcGx5Pzogc3RyaW5nO1xuICBtaW5TdGFrZTogc3RyaW5nO1xuICBtaW5TdGFrZUR1cmF0aW9uPzogc3RyaW5nO1xuICBtYXhTdGFrZUR1cmF0aW9uPzogc3RyaW5nO1xuICBtaW5EZWxlZ2F0aW9uU3Rha2U/OiBzdHJpbmc7XG4gIG1pbkRlbGVnYXRpb25GZWU/OiBzdHJpbmc7XG4gIGZsYXJlUHVibGljVXJsPzogc3RyaW5nO1xuICBiYXNlVHhGZWU/OiBzdHJpbmc7XG4gIGNyZWF0ZUFzc2V0VHhGZWU/OiBzdHJpbmc7XG4gIGNyZWF0ZVN1Ym5ldFR4RmVlPzogc3RyaW5nO1xuICB0cmFuc2Zvcm1TdWJuZXRUeEZlZT86IHN0cmluZztcbiAgY3JlYXRlQmxvY2tjaGFpblR4RmVlPzogc3RyaW5nO1xuICBhZGRQcmltYXJ5TmV0d29ya1ZhbGlkYXRvckZlZT86IHN0cmluZztcbiAgYWRkUHJpbWFyeU5ldHdvcmtEZWxlZ2F0b3JGZWU/OiBzdHJpbmc7XG4gIGFkZFN1Ym5ldFZhbGlkYXRvckZlZT86IHN0cmluZztcbiAgYWRkU3VibmV0RGVsZWdhdG9yRmVlPzogc3RyaW5nO1xuICB4Q2hhaW5CbG9ja2NoYWluSUQ/OiBzdHJpbmc7XG59XG5cbmltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgZW51bSBOZXR3b3JrVHlwZSB7XG4gIE1BSU5ORVQgPSAnbWFpbm5ldCcsXG4gIFRFU1RORVQgPSAndGVzdG5ldCcsXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTmV0d29yayB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBOZXR3b3JrVHlwZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZhbWlseTogQ29pbkZhbWlseTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV4cGxvcmVyVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXR4b05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIE5ldHdvcmsgbmFtZSBhcyBkZWZpbmVkIGluIEBiaXRnby1iZXRhL3V0eG8tbGliIG5ldHdvcmtzLnRzXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG4gIHBheWdvQWRkcmVzc0F0dGVzdGF0aW9uUHVia2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpZ2h0bmluZ05ldHdvcmsgZXh0ZW5kcyBVdHhvTmV0d29yayB7XG4gIC8qKlxuICAgKiBUaGUgcHVibGljIGtleSBvZiB0aGUgTGlnaHRuaW5nIHNlcnZpY2UsIHVzZWQgZm9yIGRlcml2aW5nIHRoZSBzaGFyZWQgRWxsaXB0aWMgQ3VydmUgRGlmZmllLUhlbGxtYW4gKEVDREgpIHNlY3JldFxuICAgKiBiZXR3ZWVuIHRoZSB1c2VyJ3MgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkgYW5kIHRoZSBMaWdodG5pbmcgc2VydmljZS4gVGhpcyBrZXkgZmFjaWxpdGF0ZXMgc2VjdXJlIGNvbW11bmljYXRpb25cbiAgICogYnkgZW5hYmxpbmcgdGhlIGNyZWF0aW9uIG9mIGEgc2hhcmVkIHNlY3JldCBmb3IgZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbiBvZiBkYXRhLlxuICAgKi9cbiAgbGlnaHRuaW5nU2VydmljZVB1YktleTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHB1YmxpYyBrZXkgb2YgdGhlIG1pZGRsZXdhcmUgc2VydmljZSwgdXNlZCBmb3IgZGVyaXZpbmcgdGhlIHNoYXJlZCBFbGxpcHRpYyBDdXJ2ZSBEaWZmaWUtSGVsbG1hbiAoRUNESCkgc2VjcmV0XG4gICAqIGJldHdlZW4gdGhlIHVzZXIncyBleHRlbmRlZCBwcml2YXRlIGtleSBhbmQgdGhlIG1pZGRsZXdhcmUgc2VydmljZS5cbiAgICovXG4gIG1pZGRsZXdhcmVQdWJLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMga2V5IG9mIHRoZSBUQVQgc2VydmljZSwgdXNlZCBmb3IgZGVyaXZpbmcgdGhlIHNoYXJlZCBFbGxpcHRpYyBDdXJ2ZSBEaWZmaWUtSGVsbG1hbiAoRUNESCkgc2VjcmV0XG4gICAqIGJldHdlZW4gdGhlIHVzZXIncyBleHRlbmRlZCBwcml2YXRlIGtleSBhbmQgdGhlIFRBVCBzZXJ2aWNlLlxuICAgKi9cbiAgdGF0UHViS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRhTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gTmV0d29yayBuYW1lIGFzIGRlZmluZWQgaW4gQGJpdGdvLWJldGEvdXR4by1saWIgbmV0d29ya3MudHNcbiAgLy8gbWF5YmUgYWRkIG5ldHdvcmsgaWRlbnRpZmllciAvIG1hZ2ljIG5ldHdvcmsgbnVtYmVyXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG4gIHBvb2xEZXBvc2l0OiBudW1iZXI7XG4gIHN0YWtlS2V5RGVwb3NpdDogbnVtYmVyO1xuICBtYXhWYWx1ZVNpemU6IG51bWJlcjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplOiBudW1iZXI7XG4gIGNvaW5zUGVyVXR4b1dvcmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFsYW5jaGVOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICByZWFkb25seSBhbGlhczogc3RyaW5nO1xuICByZWFkb25seSBibG9ja2NoYWluSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY0NoYWluQmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldHdvcmtJRDogbnVtYmVyO1xuICByZWFkb25seSBocnA6IHN0cmluZztcbiAgcmVhZG9ubHkgdm06IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRpb25UeEZlZTogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVTdWJuZXRUeDogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVDaGFpblR4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkNvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heENvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN1cHBseTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZUR1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN0YWtlRHVyYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWluRGVsZWdhdGlvblN0YWtlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkRlbGVnYXRpb25GZWU6IHN0cmluZztcbiAgLy8gY3VycmVudCB2YWxpZCBhc3NldCBpZCBpcyBBVkFYXG4gIHJlYWRvbmx5IGF2YXhBc3NldElEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4RmVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heEltcG9ydEZlZTogc3RyaW5nOyAvLyAwLjAxIEFWQVhcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50TmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gc29tZSBjaGFpbnMgcGF5IGZlZXMgdmlhIGFuIGVudGVycHJpc2UgZ2FzIHRhc2suIFRoZSBhY2NvdW50IGV4cGxvcmVyIHVybFxuICAvLyBpcyBhIHVybCB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIGFjY291bnQgZm9yIHRoZSBnYXMgdGFuayBvbi1jaGFpbi5cbiAgcmVhZG9ubHkgYWNjb3VudEV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICByZWFkb25seSBibG9ja0V4cGxvcmVyVXJsPzogc3RyaW5nO1xuICAvLyBiZWNoMzIgSFJQIGZvciBjaGFpbnMgdGhhdCB1c2Ugb25lIChlLmcuIENvc21vcy1mYW1pbHkgY29pbnMpXG4gIHJlYWRvbmx5IGFkZHJlc3NQcmVmaXg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29zbW9zTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgcmVhZG9ubHkgYWRkcmVzc1ByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSB2YWxpZGF0b3JQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVub206IHN0cmluZztcbiAgcmVhZG9ubHkgZ2FzQW1vdW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGdhc0xpbWl0OiBudW1iZXI7XG4gIHJlYWRvbmx5IHZhbGlkRGVub21zOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIG5hbWUgdHlwZSBvZiB0aGUgY2hhaW4uIFVzZWQgaW4gc2V0dGluZyB1cCB0aGUgcmVnaXN0cnlcbiAqL1xuZXhwb3J0IHR5cGUgUG9sa2Fkb3RTcGVjTmFtZVR5cGUgPSAna3VzYW1hJyB8ICdwb2xrYWRvdCcgfCAnd2VzdGVuZCcgfCAnc3RhdGVtaW50JyB8ICdzdGF0ZW1pbmUnIHwgJ3dlc3RtaW50JztcblxuZXhwb3J0IHR5cGUgU3Vic3RyYXRlU3BlY05hbWVUeXBlID1cbiAgfCAna3VzYW1hJ1xuICB8ICdwb2xrYWRvdCdcbiAgfCAnd2VzdGVuZCdcbiAgfCAnc3RhdGVtaW50J1xuICB8ICdzdGF0ZW1pbmUnXG4gIHwgJ25vZGUtc3VidGVuc29yJ1xuICB8ICdwb2x5bWVzaF90ZXN0bmV0J1xuICB8ICdwb2x5bWVzaF9tYWlubmV0JztcblxuZXhwb3J0IGludGVyZmFjZSBEb3ROZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyBzb21lIGNoYWlucyBwYXkgZmVlcyB2aWEgYW4gZW50ZXJwcmlzZSBnYXMgdGFzay4gVGhlIGFjY291bnQgZXhwbG9yZXIgdXJsXG4gIC8vIGlzIGEgdXJsIHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9vayB1cCB0aGUgYWNjb3VudCBmb3IgdGhlIGdhcyB0YW5rIG9uLWNoYWluLlxuICByZWFkb25seSBzcGVjTmFtZTogUG9sa2Fkb3RTcGVjTmFtZVR5cGU7XG4gIHJlYWRvbmx5IGdlbmVzaXNIYXNoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNwZWNWZXJzaW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IGNoYWluTmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0eFZlcnNpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdGhlcmV1bU5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIC8vIHVuaXF1ZSBjaGFpbiBpZCB1c2VkIGZvciByZXBsYXktcHJvdGVjdGluZyB0cmFuc2FjdGlvbnNcbiAgcmVhZG9ubHkgY2hhaW5JZDogbnVtYmVyO1xuICByZWFkb25seSBiYXRjaGVyQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICAvLyBmb3J3YXJkZXIgY29uZmlndXJhdGlvbiBhZGRyZXNzZXMgdXNlZCBmb3IgY2FsY3VsYXRpbmcgZm9yd2FyZGVyIHZlcnNpb24gMSBhZGRyZXNzZXNcbiAgcmVhZG9ubHkgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjJGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjJGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWMkZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjRJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICByZWFkb25seSB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG4gIC8vIFphbWEgZmhFVk0gQUNMIGNvbnRyYWN0IGFkZHJlc3Mg4oCUIHJlcXVpcmVkIGZvciBFUkMtNzk4NCBjb25maWRlbnRpYWwgdG9rZW4gZGVsZWdhdGlvblxuICByZWFkb25seSB6YW1hQWNsQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyb25OZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICBtYXhGZWVMaW1pdDogc3RyaW5nO1xuICBjb250cmFjdENhbGxGZWVMaW1pdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrc05ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIHJlYWRvbmx5IHNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICByZWFkb25seSBzdGFraW5nQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNidGNXaXRoZHJhd2FsQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIE9mY05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7fVxuXG5hYnN0cmFjdCBjbGFzcyBNYWlubmV0IGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICB0eXBlID0gTmV0d29ya1R5cGUuTUFJTk5FVDtcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGVzdG5ldCBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgdHlwZSA9IE5ldHdvcmtUeXBlLlRFU1RORVQ7XG59XG5cbmNsYXNzIEFsZ29yYW5kIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBbGdvcmFuZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQUxHTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbGxvLmluZm8vdHgvJztcbn1cblxuY2xhc3MgQWxnb3JhbmRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBbGdvcmFuZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFMR087XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYml0cXVlcnkuaW8vYWxnb3JhbmRfdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBBZGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWRhTmV0d29yayB7XG4gIG5hbWUgPSAnQWRhQ2FyZGFubyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQURBO1xuICB1dHhvbGliTmFtZSA9ICdjYXJkYW5vJztcbiAgcG9vbERlcG9zaXQgPSA1MDAwMDAwMDA7XG4gIHN0YWtlS2V5RGVwb3NpdCA9IDIwMDAwMDA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2FyZGFub3NjYW4uaW8vdHJhbnNhY3Rpb24vJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2FyZGFub3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjb2luc1BlclV0eG9Xb3JkID0gMzQ0ODI7XG4gIG1heFRyYW5zYWN0aW9uU2l6ZSA9IDgwMDA7XG4gIG1heFZhbHVlU2l6ZSA9IDQwMDA7XG59XG5cbmNsYXNzIEFkYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWRhTmV0d29yayB7XG4gIG5hbWUgPSAnQWRhQ2FyZGFub1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFEQTtcbiAgdXR4b2xpYk5hbWUgPSAnY2FyZGFub1Rlc3RuZXQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3ByZXByb2QuY2FyZGFub3NjYW4uaW8vdHJhbnNhY3Rpb24vJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcHJlcHJvZC5jYXJkYW5vc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNvaW5zUGVyVXR4b1dvcmQgPSAzNDQ4MjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplID0gODAwMDtcbiAgbWF4VmFsdWVTaXplID0gNDAwMDtcbiAgcG9vbERlcG9zaXQgPSA1MDAwMDAwMDA7XG4gIHN0YWtlS2V5RGVwb3NpdCA9IDIwMDAwMDA7XG59XG5cbmNsYXNzIEFwdCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQXB0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUFQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYXB0b3NsYWJzLmNvbS90eG4vP25ldHdvcms9bWFpbm5ldCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vYWNjb3VudC8/bmV0d29yaz1tYWlubmV0JztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vYmxvY2svP25ldHdvcms9bWFpbm5ldCc7XG59XG5cbmNsYXNzIEFwdFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQXB0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUFQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYXB0b3NsYWJzLmNvbS90eG4vP25ldHdvcms9dGVzdG5ldCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vYWNjb3VudC8/bmV0d29yaz10ZXN0bmV0JztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vYmxvY2svP25ldHdvcms9dGVzdG5ldCc7XG59XG5cbmNsYXNzIEljcCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSW50ZXJuZXQgQ29tcHV0ZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklDUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9kYXNoYm9hcmQuaW50ZXJuZXRjb21wdXRlci5vcmcvdHJhbnNhY3Rpb24vJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZGFzaGJvYXJkLmludGVybmV0Y29tcHV0ZXIub3JnL2FjY291bnQvJztcbn1cblxuY2xhc3MgSWNwVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBJbnRlcm5ldCBDb21wdXRlcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSUNQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Rhc2hib2FyZC5pbnRlcm5ldGNvbXB1dGVyLm9yZy90cmFuc2FjdGlvbi8nOyAvLyBJQ1AgdGVzdG5ldCBleHBsb3JlciBpcyBub3QgYXZhaWxhYmxlLCBzbyB1c2luZyBtYWlubmV0IGV4cGxvcmVyXG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Rhc2hib2FyZC5pbnRlcm5ldGNvbXB1dGVyLm9yZy9hY2NvdW50Lyc7XG59XG5cbmV4cG9ydCBjbGFzcyBLYXNwYU1haW5uZXQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0thc3BhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQVNQQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5rYXNwYS5vcmcvdHhzLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmthc3BhLm9yZy9hZGRyZXNzZXMvJztcbn1cblxuZXhwb3J0IGNsYXNzIEthc3BhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBLYXNwYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FTUEE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItdG4xMC5rYXNwYS5vcmcvdHhzLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLXRuMTAua2FzcGEub3JnL2FkZHJlc3Nlcy8nO1xufVxuXG5jbGFzcyBBcmJpdHJ1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FyYml0cnVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUkJFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyMTYxJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyMTYxLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEFyYml0cnVtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FyYml0cnVtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVJCRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYXJiaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5hcmJpc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjE2MTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyMTYxNCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MTQtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgQXZhbGFuY2hlQyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvYy1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLmF2YXgubmV0d29yay9jLWNoYWluL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTE0O1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEF2YWxhbmNoZUNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gaHR0cHM6Ly9kb2NzLmF2YXgubmV0d29yay9idWlsZC90dXRvcmlhbHMvc21hcnQtY29udHJhY3RzL2RlcGxveS1hLXNtYXJ0LWNvbnRyYWN0LW9uLWF2YWxhbmNoZS11c2luZy1yZW1peC1hbmQtbWV0YW1hc2sjYXZhbGFuY2hlLW1haW5uZXQtc2V0dGluZ3NcbiAgbmFtZSA9ICdBdmFsYW5jaGVDVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9jLWNoYWluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvYy1jaGFpbi9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MzExMztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVQIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEF2YWxhbmNoZU5ldHdvcmsge1xuICBuYW1lID0gJ0F2YWxhbmNoZVAnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL3AtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvcC1jaGFpbi9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJzJxOWU0cjZNdTNVNjhuVTFmWWpnYlI2SnZ3clJ4MzZDb2hwQVg1VVF4c2U1NXgxUTUnO1xuICBhdmF4QXNzZXRJRCA9ICdGdndFQWhteEtmZWlHOFNuRXZxNDJoYzZ3aFJ5WTNFRllBdmViTXFETkRHQ2d4TjVaJztcbiAgbmV0d29ya0lEID0gMTtcbiAgaHJwID0gJ2F2YXgnO1xuICBhbGlhcyA9ICdQJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyAwLjAxIEFWQVhcbiAgY3JlYXRlU3VibmV0VHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIDEgQ0VOVElBVkFYXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzIwMDAwMDAwMDAwMDAwMDAwJzsgLy8gNzIwIG1pbCB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMjAwMDAwMDAwMDAwMCc7IC8vIDIwMDAgQVZBWFxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzEyMDk2MDAnOyAvLyAyIHdlZWtzXG4gIG1heFN0YWtlRHVyYXRpb24gPSAnMzE1MzYwMDAnOyAvLyAxIHllYXJcbiAgbWluRGVsZWdhdGlvblN0YWtlID0gJzI1MDAwMDAwMDAwJzsgLy8gMjUgQVZBWFxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzInO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVQVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBdmFsYW5jaGVOZXR3b3JrIHtcbiAgbmFtZSA9ICdBdmFsYW5jaGVQVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWFA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9wLWNoYWluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvcC1jaGFpbi9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJ3lIOEQ3VGhOSmt4bXRrdXYyamdCYTRQMVJuM1FwcjRwUHI3UVlOZmNkb1M2azZIV3AnO1xuICBhdmF4QXNzZXRJRCA9ICdVOGlScUpvaUptOHhaSEFhY212WXlaVndxUXg2dUROdFFlUDNDUTZmY2dRazNKcW5LJztcbiAgbmV0d29ya0lEID0gNTtcbiAgYWxpYXMgPSAnUCc7XG4gIGhycCA9ICdmdWppJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyAwLjAxIEFWQVhcbiAgY3JlYXRlU3VibmV0VHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIDEgQ0VOVElBVkFYXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzIwMDAwMDAwMDAwMDAwMDAwJzsgLy8gNzIwIG1pbCB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzg2NDAwJzsgLy8gMSBkYXlcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzInO1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JpbmFuY2VTbWFydENoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU0M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnNjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJzY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBPcEJOQiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wQk5CJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEJOQjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcGJuYnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL29wYm5ic2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjA0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMDQnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjA0LUVSQzIwJztcbn1cblxuY2xhc3MgT3BCTkJUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnT3BCTkJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEJOQjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm9wYm5ic2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5vcGJuYnNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU2MTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2MTEnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTYxMS1FUkMyMCc7XG59XG5cbmNsYXNzIEZhbnRvbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZhbnRvbSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkFOVE9NO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmZhbnRvbS5uZXR3b3JrL3RyYW5zYWN0aW9ucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5mYW50b20ubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyNTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI1MCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyNTAtRVJDMjAnO1xufVxuXG5jbGFzcyBGYW50b21UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRmFudG9tVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkFOVE9NO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmZhbnRvbS5uZXR3b3JrL3RyYW5zYWN0aW9ucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5mYW50b20ubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MDAyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MDAyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQwMDItRVJDMjAnO1xufVxuXG5jbGFzcyBMaWdodG5pbmdCaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIExpZ2h0bmluZ05ldHdvcmsge1xuICBuYW1lID0gJ0xpZ2h0bmluZ0JpdGNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxOQlRDO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL2xpZ2h0bmluZyc7XG4gIGxpZ2h0bmluZ1NlcnZpY2VQdWJLZXkgPSAnMDMzODUwODY4NmY5NzhjZWZmZDdjZTA1NDA0MDQxYjFhNWI0Zjc1YTM5YmM5MmE2ZDM1NTI0MGNjYzA4MWY3NjNlJztcbiAgbWlkZGxld2FyZVB1YktleSA9ICcwMjBkNTJmNjQ1OGIxN2I1NjViYzAzNTE2NTY4ZDFhNjVjOGNiZDEzMWNlMDNmMjIwNzU2N2U0Y2QzMzIyZTgyZjMnO1xuICB0YXRQdWJLZXkgPSAnMDM5NTNkYTIwMDY4YzA5Njg1OGQzY2NhNjBmOGM1YjBlNWEyZjVkMDM4M2VjZjliNmFiMzkyZDcxZTRmM2U3MmRmJztcbn1cblxuY2xhc3MgTGlnaHRuaW5nQml0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgTGlnaHRuaW5nTmV0d29yayB7XG4gIG5hbWUgPSAnTGlnaHRuaW5nQml0Y29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxOQlRDO1xuICB1dHhvbGliTmFtZSA9ICd0ZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQvbGlnaHRuaW5nJztcbiAgbGlnaHRuaW5nU2VydmljZVB1YktleSA9ICcwMjQwNTUwMjFkYjFlN2YwMTllYmI3ODNhYjBiMDgxMGMyMWE4MTkyMDdkNGNiMWVjNGE2ZTIxNTBhYzA3ZjE0ODInO1xuICBtaWRkbGV3YXJlUHViS2V5ID0gJzAyN2NiM2JjNmI0OWZjMzg1ZDI4MmI0MmE3YmUyMzJhOTRmZmNiYWZmYzc4MThiNjAzYjE3NzIyNTgyYmJmNTM5Yic7XG4gIHRhdFB1YktleSA9ICcwMmU3NDdjOTljMzcxZWFjOWMxNGZiMTk5MTNiZWM4YTBlM2U0NmUzNWFiMWE0NTg3OGU1YjlhZmJiNjk4OTljMWUnO1xufVxuXG5jbGFzcyBCaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ3Rlc3RuZXQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdGVzdG5ldC90eC8nO1xuICAvLyBBZGQgb3VyIHB1YmtleSBmb3Igb3VyIHBheWdvIHdhbGxldFxuICBwYXlnb0FkZHJlc3NBdHRlc3RhdGlvblB1YmtleSA9XG4gICAgJ3hwdWI2QktSZ21DUFg1b1FpSmdKNlZxNkJGOHREdlpod1FraTVkVlZRb2hja0syWkpYdHhqOEs2TTlwYXZMd3Q5cGlXMzNoWnoxN1NXbUc4UVdzakoxdEhkZGUyRnM1VUEzREZiQXBDdGJkYUdLbic7XG59XG5cbmNsYXNzIEJpdGNvaW5QdWJsaWNTaWduZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5QdWJsaWNTaWduZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pblB1YmxpY1NpZ25ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS9zaWduZXQvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pblRlc3RuZXQ0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luVGVzdG5ldDQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pblRlc3RuZXQ0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQ0L3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5CaXRHb1NpZ25ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkJpdEdvU2lnbmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5CaXRHb1NpZ25ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS9ub3RhbmV0d29yay90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ibG9ja2NoYWluLmNvbS9iY2gvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2hUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90YmNoLmxvcGluZy5uZXQvdHgvJztcbn1cbmNsYXNzIEJpdGNvaW5TViBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblNWJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vYml0Y29pbi1zdi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBCaXRjb2luU1ZUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luU1ZUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdlRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQml0Y29pbkdvbGQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5Hb2xkJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEc7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5nb2xkJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9idGdleHBsb3Jlci5jb20vdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkdvbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luR29sZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJURztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmdvbGRUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIERhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0Rhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2luc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRGFzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWluc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEb2dlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRG9nZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0U7XG4gIHV0eG9saWJOYW1lID0gJ2RvZ2Vjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9kb2dlY29pbi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBEb2dlY29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2Vjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9HRTtcbiAgdXR4b2xpYk5hbWUgPSAnZG9nZWNvaW5UZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2V4cGxvcmVyLm9uZS9kb2dlY29pbi90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIEVDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIQTtcbiAgdXR4b2xpYk5hbWUgPSAnZWNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2VjYXNoJztcbn1cblxuY2xhc3MgRUNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSEE7XG4gIHV0eG9saWJOYW1lID0gJ2VjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBQb2xrYWRvdEFzc2V0SHViIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1BvbGthZG90QXNzZXRIdWInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hc3NldGh1Yi1wb2xrYWRvdC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICdzdGF0ZW1pbnQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDY4ZDU2ZjE1Zjg1ZDMxMzY5NzBlYzE2OTQ2MDQwYmMxNzUyNjU0ZTkwNjE0N2Y3ZTQzZTlkNTM5ZDdjM2RlMmYnO1xuICBzcGVjVmVyc2lvbiA9IDEwMDcwMDE7XG4gIGNoYWluTmFtZSA9ICdQb2xrYWRvdCBBc3NldCBIdWInO1xuICB0eFZlcnNpb24gPSAxNTtcbn1cblxuY2xhc3MgV2VzdGVuZEFzc2V0SHViIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1dlc3RlbmRBc3NldEh1Yic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9UO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Fzc2V0aHViLXdlc3RlbmQuc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAnd2VzdG1pbnQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDY3Zjk3MjMzOTNlZjc2MjE0ZGYwMTE4YzM0YmJiZDNkYmViYzhlZDQ2YTEwOTczYThjOTY5ZDQ4ZmU3NTk4YzknO1xuICBzcGVjVmVyc2lvbiA9IDEwMjAwMDA7XG4gIGNoYWluTmFtZSA9ICdXZXN0ZW5kIEFzc2V0IEh1Yic7XG4gIHR4VmVyc2lvbiA9IDE2O1xufVxuXG5jbGFzcyBDZWxvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2Vsbyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjIyMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQ0VMTyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdDRUxPLUVSQzIwJztcbn1cblxuY2xhc3MgQ2Vsb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmNlbG9zY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuY2Vsb3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNDIyMjA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0NFTE8nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQ0VMTy1FUkMyMCc7XG59XG5cbmNsYXNzIENoaWxpeiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NoaWxpeic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0hJTElaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NoaWxpc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hpbGlzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4ODg4ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODg4ODgnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODg4ODgtRVJDMjAnO1xufVxuXG5jbGFzcyBDaGlsaXpUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2hpbGl6VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0hJTElaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuY2hpbGlzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmNoaWxpc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODg4ODI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg4ODgyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg4ODgyLUVSQzIwJztcbn1cblxuY2xhc3MgQ29kZXhFdGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb2RleCBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09ERVhFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY29kZXgueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvZGV4Lnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MTIyNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODEyMjQnO1xufVxuXG5jbGFzcyBDb2RleEV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENvZGV4IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT0RFWEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jb2RleC1zdGcueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODEyMjQyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MTIyNDInO1xufVxuXG4vLyBUT0RPIHVwZGF0ZSBleHBsb3JlclVybCBTVExYLTE2NTdcbmNsYXNzIENhc3BlciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DU1BSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NzcHIubGl2ZS9kZXBsb3kvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Nwci5saXZlL2FjY291bnQvJztcbn1cblxuY2xhc3MgQ2FzcGVyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1NQUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnRlZ3JhdGlvbi5jc3ByLmxpdmUvZGVwbG95Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ludGVncmF0aW9uLmNzcHIubGl2ZS9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIEV0aGVyZXVtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZmZhMzk3Mjg1Y2U0NmZiNzhjNTg4YTllOTkzMjg2YWFjNjhjMzdjZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDA1OWZmYWZkYzZlZjU5NDIzMGRlNDRmODI0ZTJiZDBhNTFjYTVkZWQnO1xuICB3YWxsZXRWMkZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjlFZjQ2MDM1ZTlmQTNENTcwYzU5OGQzMjY2NDI0Q2ExMTQxM2IwQyc7XG4gIHdhbGxldFYyRm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NTM5N2QwODY5YUJBMEQ1NWU5NkQ1NzE2ZDM4M0Y2ZTFkODY5NWVkNyc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDlhMGQ2MzkxMTYyMGY3ZmMxNWMzYzAyMGVkYmU0ZDcyNjdlYTNlNGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhlOGU4NDdjZjU3M2ZjOGVkNzU2MjE2NjBhMzZhZmZkMThjNTQzZDdlJztcbiAgd2FsbGV0VjJGYWN0b3J5QWRkcmVzcyA9ICcweGE3MTk4ZjQ4QzU4RTkxZjAxMzE3RTcwQ2QyNEM1Q2NlNDc1YzE1NTUnO1xuICB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGU1RGNkQzEzQjYyOGMyZGY4MTNEQjEwODAzNjdFOTI5YzE1MDdDYTAnO1xuICB3YWxsZXRWNEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldFY0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIEV0aGVyZXVtMiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0yJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEgyO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3R4JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYWRkcmVzcyc7XG59XG5cbmNsYXNzIEV0aGVyZXVtVyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtIFBvVyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIVztcbiAgZXhwbG9yZXJVcmwgPSAnJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJyc7XG4gIGNoYWluSWQgPSAxMDAwMTtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBYdHpFdm0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmxpbmsnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWkVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5ldGhlcmxpbmsuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmV0aGVybGluay5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDI3OTM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyNzkzJztcbn1cblxuY2xhc3MgWHR6RXZtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgRXRoZXJsaW5rJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFpFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhZG93bmV0LmV4cGxvcmVyLmV0aGVybGluay5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhZG93bmV0LmV4cGxvcmVyLmV0aGVybGluay5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTI3ODIzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMjc4MjMnO1xufVxuXG5jbGFzcyBQeXJtb250IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdQeXJtb250JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEgyO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3B5cm1vbnQvdHgnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9weXJtb250L2FkZHJlc3MnO1xufVxuXG5jbGFzcyBLb3ZhbiBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0tvdmFuJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va292YW4uZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2tvdmFuLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIC8vIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtanMvZXRoZXJldW1qcy1jb21tb24vYmxvYi9hOTc4ZjYzMDg1OGY2ODQzMTc2YmIyMGIyNzc1Njk3ODU5MTRlODk5L3NyYy9jaGFpbnMvaW5kZXgudHNcbiAgY2hhaW5JZCA9IDQyO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzBhYWYyNjQ5ZTdiMGYzOTUwMTY0NjgxZWNhMmIxYThmNjU0YTQ3OCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4YTc5YTQ4NTI5NGQyMjYwNzVlZTY1NDEwYmM5NGVhNDU0ZjNlNDA5ZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGE5NDZlNzQ4ZjI1YTVlYzY4NzhlYjFhOWYyZTkwMjAyODE3NGMwYjMnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG59XG5cbmNsYXNzIEdvZXJsaSBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0dvZXJsaSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9nb2VybGkuZXRoZXJzY2FuLmlvL2Jsb2NrLyc7XG4gIC8vIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtanMvZXRoZXJldW1qcy1jb21tb24vYmxvYi9hOTc4ZjYzMDg1OGY2ODQzMTc2YmIyMGIyNzc1Njk3ODU5MTRlODk5L3NyYy9jaGFpbnMvaW5kZXgudHNcbiAgY2hhaW5JZCA9IDU7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlOGU4NDdjZjU3M2ZjOGVkNzU2MjE2NjBhMzZhZmZkMThjNTQzZDdlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhmNWNhYTVlM2U5M2FmYmMyMWJkMTllZjRmMjY5MWEzNzEyMWY3OTE3JztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ODBkNWM5MWU4Y2MyMWRmNjlmYzRkNjRmMjFkYzJkODMxMjFjMzk5OSc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgSG9sZXNreSBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0hvbGVza3knO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ob2xlc2t5LmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ob2xlc2t5LmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ob2xlc2t5LmV0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBodHRwczovL2NoYWlubGlzdC5vcmcvY2hhaW4vMTcwMDBcbiAgY2hhaW5JZCA9IDE3MDAwO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZmZhMzk3Mjg1Y2U0NmZiNzhjNTg4YTllOTkzMjg2YWFjNjhjMzdjZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDA1OWZmYWZkYzZlZjU5NDIzMGRlNDRmODI0ZTJiZDBhNTFjYTVkZWQnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgSG9vZGkgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIb29kaSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hvb2RpLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ob29kaS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9vZGkuZXRoZXJzY2FuLmlvL2Jsb2NrLyc7XG4gIC8vIGh0dHBzOi8vY2hhaW5saXN0Lm9yZy9jaGFpbi81NjAwNDhcbiAgY2hhaW5JZCA9IDU2MDA0ODtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDBlMjg3NGQ2ODI0ZmFlNGY2MWU0NDYwMTIzMTdhOWI4NjM4NGJkOGUnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg3NDQxZjIwYTU5YmU5NzAxMTg0MjQwNGI5YWVmZDhkODVmZDgxYWE2JztcbiAgd2FsbGV0VjJGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDBlMjg3NGQ2ODI0ZmFlNGY2MWU0NDYwMTIzMTdhOWI4NjM4NGJkOGUnO1xuICB3YWxsZXRWMkZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDc0NDFmMjBhNTliZTk3MDExODQyNDA0YjlhZWZkOGQ4NWZkODFhYTYnO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ZjUxNGNkODBhNDFiZGUyZTIwMDMzYjI1MWYxZjc0NjMzY2FmM2U1OSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDZiYjg2YjNiMjdiMDkyYmY4YTI4NTA4MGZlN2Q1OGFjZGY4NDEwNDEnO1xuICB3YWxsZXRWMkZhY3RvcnlBZGRyZXNzID0gJzB4ZjUxNGNkODBhNDFiZGUyZTIwMDMzYjI1MWYxZjc0NjMzY2FmM2U1OSc7XG4gIHdhbGxldFYySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NmJiODZiM2IyN2IwOTJiZjhhMjg1MDgwZmU3ZDU4YWNkZjg0MTA0MSc7XG4gIHdhbGxldFY0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0VjRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemFtYS1haS9zZGsvYmxvYi9wcmVyZWxlYXNlL3BhY2thZ2VzL3Nkay9zcmMvY2hhaW5zL2NvbmZpZ3MudHMjTDUyXG4gIHphbWFBY2xDb250cmFjdEFkZHJlc3MgPSAnMHg2ZDNmYWY2Zjg2ZTFmZjlmM2IwODMxZGRhOTIwYWJhMWNiZDViZDY4Jztcbn1cblxuY2xhc3MgRXRoZXJldW1DbGFzc2ljIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW1DbGFzc2ljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21haW5uZXQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21haW5uZXQvYWRkcmVzcy8nO1xuICAvLyBmcm9tICBodHRwczovL2NoYWluaWQubmV0d29yay9jaGFpbnMvXG4gIGNoYWluSWQgPSA2MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRDJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUQy1FUkMyMCc7XG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bUNsYXNzaWNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21vcmRvci90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LmNvbS9ldGMvbW9yZG9yL2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUQyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEMtRVJDMjAnO1xufVxuXG5jbGFzcyBFb3MgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Vvcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmVvc25ldHdvcmsuY29tL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEVvc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Vvc1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9reWxpbi5lb3N4LmlvL3R4Lyc7XG59XG5cbmNsYXNzIEhlZGVyYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQkFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hhc2hzY2FuLmlvL21haW5uZXQvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgSGVkZXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmRyYWdvbmdsYXNzLm1lL2hlZGVyYS9zZWFyY2g/cT0nO1xufVxuXG5jbGFzcyBMaXRlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxUQztcbiAgdXR4b2xpYk5hbWUgPSAnbGl0ZWNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpdGVjb2luc3BhY2Uub3JnL3R4Lyc7XG59XG5cbmNsYXNzIExpdGVjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MVEM7XG4gIHV0eG9saWJOYW1lID0gJ2xpdGVjb2luVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tleHBsb3Jlci5vbmUvbGl0ZWNvaW4vdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBPZmMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgT2ZjTmV0d29yayB7XG4gIG5hbWUgPSAnT2ZjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRkM7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBPZmNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIE9mY05ldHdvcmsge1xuICBuYW1lID0gJ09mY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9GQztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFJidGMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSYnRjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5SQlRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnJzay5jby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5yc2suY28vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1JTSyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdSU0stRVJDMjAnO1xufVxuXG5jbGFzcyBSYnRjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1JidGNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5SQlRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQucnNrLmNvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQucnNrLmNvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdSU0snO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUlNLLUVSQzIwJztcbn1cblxuY2xhc3MgU3RlbGxhciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU3RlbGxhcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWExNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N0ZWxsYXIuZXhwZXJ0L2V4cGxvcmVyL3B1YmxpYy90eC8nO1xufVxuXG5jbGFzcyBTdGVsbGFyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU3RlbGxhclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGVsbGFyLmV4cGVydC9leHBsb3Jlci90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIFNvbCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU29sJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT0w7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc29sYW5hLmNvbS90eC8nO1xufVxuXG5jbGFzcyBTb2xUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTb2xUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT0w7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc29sYW5hLmNvbS90eC8/Y2x1c3Rlcj1kZXZuZXQnO1xufVxuXG5jbGFzcyBTdGFya25ldE1haW5uZXQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0YXJrbmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVEFSS05FVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly92b3lhZ2VyLm9ubGluZS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly92b3lhZ2VyLm9ubGluZS9jb250cmFjdC8nO1xufVxuXG5jbGFzcyBTdGFya25ldFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU3RhcmtuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUQVJLTkVUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEudm95YWdlci5vbmxpbmUvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS52b3lhZ2VyLm9ubGluZS9jb250cmFjdC8nO1xufVxuXG5jbGFzcyBTdWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N1aSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN1aS5pby90eGJsb2NrLz9uZXR3b3JrPW1haW5uZXQnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdWkuaW8vYWRkcmVzcy8/bmV0d29yaz1tYWlubmV0Jztcbn1cblxuY2xhc3MgU3VpVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBTdWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdWkuaW8vdHhibG9jay8/bmV0d29yaz10ZXN0bmV0JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL2FkZHJlc3MvP25ldHdvcms9dGVzdG5ldCc7XG59XG5cbmNsYXNzIEF0b20gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Nvc21vcyBIdWIgQVRPTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vY29zbW9zL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnY29zbW9zJztcbn1cblxuY2xhc3MgQXRvbVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQ29zbW9zIEh1YiBBVE9NJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVE9NO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnBvbHlwb3JlLnh5ei9wcm92aWRlci90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2Nvc21vcyc7XG59XG5cbmNsYXNzIE9zbW8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ09zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL29zbW9zaXMvdHhzLyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnb3Ntbyc7XG59XG5cbmNsYXNzIE9zbW9UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IE9zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5vc21vc2lzLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnb3Ntbyc7XG59XG5cbmNsYXNzIFRpYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2VsZXN0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vY2VsZXN0aWEvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdjZWxlc3RpYSc7XG59XG5cbmNsYXNzIFRpYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQ2VsZXN0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmNlbGVzdGlhLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnY2VsZXN0aWEnO1xufVxuXG5jbGFzcyBIYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdQcm92ZW5hbmNlJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQVNIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnByb3ZlbmFuY2UuaW8vdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdwYic7XG59XG5cbmNsYXNzIEhhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFByb3ZlbmFuY2UnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhBU0g7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC5wcm92ZW5hbmNlLmlvL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAndHAnO1xufVxuXG5jbGFzcyBCbGQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Fnb3JpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JpZ2RpcHBlci5saXZlL2Fnb3JpYy90cmFuc2FjdGlvbnMvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdhZ29yaWMnO1xufVxuXG5jbGFzcyBCbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEFnb3JpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2VtZXJ5bmV0LmV4cGxvcmVyLmFnb3JpYy5uZXQvYWdvcmljL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnYWdvcmljJztcbn1cblxuY2xhc3MgU2VpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTZWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9taW50c2Nhbi5pby9zZWkvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdzZWknO1xufVxuXG5jbGFzcyBTZWlUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFNlaSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0VJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc2VpdHJhY2UuY29tL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnc2VpJztcbn1cblxuY2xhc3MgWmV0YSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWmV0YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVUQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci56ZXRhY2hhaW4uY29tL2Nvc21vcy90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ3pldGEnO1xufVxuXG5jbGFzcyBaZXRhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBaZXRhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRVRBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2F0aGVucy5leHBsb3Jlci56ZXRhY2hhaW4uY29tL2Nvc21vcy90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ3pldGEnO1xufVxuXG5jbGFzcyBJbmplY3RpdmUgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0luamVjdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5KRUNUSVZFO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9pbmplY3RpdmUvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdpbmonO1xufVxuXG5jbGFzcyBJbmplY3RpdmVUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbmplY3RpdmVUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTkpFQ1RJVkU7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5pbmplY3RpdmUubmV0d29yay90cmFuc2FjdGlvbi8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2luaic7XG59XG5cbmNsYXNzIEthdmFDb3Ntb3MgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQ29zbW9zTmV0d29yayB7XG4gIG5hbWUgPSAnS2F2YUNvc21vcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FWQUNPU01PUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8va2F2YS90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2thdmEnO1xuICB2YWxpZGF0b3JQcmVmaXggPSAna2F2YXZhbG9wZXInO1xuICBkZW5vbSA9ICd1a2F2YSc7XG4gIGdhc0Ftb3VudCA9ICc1MDAwJztcbiAgZ2FzTGltaXQgPSAyMDAwMDA7XG4gIHZhbGlkRGVub21zID0gWydrYXZhJywgJ3VrYXZhJ107XG59XG5cbmNsYXNzIEthdmFDb3Ntb3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIENvc21vc05ldHdvcmsge1xuICBuYW1lID0gJ0thdmFDb3Ntb3NUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQVZBQ09TTU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9rYXZhLXRlc3RuZXQvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdrYXZhJztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ2thdmF2YWxvcGVyJztcbiAgZGVub20gPSAndWthdmEnO1xuICBnYXNBbW91bnQgPSAnNTAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsna2F2YScsICd1a2F2YSddO1xufVxuXG5jbGFzcyBEeWR4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIENvc21vc05ldHdvcmsge1xuICBuYW1lID0gJ0R5ZHgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRZRFhDT1NNT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2R5ZHgvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdkeWR4JztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ2R5ZHh2YWxvcGVyJztcbiAgZGVub20gPSAnYWR5ZHgnO1xuICBnYXNBbW91bnQgPSAnNTAwMDAwMDAwMDAwMDAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsnYWR5ZHgnXTtcbn1cblxuY2xhc3MgRHlkeFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQ29zbW9zTmV0d29yayB7XG4gIG5hbWUgPSAnRHlkeFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRZRFhDT1NNT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2R5ZHgtdGVzdG5ldC90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2R5ZHgnO1xuICB2YWxpZGF0b3JQcmVmaXggPSAnZHlkeHZhbG9wZXInO1xuICBkZW5vbSA9ICdhZHY0dG50JztcbiAgZ2FzQW1vdW50ID0gJzUwMDAwMDAwMDAwMDAwMDAnO1xuICBnYXNMaW1pdCA9IDIwMDAwMDtcbiAgdmFsaWREZW5vbXMgPSBbJ2FkdjR0bnQnXTtcbn1cblxuY2xhc3MgVG9uIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdHcmFtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdG9uc2Nhbi5vcmcvdHgvJztcbn1cblxuY2xhc3MgVG9uVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBHcmFtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC50b25zY2FuLm9yZy90eC8nO1xufVxuXG5jbGFzcyBDb3JldW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1RYJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudHgub3JnL3R4L3RyYW5zYWN0aW9ucy8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2NvcmUnO1xufVxuXG5jbGFzcyBDb3JldW1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFRYJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC0xLnR4Lm9yZy90eC90cmFuc2FjdGlvbnMvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICd0ZXN0Y29yZSc7XG59XG5cbmNsYXNzIFJ1bmUgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1J1bmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRIT1I7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcnVuZXNjYW4uaW8vdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICd0aG9yJztcbn1cblxuY2xhc3MgUnVuZVRlc3ROZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1J1bmVUZXN0TmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5USE9SO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3J1bmVzY2FuLmlvL3R4Lz9uZXR3b3JrPXN0YWdlbmV0JztcbiAgYWRkcmVzc1ByZWZpeCA9ICdzdGhvcic7XG59XG5cbmNsYXNzIEJhYnkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0JhYnlsb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJBQlk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2JhYnlsb24vdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdiYm4nO1xufVxuXG5jbGFzcyBCYWJ5VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBCYWJ5bG9uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQUJZO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9iYWJ5bG9uLXRlc3RuZXQvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdiYm4nO1xufVxuXG5jbGFzcyBNYW50cmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQ29zbW9zTmV0d29yayB7XG4gIG5hbWUgPSAnTWFudHJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NQU5UUkE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIubWFudHJhY2hhaW4uaW8vTUFOVFJBLTEvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdtYW50cmEnO1xuICB2YWxpZGF0b3JQcmVmaXggPSAnbWFudHJhdmFsb3Blcic7XG4gIGRlbm9tID0gJ3VvbSc7XG4gIGdhc0Ftb3VudCA9ICc4MDAwJztcbiAgZ2FzTGltaXQgPSAyMDAwMDA7XG4gIHZhbGlkRGVub21zID0gWydvbScsICd1b20nXTtcbn1cblxuY2xhc3MgTWFudHJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBDb3Ntb3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IE1hbnRyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTUFOVFJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm1hbnRyYWNoYWluLmlvL01BTlRSQS1EdWtvbmcvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdtYW50cmEnO1xuICB2YWxpZGF0b3JQcmVmaXggPSAnbWFudHJhdmFsb3Blcic7XG4gIGRlbm9tID0gJ3VvbSc7XG4gIGdhc0Ftb3VudCA9ICc4MDAwJztcbiAgZ2FzTGltaXQgPSAyMDAwMDA7XG4gIHZhbGlkRGVub21zID0gWydvbScsICd1b20nXTtcbn1cblxuY2xhc3MgQ3Jvbm9zIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDcm9ub3MgUE9TJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DUk9OT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Jvbm9zLXBvcy5vcmcvZXhwbG9yZXIvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdjcm8nO1xufVxuXG5jbGFzcyBDcm9ub3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENyb25vcyBQT1MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNST05PUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jcm9ub3MtcG9zLm9yZy9leHBsb3Jlci9jcm9lc2VpZDQvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICd0Y3JvJztcbn1cblxuY2xhc3MgRmV0Y2hBaSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRmV0Y2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZFVENIQUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2ZldGNoYWknO1xufVxuXG5jbGFzcyBGZXRjaEFpVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBGZXRjaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkVUQ0hBSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3JlLWVyaWRhbnVzLTEuZmV0Y2guYWkvJztcbn1cblxuY2xhc3MgSW5pdGlhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbml0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSVRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLmluaXRpYS54eXovaW50ZXJ3b3Zlbi0xL3R4cy8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2luaXQnO1xufVxuXG5jbGFzcyBJbml0aWFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEluaXRpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5JVElBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NjYW4udGVzdG5ldC5pbml0aWEueHl6L2luaXRpYXRpb24tMi90eHMvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdpbml0Jztcbn1cblxuY2xhc3MgQXNpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdGZXRjaCBOYXRpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFTSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb21wYW5pb24uZmV0Y2guYWkvZmV0Y2hodWItNC90cmFuc2FjdGlvbnMvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdmZXRjaCc7XG59XG5cbmNsYXNzIEFzaVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgRmV0Y2ggTmF0aXZlJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BU0k7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY29tcGFuaW9uLmZldGNoLmFpL2RvcmFkby0xL3RyYW5zYWN0aW9ucy8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2ZldGNoJztcbn1cblxuY2xhc3MgSXNsbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGFxcSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9waW5nLnB1Yi9oYXFxL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnaGFxcSc7XG59XG5cbmNsYXNzIElzbG1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIYXFxVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBpbmcucHViL2hhcXEvdHgvJztcbiAgYWRkcmVzc1ByZWZpeCA9ICdoYXFxJztcbn1cblxuY2xhc3MgU3R4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1RYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhpcm8uc28vdHhpZC8nO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1AzRkJSMkFHSzVIOVFCREgzRUVONkRGOEVLOEpZN1JYOFFKNVNWVEUnO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NQMDAwMDAwMDAwMDAwMDAwMDAwMDAyUTZWRjc4JztcbiAgc2J0Y1dpdGhkcmF3YWxDb250cmFjdEFkZHJlc3MgPSAnU00zVkRYSzNXWlpTQTg0WFhGS0FGQUYxNU5OWlgzMkNUU0c4MkpGUTQnO1xufVxuXG5jbGFzcyBTdHhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5oaXJvLnNvL3R4aWQvP2NoYWluPXRlc3RuZXQnO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1QzRjFYNFFHVjJTTThYRDk2WDQ1TTZSVFFYS0ExUFpKWlpDUUFCNEInO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NUMDAwMDAwMDAwMDAwMDAwMDAwMDAyQU1XNDJIJztcbiAgc2J0Y1dpdGhkcmF3YWxDb250cmFjdEFkZHJlc3MgPSAnU042OVA3UlpSS0s4RVJRQ0NBQkhUMkpXS0IyUzRESEg5SDc0MjMxVCc7XG59XG5cbmNsYXNzIFNVU0QgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NVU0QnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVU0Q7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBTVVNEVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU1VTRFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVU0Q7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBGaWF0VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBCYXNlTmV0d29yayB7XG4gIG5hbWUgPSAnRmlhdFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZJQVQ7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBGaWF0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdGaWF0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GSUFUO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQml0dGVuc29yIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUYW8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90YW9zdGF0cy5pby9leHRyaW5zaWMvJztcbn1cblxuY2xhc3MgQml0dGVuc29yVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBUYW8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5maW5uZXkub3BlbnRlbnNvci5haS8jLyc7XG4gIHNwZWNOYW1lID0gJ25vZGUtc3VidGVuc29yJyBhcyBTdWJzdHJhdGVTcGVjTmFtZVR5cGU7XG4gIGdlbmVzaXNIYXNoID0gJzB4OGY5Y2Y4NTZiZjU1OGExNDQ0MGU3NTU2OWM5ZTU4NTk0NzU3MDQ4ZDdiM2E4NGI1ZDI1ZjZiZDk3ODI2MzEwNSc7XG4gIHNwZWNWZXJzaW9uID0gMjI0O1xuICBjaGFpbk5hbWUgPSAnYml0dGVuc29yJztcbiAgdHhWZXJzaW9uID0gMTtcbn1cblxuY2xhc3MgVHJ4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcngnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRSWDtcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHJvbnNjYW4ub3JnLyMvYWRkcmVzcy8nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Ryb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBUcnhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcnhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NoYXN0YS50cm9uc2Nhbi5vcmcvIy9hZGRyZXNzLyc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhc3RhLnRyb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBYcnAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpdmVuZXQueHJwbC5vcmcvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFhycFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0LnhycGxleHBsb3Jlci5jb20vZXhwbG9yZXIvJztcbn1cblxuY2xhc3MgWHR6IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHonO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90enN0YXRzLmNvbS8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90enN0YXRzLmNvbS8nO1xufVxuXG5jbGFzcyBYdHpUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHpUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFo7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ2hvc3RuZXQudHprdC5pby8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9naG9zdG5ldC50emt0LmlvLyc7XG59XG5cbmNsYXNzIFpDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdaQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVDO1xuICB1dHhvbGliTmFtZSA9ICd6Y2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC56Y2FzaGV4cGxvcmVyLmFwcC90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgWkNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdaQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFQztcbiAgdXR4b2xpYk5hbWUgPSAnemNhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnpjYXNoZXhwbG9yZXIuYXBwL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBOZWFyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdOZWFyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL25lYXJibG9ja3MuaW8vdHhucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9uZWFyYmxvY2tzLmlvL2FkZHJlc3MvJztcbiAgZmVlUmVzZXJ2ZSA9ICc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIHN0b3JhZ2VSZXNlcnZlID0gJzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBmZWVSZXNlcnZlICsgc3RvcmFnZVJlc2VydmUgaXMgbWluaW11bSBhY2NvdW50IGJhbGFuY2UgZm9yIGEgTkVBUiB3YWxsZXQgaHR0cHM6Ly9kb2NzLm5lYXIub3JnL2ludGVncmF0b3IvZmFxI2lzLXRoZXJlLWEtbWluaW11bS1hY2NvdW50LWJhbGFuY2Vcbn1cblxuY2xhc3MgTmVhclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ05lYXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQubmVhcmJsb2Nrcy5pby90eG5zLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQubmVhcmJsb2Nrcy5pby9hZGRyZXNzLyc7XG4gIGZlZVJlc2VydmUgPSAnNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuICBzdG9yYWdlUmVzZXJ2ZSA9ICcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwJzsgLy8gZmVlUmVzZXJ2ZSArIHN0b3JhZ2VSZXNlcnZlIGlzIG1pbmltdW0gYWNjb3VudCBiYWxhbmNlIGZvciBhIE5FQVIgd2FsbGV0IGh0dHBzOi8vZG9jcy5uZWFyLm9yZy9pbnRlZ3JhdG9yL2ZhcSNpcy10aGVyZS1hLW1pbmltdW0tYWNjb3VudC1iYWxhbmNlXG59XG5cbmNsYXNzIFBvbHlnb24gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5Z29uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZR09OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbHlnb25zY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wb2x5Z29uc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTM3O1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDI5ZWY0NjAzNWU5ZmEzZDU3MGM1OThkMzI2NjQyNGNhMTE0MTNiMGMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg1Mzk3ZDA4NjlhYmEwZDU1ZTk2ZDU3MTZkMzgzZjZlMWQ4Njk1ZWQ3JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHhhNzE5OGY0OGM1OGU5MWYwMTMxN2U3MGNkMjRjNWNjZTQ3NWMxNTU1JztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZTVkY2RjMTNiNjI4YzJkZjgxM2RiMTA4MDM2N2U5MjljMTUwN2NhMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUE9MWUdPTic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OLUVSQzIwJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBQb2x5Z29uVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb25UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZR09OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Ftb3kucG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Ftb3kucG9seWdvbnNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgwMDAyO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDIzMjIzZmQ3Y2ZjNWYzNGIyMGYzOGViYjlhNDg5ZTFmZjNjMDg0ZDEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNGMyNDMyNWI1ZWY1MTRmYmIxZWNjNzZhOWJiNGRjYjU3YTgzNDFlJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHhlOWMxNjAzM2UwMWJmOWY5NGJmOWY5OWZjMGZlZmNmYjhiMTI0OTkyJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZjgzNjBjMjEzZTRmNDRjY2UwM2U0OGNiOTI4MTI1NGRlMmE3YTU2Nic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUE9MWUdPTic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OLUVSQzIwJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBPcHRpbWlzbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wdGltaXNtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcHRpbWlzdGljLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcHRpbWlzdGljLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTAnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTAtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGViZTI3OTEzZmNjNzUxMGVhZGYxMDY0M2E4Zjg2YmY1NDkyYTk1NDEnO1xufVxuXG5jbGFzcyBPcHRpbWlzbVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdPcHRpbWlzbVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9QRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtb3B0aW1pc20uZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtb3B0aW1pc20uZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExMTU1NDIwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE1NTQyMCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE1NTQyMC1FUkMyMCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG59XG5cbmNsYXNzIFprU3luYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1prU3luYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWktFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemtzeW5jLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnprc3luYy5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMjQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMyNCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMjQtRVJDMjAnO1xufVxuXG5jbGFzcyBaa1N5bmNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWmtTeW5jVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWktFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5leHBsb3Jlci56a3N5bmMuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5leHBsb3Jlci56a3N5bmMuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzAwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMDAnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzAwLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhkZDQ5ODcwMmY0NGM0ZGEwOGViOWUwOGQzZjAxNWVlZmU1Y2I3MWZjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YmU2OWNhZTMxMTE5MWZiNDVlNjQ4ZWQyMDg0N2YwNmZhZDJkYmFiNCc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg0NTUwZTFlNzYxNmQzMzY0ODc3ZmM2YzkzMjQ5MzhkYWI2Nzg2MjFhJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTJkYjI3NTlkMWRjYTEyOWEwZDlkNDY4NzdmMzYxYmU4MTkxODRjNCc7XG59XG5cbmNsYXNzIFprU3luY0VyYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1prU3luY0VyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWktTWU5DRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnprc3luYy5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci56a3N5bmMuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzI0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMjQnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzI0LUVSQzIwJztcbn1cblxuY2xhc3MgWmtTeW5jRXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1prU3luY0VyYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpLU1lOQ0VSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmV4cGxvcmVyLnprc3luYy5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmV4cGxvcmVyLnprc3luYy5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMDA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMwMCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMDAtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGRkNDk4NzAyZjQ0YzRkYTA4ZWI5ZTA4ZDNmMDE1ZWVmZTVjYjcxZmMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhiZTY5Y2FlMzExMTkxZmI0NWU2NDhlZDIwODQ3ZjA2ZmFkMmRiYWI0JztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDQ1NTBlMWU3NjE2ZDMzNjQ4NzdmYzZjOTMyNDkzOGRhYjY3ODYyMWEnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5MmRiMjc1OWQxZGNhMTI5YTBkOWQ0Njg3N2YzNjFiZTgxOTE4NGM0Jztcbn1cblxuY2xhc3MgQmVyYWNoYWluIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQmVyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkVSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZXJhc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVyYXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgwMDk0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDA5NCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDA5NC1FUkMyMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlZGYxYTAwMTZkOWM0MWQyYWQwYzI3NWUxYmE3MDgzNjFhOTBjMGQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIEJlcmFjaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCZXJhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkVSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJlcmFzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJlcmFzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MDA2OTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODAwNjknO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODAwNjktRVJDMjAnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBPYXMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdPYXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9BUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5vYXN5cy5nYW1lcy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5vYXN5cy5nYW1lcy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyNDg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI0OCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlZGYxYTAwMTZkOWM0MWQyYWQwYzI3NWUxYmE3MDgzNjFhOTBjMGQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIE9hc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdPYXNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PQVM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5vYXN5cy5nYW1lcy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0Lm9hc3lzLmdhbWVzL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDkzNzI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzkzNzInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWRmMWEwMDE2ZDljNDFkMmFkMGMyNzVlMWJhNzA4MzYxYTkwYzBkMSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBDb3JlZGFvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ29yZWRhbyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRURBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLmNvcmVkYW8ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NjYW4uY29yZWRhby5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExNic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIENvcmVkYW9UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ29yZWRhb1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNPUkVEQU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi50ZXN0Mi5idGNzLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi50ZXN0Mi5idGNzLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExNCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIElQIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU3RvcnknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5zdG9yeXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LnN0b3J5c2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNTE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNTE0Jztcbn1cblxuY2xhc3MgSVBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU3RvcnlUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hZW5laWQuc3RvcnlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FlbmVpZC5zdG9yeXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTMxNTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTMxNSc7XG59XG5cbmNsYXNzIEFwZUNoYWluIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQXBlQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFQRUNIQUlOO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FwZXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXBlc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMzEzOTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzMxMzknO1xufVxuXG5jbGFzcyBBcGVDaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcGVDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFQRUNIQUlOO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2N1cnRpcy5hcGVzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2N1cnRpcy5hcGVzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMzMTExO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMzExMSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBBYnN0cmFjdEV0aCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0Fic3RyYWN0IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BQlNUUkFDVEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hYnNjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Fic2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjc0MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjc0MSc7XG59XG5cbmNsYXNzIEFic3RyYWN0RXRoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQWJzdHJhY3QgRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFCU1RSQUNURVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYWJzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmFic2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExMjQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTI0Jztcbn1cblxuY2xhc3MgUGhhcm9zIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUGhhcm9zJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QSFJTO1xuICBleHBsb3JlclVybCA9ICcnOyAvLyBUT0RPOiBXSU4tNTc4NyBBZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJyc7IC8vIFRPRE86IFdJTi01Nzg3IEFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBjaGFpbklkID0gNjg4Njg4OyAvLyBUT0RPOiBXSU4tNTc4NyBBZGQgbWFpbm5ldCBpZCB3aGVuIGF2YWlsYWJsZVxuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc2ODg2ODgnO1xufVxuXG5jbGFzcyBQaGFyb3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUGhhcm9zVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUEhSUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hdGxhbnRpYy5waGFyb3NzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hdGxhbnRpYy5waGFyb3NzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA2ODg2ODk7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzY4ODY4OSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBDcmVkaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ3JlZGl0Y29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1RDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NyZWRpdGNvaW4uYmxvY2tzY291dC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3JlZGl0Y29pbi5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMDIwMzA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMjAzMCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBQbGFzbWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQbGFzbWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhQTDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wbGFzbWFzY2FuLnRvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3BsYXNtYXNjYW4udG8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTc0NTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTc0NSc7XG59XG5cbmNsYXNzIFBsYXNtYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQbGFzbWFUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YUEw7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5wbGFzbWFzY2FuLnRvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQucGxhc21hc2Nhbi50by9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5NzQ2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5NzQ2Jztcbn1cblxuY2xhc3MgSHlwZUVWTVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIeXBlcmxpcXVpZEVWTVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhZUEVFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5wdXJyc2VjLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnB1cnJzZWMuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDk5ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTk4JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEh5cGVFVk0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIeXBlcmxpcXVpZEVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFlQRUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oeXBlcmV2bXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaHlwZXJldm1zY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDk5OTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTk5JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEh5cGVybGlxdWlkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIeXBlcmxpcXVpZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFlQRVJMSVFVSUQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXBwLmh5cGVybGlxdWlkLnh5ei9leHBsb3Jlcic7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FwcC5oeXBlcmxpcXVpZC54eXovZXhwbG9yZXInO1xufVxuXG5jbGFzcyBIeXBlcmxpcXVpZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0h5cGVybGlxdWlkVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFlQRVJMSVFVSUQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXBwLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V4cGxvcmVyJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXBwLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V4cGxvcmVyJztcbn1cblxuY2xhc3MgS2F2YUVWTVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhRVZNVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FWQUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmthdmFzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmthdmFzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyMjIxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMjIxJztcbn1cblxuY2xhc3MgS2F2YUVWTSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0thdmFFVk0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkFFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va2F2YXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2thdmFzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyMjIyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMjIyJztcbn1cblxuY2xhc3MgTGluZWFFVEggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdMaW5lYSBFdGhlcmV1bSBNYWlubmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MSU5FQUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saW5lYXNjYW4uYnVpbGQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbGluZWFzY2FuLmJ1aWxkL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU5MTQ0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1OTE0NCc7XG59XG5cbmNsYXNzIExpbmVhRVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0xpbmVhIEV0aGVyZXVtIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxJTkVBRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEubGluZWFzY2FuLmJ1aWxkL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEubGluZWFzY2FuLmJ1aWxkL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU5MTQxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1OTE0MSc7XG59XG5cbmNsYXNzIEZsdWVudEVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZsdWVudCBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxVRU5URVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2ZsdWVudHNjYW4ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ZsdWVudHNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI1MzYzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyNTM2Myc7XG59XG5cbmNsYXNzIEZsdWVudEVUSFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEZsdWVudCBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxVRU5URVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuZmx1ZW50c2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5mbHVlbnRzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyMDk5NDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjA5OTQnO1xufVxuXG5jbGFzcyBNYW50bGUgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdNYW50bGUgTmF0aXZlJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NQU5UTEU7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFudGxlc2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFudGxlc2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTAwMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTAwMCc7XG59XG5cbmNsYXNzIE1hbnRsZVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IE1hbnRsZSBOYXRpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1BTlRMRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLm1hbnRsZXNjYW4ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEubWFudGxlc2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTAwMztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTAwMyc7XG59XG5cbmNsYXNzIEpvdmF5RVRIIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSm92YXkgRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkpPVkFZRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmpvdmF5LmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmpvdmF5LmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU3MzQ5NTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU3MzQ5NTEnO1xufVxuXG5jbGFzcyBKb3ZheUVUSFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEpvdmF5IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5KT1ZBWUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLWV4cGxvcmVyLmpvdmF5LmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuam92YXkuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjAxOTc3NTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjAxOTc3NSc7XG59XG5cbmNsYXNzIFVuaWV0aCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1VuaWNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5VTklFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdW5pc2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdW5pc2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTMwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMzAnO1xufVxuXG5jbGFzcyBVbmlldGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBVbmljaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVU5JRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEudW5pc2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS51bmlzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzAxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMzAxJztcbn1cblxuY2xhc3MgSHBwZXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSG91c2UgUGFydHkgUHJvdG9jb2wnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhQUEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5ocHAuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaHBwLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE5MDQxNTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTkwNDE1Jztcbn1cblxuY2xhc3MgSHBwZXRoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSG91c2UgUGFydHkgUHJvdG9jb2wnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhQUEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLWV4cGxvcmVyLmhwcC5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLWV4cGxvcmVyLmhwcC5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxODEyMjg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE4MTIyOCc7XG59XG5cbmNsYXNzIEhvb2RldGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBSb2Jpbmhvb2QgQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhPT0RFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5jaGFpbi5yb2Jpbmhvb2QuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQuY2hhaW4ucm9iaW5ob29kLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0NjYzMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDY2MzAnO1xufVxuXG5jbGFzcyBIb29kZXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUm9iaW5ob29kIENoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IT09ERVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovLzhjcnY0dm1xNnRpdTF5cXIuYmxvY2tzY291dC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vOGNydjR2bXE2dGl1MXlxci5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0NjYzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0NjYzJztcbn1cblxuY2xhc3MgSHVtYW5pdHlQcm90b2NvbCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0h1bWFuaXR5IFByb3RvY29sJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmh1bWFuaXR5Lm9yZy9tYWlubmV0L3R4bnMvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaHVtYW5pdHkub3JnL21haW5uZXQvYWNjb3VudHMvJztcbiAgY2hhaW5JZCA9IDY5ODUzODU7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzY5ODUzODUnO1xufVxuXG5jbGFzcyBIdW1hbml0eVByb3RvY29sVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSHVtYW5pdHkgUHJvdG9jb2wnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lkg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaHVtYW5pdHkub3JnL3Rlc3RuZXQvdHhucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5odW1hbml0eS5vcmcvdGVzdG5ldC9hY2NvdW50cy8nO1xuICBjaGFpbklkID0gNzA4MDk2OTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNzA4MDk2OSc7XG59XG5cbmNsYXNzIFhsYXllciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1ggTGF5ZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9LQlhMQVlFUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cub2tsaW5rLmNvbS94LWxheWVyL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3d3dy5va2xpbmsuY29tL3gtbGF5ZXIvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTk2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxOTYnO1xufVxuXG5jbGFzcyBYbGF5ZXJUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBYIExheWVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PS0JYTEFZRVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm9rbGluay5jb20veC1sYXllci10ZXN0bmV0L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3d3dy5va2xpbmsuY29tL3gtbGF5ZXItdGVzdG5ldC9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTUyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxOTUyJztcbn1cblxuY2xhc3MgTW9ycGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdNb3JwaCBNYWlubmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NT1JQSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1hcGktaG9vZGkubW9ycGhsMi5pby90eC8nOyAvLyBUT0RPOiBXSU4tODEzNCBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8vYWRkcmVzcy8nOyAvLyBUT0RPOiBXSU4tODEzNCBhZGQgbWFpbm5ldCBhY2NvdW50IGV4cGxvcmVyIHVybCB3aGVuIGF2YWlsYWJsZVxuICBjaGFpbklkID0gMjgxODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjgxOCc7XG59XG5cbmNsYXNzIE1vcnBoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vcnBoIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PUlBIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLWhvb2RpLm1vcnBoLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyOTEwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyOTEwJztcbn1cblxuY2xhc3MgTW9ycGhFVEggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdNb3JwaCBFdGhlcmV1bSBNYWlubmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NT1JQSEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5tb3JwaC5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm1vcnBoLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjgxODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjgxOCc7XG59XG5cbmNsYXNzIE1vcnBoRVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vcnBoIEV0aGVyZXVtIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PUlBIRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLWhvb2RpLm1vcnBoLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyOTEwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyOTEwJztcbn1cblxuY2xhc3MgQ3JlZGl0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDcmVkaXRjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1RDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NyZWRpdGNvaW4tdGVzdG5ldC5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTAyMDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMDIwMzEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgU29uaWMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25pYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09OSUM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uaWNzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25pY3NjYW4ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE0NjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTQ2Jztcbn1cblxuY2xhc3MgU29uaWNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uaWNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT05JQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNvbmljc2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5zb25pY3NjYW4ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE0NjAxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNDYwMSc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBVc2R0MCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1N0YWJsZUVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVVNEVDA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3RhYmxlc2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3RhYmxlc2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTg4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5ODgnO1xufVxuXG5jbGFzcyBVc2R0MFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFN0YWJsZUVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVVNEVDA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5zdGFibGVzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnN0YWJsZXNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDIyMDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzIyMDEnO1xufVxuXG5jbGFzcyBLYWlhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS2FpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlhc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlhc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MjE3O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MjE3Jztcbn1cblxuY2xhc3MgS2FpYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLYWlhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlyb3Mua2FpYXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va2Fpcm9zLmthaWFzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwMDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMDEnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgSXJ5cyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0lyeXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklSWVM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXZtLWV4cGxvcmVyLmlyeXMueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V2bS1leHBsb3Jlci5pcnlzLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMjgyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMjgyJztcbn1cblxuY2xhc3MgSXJ5c1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdJcnlzVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVJZUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWV4cGxvcmVyLmlyeXMueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQtZXhwbG9yZXIuaXJ5cy54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTI3MDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTI3MCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBPZyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1plcm8gR3Jhdml0eSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0c7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW5zY2FuLjBnLmFpL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NoYWluc2Nhbi4wZy5haS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNjY2MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTY2NjEnO1xufVxuXG5jbGFzcyBPZ1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdaZXJvIEdyYXZpdHkgVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0c7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW5zY2FuLWdhbGlsZW8uMGcuYWkvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW5zY2FuLWdhbGlsZW8uMGcuYWkvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTY2MDI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE2NjAyJztcbn1cblxuY2xhc3MgWGRjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWGRjQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhEQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly94ZGNzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly94ZGNzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTAnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgWGRjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1hkY0NoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWERDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQueGRjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC54ZGNzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgV2VtaXggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdXZW1peENoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5XRU1JWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci53ZW1peC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIud2VtaXguY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExMTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgV2VtaXhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnV2VtaXhDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LldFTUlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3Qud2VtaXguY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3Qud2VtaXguY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExMTI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgTW9uYWRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTW9uYWRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5tb25hZGV4cGxvcmVyLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm1vbmFkZXhwbG9yZXIuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwMTQzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMDE0Myc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuY2xhc3MgTW9uYWQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdNb25hZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTU9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21haW5uZXQtYmV0YS5tb252aXNpb24uaW8vdHgvJztcbiAgY2hhaW5JZCA9IDE0MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTQzJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIFdvcmxkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnV29ybGRjaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuV09STEQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd29ybGRzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93b3JsZHNjYW4ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQ4MDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDgwJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIFdvcmxkVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1dvcmxkY2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5XT1JMRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLndvcmxkc2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQ4MDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQ4MDEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgU29uZWl1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbmVpdW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTkVJVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZWl1bS5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25laXVtLmJsb2Nrc2NvdXQuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE4Njg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE4NjgnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgU29uZWl1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25laXVtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09ORUlVTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTQ2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxOTQ2JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFNjcm9sbEV0aCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Njcm9sbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0NST0xMRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Njcm9sbHNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Njcm9sbHNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUzNDM1MjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTM0MzUyJztcbn1cblxuY2xhc3MgU2Nyb2xsRXRoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Njcm9sbCBTZXBvbGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TQ1JPTExFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5zY3JvbGxzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLnNjcm9sbHNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUzNDM1MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTM0MzUxJztcbn1cblxuY2xhc3MgU2VpRXZtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU2VpZXZtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TRUlFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vpc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZWlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzMjk7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMjknO1xufVxuXG5jbGFzcyBTZWlFdm1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU2VpRXZtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0VJRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc2Vpc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNlaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTMyODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTMyOCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBTb21uaWFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29tbmlhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1RUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NoYW5ub24tZXhwbG9yZXIuc29tbmlhLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhbm5vbi1leHBsb3Jlci5zb21uaWEubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDMxMjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTAzMTInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgU29taSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbW5pYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09NSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUvdHgvJztcbiAgY2hhaW5JZCA9IDUwMzE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwMzEnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuZXhwb3J0IGNsYXNzIEZsYXJlUCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBGbGFyZU5ldHdvcmsge1xuICBhc3NldElkID0gJzJNeEtTZUVXWFZpTGRZeURoVzFTUTQ2QUVDWkViRTJiblZSWnB0djQySnJ4cXlVWDVrJztcbiAgbmFtZSA9ICdGbGFyZVAnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZMUlA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZmxhcmVzY2FuLmNvbS9ibG9ja2NoYWluL3B2bS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9mbGFyZXNjYW4uY29tL2Jsb2NrY2hhaW4vcHZtL2FkZHJlc3MvJztcbiAgYmxvY2tjaGFpbklEID0gJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExTHBvWVknO1xuICBjQ2hhaW5CbG9ja2NoYWluSUQgPSAndW1rYmhTcmpWdzVuVXZ5MWVvMjVBZHJqUmtQQmR0ekFNZXd1eEEycnFFeDRZTW80Yyc7XG4gIHhDaGFpbkJsb2NrY2hhaW5JRCA9ICdmSzVlNlQzRW5pTXFhZ0JreFhqQXVnOUViaEZEWmJFelBQcjRmMjJ1d01vUDVpMmNKJztcbiAgbmV0d29ya0lEID0gMTQ7XG4gIGhycCA9ICdmbGFyZSc7XG4gIGFsaWFzID0gJ1AnO1xuICB2bSA9ICdwbGF0Zm9ybXZtJztcbiAgbWluSW1wb3J0VG9QRmVlID0gJzEyNjEwMDAnOyAvLyAwLjEyNjEgRkxSXG4gIHR4RmVlID0gJzIwMDAwMCc7IC8vIEZMUiBQLWNoYWluIGltcG9ydCByZXF1aXJlcyBoaWdoZXIgZmVlIHRoYW4gYmFzZSB0eEZlZVxuICBiYXNlVHhGZWUgPSAnMTAwMDAwMCc7XG4gIG1heEltcG9ydEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIGNyZWF0ZUFzc2V0VHhGZWUgPSAnMTAwMDAwMCc7XG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIHRyYW5zZm9ybVN1Ym5ldFR4RmVlID0gJzEwMDAwMDAwMCc7XG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwJzsgLy8gZGVmYXVsdHNcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnMTAzNjg4MjY2OTc0MDAwMDAwMDAwJzsgLy8gMTAzQiB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMTAwMDAwMDAwMDAwMDAwMCc7IC8vIDFNIEZMUlxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzUyNTYwMDAnOyAvLyAyIG1vbnRoc1xuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICc1MDAwMDAwMDAwMDAwMCc7IC8vIDUwMDAwIEZMUlxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzAnO1xuICBhZGRQcmltYXJ5TmV0d29ya1ZhbGlkYXRvckZlZSA9ICcwJztcbiAgYWRkU3VibmV0VmFsaWRhdG9yRmVlID0gJzEwMDAwMDAnO1xuICBhZGRTdWJuZXREZWxlZ2F0b3JGZWUgPSAnMTAwMDAwMCc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZVBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEZsYXJlTmV0d29yayB7XG4gIG5hbWUgPSAnRmxhcmVQVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24yLnRlc3RuZXQuZmxhcmVzY2FuLmNvbS9ibG9ja2NoYWluL3B2bS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24yLnRlc3RuZXQuZmxhcmVzY2FuLmNvbS9ibG9ja2NoYWluL3B2bS9hZGRyZXNzLyc7XG4gIGZsYXJlUHVibGljVXJsID0gJ2h0dHBzOi8vY29zdG9uMi50ZXN0bmV0LmZsYXJlLm5ldHdvcmsnO1xuICBibG9ja2NoYWluSUQgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWSc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRCA9ICd2RThNOThtRVFINndrNTZzU3REMU1MOEhBcFRnU3FmSlpMazlnUTNGc2Q0aTZtM0JpJztcbiAgeENoYWluQmxvY2tjaGFpbklEID0gJ0ZKdVN3WnVQODVleUJwdUJyS0VDbnBQZWRHeVhvRHkyaFA5cTRKRDhxQlRaR3hZSic7XG4gIG5ldHdvcmtJRCA9IDExNDtcbiAgaHJwID0gJ2Nvc3R3byc7XG4gIGFsaWFzID0gJ1AnO1xuICBhc3NldElkID0gJ2Z4TUFLcEJRUXBGZWRyVWhXTXNEWWZDVUp4ZFV3NG1uZVRjektCek5nM3JjMkpVdWInO1xuICB2bSA9ICdwbGF0Zm9ybXZtJztcbiAgbWluSW1wb3J0VG9QRmVlID0gJzEyNjEwMDAnOyAvLyAwLjEyNjEgRkxSXG4gIHR4RmVlID0gJzIwMDAwMCc7IC8vIEZMUiBQLWNoYWluIGltcG9ydCByZXF1aXJlcyBoaWdoZXIgZmVlIHRoYW4gYmFzZSB0eEZlZVxuICBiYXNlVHhGZWUgPSAnMTAwMDAwMCc7XG4gIG1heEltcG9ydEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIGNyZWF0ZUFzc2V0VHhGZWUgPSAnMTAwMDAwMCc7XG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIHRyYW5zZm9ybVN1Ym5ldFR4RmVlID0gJzEwMDAwMDAwMCc7XG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwJzsgLy8gZGVmYXVsdHNcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyA3OSB0cmlsbGlvbiB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMTAwMDAwMDAwMDAwMDAwMCc7IC8vIDFNIEZMUlxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzUyNTYwMDAnOyAvLyAyIG1vbnRoc1xuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICc1MDAwMDAwMDAwMDAwMCc7IC8vIDUwMDAwIEZMUlxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzAnO1xuICBhZGRQcmltYXJ5TmV0d29ya1ZhbGlkYXRvckZlZSA9ICcwJztcbiAgYWRkU3VibmV0VmFsaWRhdG9yRmVlID0gJzEwMDAwMDAnO1xuICBhZGRTdWJuZXREZWxlZ2F0b3JGZWUgPSAnMTAwMDAwMCc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZsYXJlY2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZMUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9mbGFyZXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ZsYXJlc2Nhbi5jb20vYmxvY2tjaGFpbi9hZGRyZXNzLyc7XG4gIGZsYXJlUHVibGljVXJsID0gJ2h0dHBzOi8vZmxhcmVzY2FuLmNvbSc7XG4gIGNoYWluSWQgPSAxNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTQnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGM1ZDdhM2I0YzQ5MGM2MjQyZmIyOGYyMGU1ZmUzM2NkOTgzMzcyYTMnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuZXhwb3J0IGNsYXNzIEZsYXJlVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZsYXJlY2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTFI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY29zdG9uMi50ZXN0bmV0LmZsYXJlc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY29zdG9uMi50ZXN0bmV0LmZsYXJlc2Nhbi5jb20vYmxvY2tjaGFpbi9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExNCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgU29uZ2JpcmQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25nYmlyZGNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TR0I7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZ2JpcmQtZXhwbG9yZXIuZmxhcmUubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25nYmlyZC1leHBsb3Jlci5mbGFyZS5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxOSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBTb25nYmlyZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25nYmlyZGNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0dCO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nvc3Rvbi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Nvc3Rvbi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBCYXNlQ2hhaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIC8vQmFzZUVUSCB0ZXN0bmV0XG4gIG5hbWUgPSAnQmFzZUNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkFTRUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmJhc2VzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmJhc2VzY2FuLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4NDUzMjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODQ1MzInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODQ1MzItRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGRkNDk4NzAyZjQ0YzRkYTA4ZWI5ZTA4ZDNmMDE1ZWVmZTVjYjcxZmMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhiZTY5Y2FlMzExMTkxZmI0NWU2NDhlZDIwODQ3ZjA2ZmFkMmRiYWI0JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg0NTUwZTFlNzYxNmQzMzY0ODc3ZmM2YzkzMjQ5MzhkYWI2Nzg2MjFhJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTJkYjI3NTlkMWRjYTEyOWEwZDlkNDY4NzdmMzYxYmU4MTkxODRjNCc7XG59XG5cbmNsYXNzIEJhc2VDaGFpbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICAvL0Jhc2VFVEhcbiAgbmFtZSA9ICdCYXNlQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJBU0VFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmFzZXNjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Jhc2VzY2FuLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4NDUzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4NDUzJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGRkNDk4NzAyZjQ0YzRkYTA4ZWI5ZTA4ZDNmMDE1ZWVmZTVjYjcxZmMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhiZTY5Y2FlMzExMTkxZmI0NWU2NDhlZDIwODQ3ZjA2ZmFkMmRiYWI0JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg0NTUwZTFlNzYxNmQzMzY0ODc3ZmM2YzkzMjQ5MzhkYWI2Nzg2MjFhJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTJkYjI3NTlkMWRjYTEyOWEwZDlkNDY4NzdmMzYxYmU4MTkxODRjNCc7XG59XG5cbmNsYXNzIFBvbHltZXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5bWVzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUE9MWVg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seW1lc2guc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAncG9seW1lc2hfbWFpbm5ldCc7XG4gIGdlbmVzaXNIYXNoID0gJzB4NmZiZDc0ZTVlMWQwYTYxZDUyY2NmZTlkNGFkYWVkMTZkZDNhN2NhYTM3YzZiYzRkMGMyZmExMmU4YjJmNDA2Myc7XG4gIHNwZWNWZXJzaW9uID0gNzAwMjAwMDtcbiAgY2hhaW5OYW1lID0gJ1BvbHltZXNoIE1haW5uZXQnO1xuICB0eFZlcnNpb24gPSA3O1xufVxuXG5jbGFzcyBQb2x5bWVzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHltZXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUE9MWVg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seW1lc2gtdGVzdG5ldC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICdwb2x5bWVzaF90ZXN0bmV0JyBhcyBTdWJzdHJhdGVTcGVjTmFtZVR5cGU7XG4gIGdlbmVzaXNIYXNoID0gJzB4MmFjZTA1ZTcwM2FhNTBiNDhjMGNjY2NmYzhiNDI0ZjdhYWI5YTFlMmM0MjRlZDEyZTQ1ZDIwYjFlOGZmZDBkNic7XG4gIHNwZWNWZXJzaW9uID0gNzAwMjAwMDtcbiAgY2hhaW5OYW1lID0gJ1BvbHltZXNoIFRlc3RuZXQnO1xuICB0eFZlcnNpb24gPSA3O1xufVxuXG5jbGFzcyBWZXQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdWZUNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5WRVQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS52ZWNoYWluLm9yZy90cmFuc2FjdGlvbnMvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS52ZWNoYWluLm9yZy9hY2NvdW50cy8nO1xuICBjaGFpbklkID0gMTAwMDA5O1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDY1MzQzZTE4YzM3NmQyZmM4YzNjZjEwY2QxNDZkNjNlMmUwZGM5ZWYnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg2MmRlMzRjODdmODQ3ZDM4NWFmMDdmNmMyNWRiZDk3YjFmZmZlZmMwJztcbn1cblxuY2xhc3MgVmV0VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1ZlQ2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5WRVQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS10ZXN0bmV0LnZlY2hhaW4ub3JnL3RyYW5zYWN0aW9ucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3JlLXRlc3RuZXQudmVjaGFpbi5vcmcvYWNjb3VudHMvJztcbiAgY2hhaW5JZCA9IDEwMDAxMDtcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHg2NTM0M2UxOGMzNzZkMmZjOGMzY2YxMGNkMTQ2ZDYzZTJlMGRjOWVmJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NjJkZTM0Yzg3Zjg0N2QzODVhZjA3ZjZjMjVkYmQ5N2IxZmZmZWZjMCc7XG59XG5cbmNsYXNzIElvdGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0lvdGEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklPVEE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaW90YS5vcmcvdHhibG9jay8/bmV0d29yaz1tYWlubmV0JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaW90YS5vcmcvYWRkcmVzcy8/bmV0d29yaz1tYWlubmV0Jztcbn1cblxuY2xhc3MgSW90YVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSW90YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU9UQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5pb3RhLm9yZy90eGJsb2NrLz9uZXR3b3JrPXRlc3RuZXQnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5pb3RhLm9yZy9hZGRyZXNzLz9uZXR3b3JrPXRlc3RuZXQnO1xufVxuXG5jbGFzcyBGbG93IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRmxvdyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxPVztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldm0uZmxvd3NjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXZtLmZsb3dzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDc0NztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNzQ3Jztcbn1cblxuY2xhc3MgRmxvd1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdGbG93VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxPVztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldm0tdGVzdG5ldC5mbG93c2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldm0tdGVzdG5ldC5mbG93c2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1NDU7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU0NSc7XG59XG5cbmNsYXNzIEdhc0V2bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ05lbyBYJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5HQVNFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbmVveHNjYW4ubmdkLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbmVveHNjYW4ubmdkLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDc3NjM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQ3NzYzJztcbn1cblxuY2xhc3MgR2FzRXZtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgTmVvIFgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkdBU0VWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9uZW94dDRzY2FuLm5nZC5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL25lb3h0NHNjYW4ubmdkLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTIyMjczMzI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEyMjI3MzMyJztcbn1cblxuY2xhc3MgTWVnYUVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01lZ2FFVEgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1FR0FFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVnYWV0aC5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZWdhZXRoLmJsb2Nrc2NvdXQuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMjY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQzMjYnO1xufVxuXG5jbGFzcyBNZWdhRVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01lZ2FFVEhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NRUdBRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5tZWdhZXhwbG9yZXIueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3d3dy5tZWdhZXhwbG9yZXIueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDYzNDM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzYzNDMnO1xufVxuXG5jbGFzcyBQbHVtZSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsdW1lJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QTFVNRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucGx1bWUub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDk4ODY2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5ODg2Nic7XG59XG5cbmNsYXNzIEhlZGVyYUVWTVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEhlZGVyYSBFVk0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhCQVJFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaGFzaHNjYW4uaW8vdGVzdG5ldC90cmFuc2FjdGlvbi8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oYXNoc2Nhbi5pby90ZXN0bmV0L2FjY291bnQvJztcbiAgY2hhaW5JZCA9IDI5NjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjk2Jztcbn1cblxuY2xhc3MgSGVkZXJhRVZNIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhIEVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUkVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oYXNoc2Nhbi5pby9tYWlubmV0L3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hhc2hzY2FuLmlvL21haW5uZXQvYWNjb3VudC8nO1xuICBjaGFpbklkID0gMjk1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyOTUnO1xufVxuXG5jbGFzcyBIZW1pRXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSGVtaSBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEVNSUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5oZW1pLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5oZW1pLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MzExMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDMxMTEnO1xufVxuXG5jbGFzcyBIZW1pRXRoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSGVtaSBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEVNSUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmV4cGxvcmVyLmhlbWkueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuZXhwbG9yZXIuaGVtaS54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNzQzMTExO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc3NDMxMTEnO1xufVxuY2xhc3MgS2F0YW5hRXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS2F0YW5hJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQVRBTkFFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va2F0YW5hc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va2F0YW5hc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNzQ3NDc0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc3NDc0NzQnO1xufVxuXG5jbGFzcyBLYXRhbmFFdGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBLYXRhbmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVEFOQUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1ib2t1dG8ua2F0YW5hcnBjLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1ib2t1dG8ua2F0YW5hcnBjLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA3MzczNzM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzczNzM3Myc7XG59XG5cbmNsYXNzIFByaXZpZGl1bUVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1ByaXZpZGl1bSBFdGhlcmV1bSBNYWlubmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QUklWSURJVU1FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucHJpdmlkaXVtLnprc3luYy5kZXYvdHgvJzsgLy8gVE9ETzogdXBkYXRlIHdpdGggbWFpbm5ldCBVUkwgd2hlbiBhdmFpbGFibGVcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucHJpdmlkaXVtLnprc3luYy5kZXYvYWRkcmVzcy8nOyAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IFVSTCB3aGVuIGF2YWlsYWJsZVxuICBjaGFpbklkID0gOTk5OTk5OTsgLy8gVE9ETzogdXBkYXRlIHdpdGggbWFpbm5ldCBjaGFpbiBJRCB3aGVuIGF2YWlsYWJsZVxuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5OTk5OTk5Jztcbn1cblxuY2xhc3MgUHJpdmlkaXVtRVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1ByaXZpZGl1bSBFdGhlcmV1bSBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QUklWSURJVU1FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC1wcml2aWRpdW0uemtzeW5jLmRldi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LXByaXZpZGl1bS56a3N5bmMuZGV2L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgwMjI4MzQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgwMjI4MzQnO1xufVxuXG5jbGFzcyBJbmtFdGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdJTksgTWFpbm5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5LRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmlua29uY2hhaW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmlua29uY2hhaW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU3MDczO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1NzA3Myc7XG59XG5cbmNsYXNzIElua0V0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdJTksgVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5LRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLXNlcG9saWEuaW5rb25jaGFpbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItc2Vwb2xpYS5pbmtvbmNoYWluLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA3NjMzNzM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzc2MzM3Myc7XG59XG5cbmNsYXNzIFBsdW1lVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsdW1lVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUExVTUU7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5wbHVtZS5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5wbHVtZS5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTg4Njc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk4ODY3Jztcbn1cblxuY2xhc3MgQ2FudG9uIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdDYW50b24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNBTlRPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saWdodGhvdXNlLmNhbnRvbmxvb3AuY29tL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBDYW50b25UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdDYW50b25UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DQU5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbGlnaHRob3VzZS50ZXN0bmV0LmNhbnRvbmxvb3AuY29tL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBEb2dlb3MgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdEb2dlIE9TJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET0dFT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC50ZXN0bmV0LmRvZ2Vvcy5jb20vdHgvJzsgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gXCInaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbS9hZGRyZXNzL1wiOyAvL1RPRE86IFdJTi04MDgyID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBjaGFpbklkID0gMTIzNDU2NzsgLy8vL1RPRE86IFdJTi04MDgyID0+IGFkZCBtYWlubmV0IGNoYWluSWQgd2hlbiBhdmFpbGFibGVcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTIzNDU2Nyc7IC8vVE9ETzogV0lOLTgwODIgPT4gYWRkIHdoZW4gbWFpbm5ldCBkZXRhaWxzIGF2YWlsYWJsZVxufVxuXG5jbGFzcyBEb2dlb3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRG9nZSBPUyBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET0dFT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC50ZXN0bmV0LmRvZ2Vvcy5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC50ZXN0bmV0LmRvZ2Vvcy5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNjI4MTk3MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNjI4MTk3MSc7XG59XG5cbmNsYXNzIEFyY1VTRENUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVVNEQyAoQVJDKSBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUkNVU0RDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYXJjc2Nhbi5hcHAvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5hcmNzY2FuLmFwcC9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDQyMDAyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDQyMDAyJztcbn1cblxuY2xhc3MgQXJjVVNEQyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1VTREMgKEFSQyknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQ1VTREM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYXJjLmlvL3R4Lyc7IC8vIFdJTi04ODQ0IGNoYW5nZSB0byBwcm9kIGV4cGxvcmVyIHVybFxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcmMuaW8vYWRkcmVzcy8nOyAvLyBjaGFuZ2UgdG8gcHJvZCBleHBsb3JlciB1cmwgd2hlbiBhdmFpbGFibGVcbiAgY2hhaW5JZCA9IDUwNDI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwNDInO1xufVxuXG5jbGFzcyBUZW1wbyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1RlbXBvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5URU1QTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3JlLm1haW5uZXQudGVtcG8ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUubWFpbm5ldC50ZW1wby54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnVEVNUE8nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnVEVNUE8tVElQMjAnO1xufVxuXG5jbGFzcyBUZW1wb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZW1wbyBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5URU1QTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3JlLnRlc3RuZXQudGVtcG8ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudGVzdG5ldC50ZW1wby54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDI0MzE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyNDMxJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyNDMxJztcbn1cblxuY2xhc3MgQm9iYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JvYmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJPQkFFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYm9iYXNjYW4uY29tL2Jsb2NrY2hhaW4vdHJhbnNhY3Rpb25zJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYm9iYXNjYW4uY29tL2Jsb2NrY2hhaW4vYWNjb3VudHMnO1xuICBjaGFpbklkID0gMjg4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODgnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjg4LUVSQzIwJztcbn1cblxuY2xhc3MgQm9iYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCb2JhIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJPQkFFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5ib2Jhc2Nhbi5jb20vYmxvY2tjaGFpbi90cmFuc2FjdGlvbnMnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJvYmFzY2FuLmNvbS9ibG9ja2NoYWluL2FjY291bnRzJztcbiAgY2hhaW5JZCA9IDI4ODgyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODg4Mic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODg4Mi1FUkMyMCc7XG59XG5cbi8qKlxuICogQ29uc3RydWN0b3Igb3B0aW9ucyBmb3Ige0BsaW5rIER5bmFtaWNOZXR3b3JrfS5cbiAqIEFjY2VwdHMgc3RyaW5nLXR5cGVkIGB0eXBlYCBhbmQgYGZhbWlseWAgc28gQU1TIEpTT04gY2FuIGJlIHBhc3NlZCBkaXJlY3RseS5cbiAqIEZpZWxkcyBtaXJyb3IgQmFzZU5ldHdvcmsgKyBBY2NvdW50TmV0d29yayArIEV0aGVyZXVtTmV0d29yay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljTmV0d29ya09wdGlvbnMge1xuICAvLyBCYXNlTmV0d29ya1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgZmFtaWx5OiBzdHJpbmc7XG4gIGV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICAvLyBBY2NvdW50TmV0d29ya1xuICBhY2NvdW50RXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJsb2NrRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIC8vIEV0aGVyZXVtTmV0d29ya1xuICBjaGFpbklkPzogbnVtYmVyO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWMkZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgd2FsbGV0VjRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgd2FsbGV0VjRJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHdhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHdhbGxldFYyRm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25jcmV0ZSBuZXR3b3JrIGNsYXNzIGZvciBBTVMtZGlzY292ZXJlZCBjaGFpbnMgbm90IHlldCByZWdpc3RlcmVkIGluIGxvY2FsIHN0YXRpY3MuXG4gKiBBY2NlcHRzIHN0cmluZy10eXBlZCB0eXBlL2ZhbWlseSBhbmQgY2FzdHMgdG8gZW51bXMgaW50ZXJuYWxseSAoc2FmZSBzaW5jZSBib3RoIGFyZSBzdHJpbmcgZW51bXMpLlxuICogQ3VycmVudGx5IGNvdmVycyBCYXNlTmV0d29yayArIEFjY291bnROZXR3b3JrICsgRXRoZXJldW1OZXR3b3JrIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGNsYXNzIER5bmFtaWNOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogTmV0d29ya1R5cGU7XG4gIHB1YmxpYyByZWFkb25seSBmYW1pbHk6IENvaW5GYW1pbHk7XG4gIHB1YmxpYyByZWFkb25seSBleHBsb3JlclVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudEV4cGxvcmVyVXJsPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tFeHBsb3JlclVybD86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNoYWluSWQ/OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBiYXRjaGVyQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFYyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFY0RmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWNEltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWMkZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IER5bmFtaWNOZXR3b3JrT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5uYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSBhcyBOZXR3b3JrVHlwZTtcbiAgICB0aGlzLmZhbWlseSA9IG9wdGlvbnMuZmFtaWx5IGFzIENvaW5GYW1pbHk7XG4gICAgdGhpcy5leHBsb3JlclVybCA9IG9wdGlvbnMuZXhwbG9yZXJVcmw7XG4gICAgdGhpcy5hY2NvdW50RXhwbG9yZXJVcmwgPSBvcHRpb25zLmFjY291bnRFeHBsb3JlclVybDtcbiAgICB0aGlzLmJsb2NrRXhwbG9yZXJVcmwgPSBvcHRpb25zLmJsb2NrRXhwbG9yZXJVcmw7XG4gICAgdGhpcy5jaGFpbklkID0gb3B0aW9ucy5jaGFpbklkO1xuICAgIHRoaXMuYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9IG9wdGlvbnMuYmF0Y2hlckNvbnRyYWN0QWRkcmVzcztcbiAgICB0aGlzLmZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gb3B0aW9ucy5mb3J3YXJkZXJGYWN0b3J5QWRkcmVzcztcbiAgICB0aGlzLmZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9IG9wdGlvbnMuZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0RmFjdG9yeUFkZHJlc3MgPSBvcHRpb25zLndhbGxldEZhY3RvcnlBZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gb3B0aW9ucy53YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3M7XG4gICAgdGhpcy53YWxsZXRWMkZhY3RvcnlBZGRyZXNzID0gb3B0aW9ucy53YWxsZXRWMkZhY3RvcnlBZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0VjJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSBvcHRpb25zLndhbGxldFYySW1wbGVtZW50YXRpb25BZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0VjRGYWN0b3J5QWRkcmVzcyA9IG9wdGlvbnMud2FsbGV0VjRGYWN0b3J5QWRkcmVzcztcbiAgICB0aGlzLndhbGxldFY0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gb3B0aW9ucy53YWxsZXRWNEltcGxlbWVudGF0aW9uQWRkcmVzcztcbiAgICB0aGlzLndhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSBvcHRpb25zLndhbGxldFYyRm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M7XG4gICAgdGhpcy53YWxsZXRWMkZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9IG9wdGlvbnMud2FsbGV0VjJGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M7XG4gICAgdGhpcy53YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gb3B0aW9ucy53YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzO1xuICAgIHRoaXMud2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSBvcHRpb25zLndhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzO1xuICAgIHRoaXMubmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSBvcHRpb25zLm5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4O1xuICAgIHRoaXMudG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gb3B0aW9ucy50b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXg7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5ldHdvcmtzID0ge1xuICBtYWluOiB7XG4gICAgYWJzdHJhY3RldGg6IE9iamVjdC5mcmVlemUobmV3IEFic3RyYWN0RXRoKCkpLFxuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhKCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZCgpKSxcbiAgICBhcGVjaGFpbjogT2JqZWN0LmZyZWV6ZShuZXcgQXBlQ2hhaW4oKSksXG4gICAgYXB0OiBPYmplY3QuZnJlZXplKG5ldyBBcHQoKSksXG4gICAgYXJiaXRydW06IE9iamVjdC5mcmVlemUobmV3IEFyYml0cnVtKCkpLFxuICAgIGFyY3VzZGM6IE9iamVjdC5mcmVlemUobmV3IEFyY1VTREMoKSksXG4gICAgYXNpOiBPYmplY3QuZnJlZXplKG5ldyBBc2koKSksXG4gICAgYXRvbTogT2JqZWN0LmZyZWV6ZShuZXcgQXRvbSgpKSxcbiAgICBhdmFsYW5jaGVDOiBPYmplY3QuZnJlZXplKG5ldyBBdmFsYW5jaGVDKCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVAoKSksXG4gICAgYmFieTogT2JqZWN0LmZyZWV6ZShuZXcgQmFieSgpKSxcbiAgICBiYXNlY2hhaW46IE9iamVjdC5mcmVlemUobmV3IEJhc2VDaGFpbigpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luKCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGQoKSksXG4gICAgYml0Y29pblNWOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU1YoKSksXG4gICAgYmVyYTogT2JqZWN0LmZyZWV6ZShuZXcgQmVyYWNoYWluKCkpLFxuICAgIGJsZDogT2JqZWN0LmZyZWV6ZShuZXcgQmxkKCkpLFxuICAgIGJzYzogT2JqZWN0LmZyZWV6ZShuZXcgQmluYW5jZVNtYXJ0Q2hhaW4oKSksXG4gICAgY2FudG9uOiBPYmplY3QuZnJlZXplKG5ldyBDYW50b24oKSksXG4gICAgY2FzcGVyOiBPYmplY3QuZnJlZXplKG5ldyBDYXNwZXIoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2VsbygpKSxcbiAgICBjaGlsaXo6IE9iamVjdC5mcmVlemUobmV3IENoaWxpeigpKSxcbiAgICBjb2RleGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgQ29kZXhFdGgoKSksXG4gICAgY29yZWRhbzogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZWRhbygpKSxcbiAgICBjb3JldW06IE9iamVjdC5mcmVlemUobmV3IENvcmV1bSgpKSxcbiAgICBjcm9ub3M6IE9iamVjdC5mcmVlemUobmV3IENyb25vcygpKSxcbiAgICBkYXNoOiBPYmplY3QuZnJlZXplKG5ldyBEYXNoKCkpLFxuICAgIGRvZ2Vjb2luOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlY29pbigpKSxcbiAgICBkb2dlb3M6IE9iamVjdC5mcmVlemUobmV3IERvZ2VvcygpKSxcbiAgICBkb3Q6IE9iamVjdC5mcmVlemUobmV3IFBvbGthZG90QXNzZXRIdWIoKSksXG4gICAgZHlkeDogT2JqZWN0LmZyZWV6ZShuZXcgRHlkeCgpKSxcbiAgICBlQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgRUNhc2goKSksXG4gICAgZW9zOiBPYmplY3QuZnJlZXplKG5ldyBFb3MoKSksXG4gICAgZXRoZXJldW06IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtKCkpLFxuICAgIGV0aGVyZXVtMjogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW0yKCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpYzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1DbGFzc2ljKCkpLFxuICAgIGV0aGVyZXVtVzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1XKCkpLFxuICAgIGZpYXQ6IE9iamVjdC5mcmVlemUobmV3IEZpYXQoKSksXG4gICAgZmV0Y2hhaTogT2JqZWN0LmZyZWV6ZShuZXcgRmV0Y2hBaSgpKSxcbiAgICBmbG93OiBPYmplY3QuZnJlZXplKG5ldyBGbG93KCkpLFxuICAgIGdhc2V2bTogT2JqZWN0LmZyZWV6ZShuZXcgR2FzRXZtKCkpLFxuICAgIGZscjogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmUoKSksXG4gICAgZmxyUDogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmVQKCkpLFxuICAgIGZsdWVudGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgRmx1ZW50RVRIKCkpLFxuICAgIGg6IE9iamVjdC5mcmVlemUobmV3IEh1bWFuaXR5UHJvdG9jb2woKSksXG4gICAgaGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgSGFzaCgpKSxcbiAgICBob29kZXRoOiBPYmplY3QuZnJlZXplKG5ldyBIb29kZXRoKCkpLFxuICAgIGhlZGVyYTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhKCkpLFxuICAgIGhlZGVyYUVWTTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhRVZNKCkpLFxuICAgIGhlbWlldGg6IE9iamVjdC5mcmVlemUobmV3IEhlbWlFdGgoKSksXG4gICAgaW5rZXRoOiBPYmplY3QuZnJlZXplKG5ldyBJbmtFdGgoKSksXG4gICAgaHBwZXRoOiBPYmplY3QuZnJlZXplKG5ldyBIcHBldGgoKSksXG4gICAgcHJpdmlkaXVtZXRoOiBPYmplY3QuZnJlZXplKG5ldyBQcml2aWRpdW1FVEgoKSksXG4gICAgaWNwOiBPYmplY3QuZnJlZXplKG5ldyBJY3AoKSksXG4gICAgaXA6IE9iamVjdC5mcmVlemUobmV3IElQKCkpLFxuICAgIGluaXRpYTogT2JqZWN0LmZyZWV6ZShuZXcgSW5pdGlhKCkpLFxuICAgIGlvdGE6IE9iamVjdC5mcmVlemUobmV3IElvdGEoKSksXG4gICAgaW5qZWN0aXZlOiBPYmplY3QuZnJlZXplKG5ldyBJbmplY3RpdmUoKSksXG4gICAgaXJ5czogT2JqZWN0LmZyZWV6ZShuZXcgSXJ5cygpKSxcbiAgICBpc2xtOiBPYmplY3QuZnJlZXplKG5ldyBJc2xtKCkpLFxuICAgIGpvdmF5ZXRoOiBPYmplY3QuZnJlZXplKG5ldyBKb3ZheUVUSCgpKSxcbiAgICBrYWlhOiBPYmplY3QuZnJlZXplKG5ldyBLYWlhKCkpLFxuICAgIGthc3BhOiBPYmplY3QuZnJlZXplKG5ldyBLYXNwYU1haW5uZXQoKSksXG4gICAga2F0YW5hZXRoOiBPYmplY3QuZnJlZXplKG5ldyBLYXRhbmFFdGgoKSksXG4gICAga2F2YWNvc21vczogT2JqZWN0LmZyZWV6ZShuZXcgS2F2YUNvc21vcygpKSxcbiAgICBrYXZhZXZtOiBPYmplY3QuZnJlZXplKG5ldyBLYXZhRVZNKCkpLFxuICAgIGxuYnRjOiBPYmplY3QuZnJlZXplKG5ldyBMaWdodG5pbmdCaXRjb2luKCkpLFxuICAgIGxpdGVjb2luOiBPYmplY3QuZnJlZXplKG5ldyBMaXRlY29pbigpKSxcbiAgICBtZWdhZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNZWdhRVRIKCkpLFxuICAgIG1vbjogT2JqZWN0LmZyZWV6ZShuZXcgTW9uYWQoKSksXG4gICAgbWFudGxlOiBPYmplY3QuZnJlZXplKG5ldyBNYW50bGUoKSksXG4gICAgbWFudHJhOiBPYmplY3QuZnJlZXplKG5ldyBNYW50cmEoKSksXG4gICAgcGx1bWU6IE9iamVjdC5mcmVlemUobmV3IFBsdW1lKCkpLFxuICAgIHBvbHlnb246IE9iamVjdC5mcmVlemUobmV3IFBvbHlnb24oKSksXG4gICAgcG9seXg6IE9iamVjdC5mcmVlemUobmV3IFBvbHltZXNoKCkpLFxuICAgIHBocnM6IE9iamVjdC5mcmVlemUobmV3IFBoYXJvcygpKSxcbiAgICBjdGM6IE9iamVjdC5mcmVlemUobmV3IENyZWRpdGNvaW4oKSksXG4gICAgaHlwZWV2bTogT2JqZWN0LmZyZWV6ZShuZXcgSHlwZUVWTSgpKSxcbiAgICBoeXBlcmxpcXVpZDogT2JqZWN0LmZyZWV6ZShuZXcgSHlwZXJsaXF1aWQoKSksXG4gICAgbGluZWFldGg6IE9iamVjdC5mcmVlemUobmV3IExpbmVhRVRIKCkpLFxuICAgIG9hczogT2JqZWN0LmZyZWV6ZShuZXcgT2FzKCkpLFxuICAgIG9nOiBPYmplY3QuZnJlZXplKG5ldyBPZygpKSxcbiAgICBvZmM6IE9iamVjdC5mcmVlemUobmV3IE9mYygpKSxcbiAgICBva2J4bGF5ZXI6IE9iamVjdC5mcmVlemUobmV3IFhsYXllcigpKSxcbiAgICBvcGJuYjogT2JqZWN0LmZyZWV6ZShuZXcgT3BCTkIoKSksXG4gICAgZmFudG9tOiBPYmplY3QuZnJlZXplKG5ldyBGYW50b20oKSksXG4gICAgbW9ycGg6IE9iamVjdC5mcmVlemUobmV3IE1vcnBoKCkpLFxuICAgIG1vcnBoZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNb3JwaEVUSCgpKSxcbiAgICBvcHRpbWlzbTogT2JqZWN0LmZyZWV6ZShuZXcgT3B0aW1pc20oKSksXG4gICAgb3NtbzogT2JqZWN0LmZyZWV6ZShuZXcgT3NtbygpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjKCkpLFxuICAgIHJ1bmU6IE9iamVjdC5mcmVlemUobmV3IFJ1bmUoKSksXG4gICAgc3RlbGxhcjogT2JqZWN0LmZyZWV6ZShuZXcgU3RlbGxhcigpKSxcbiAgICBzY3JvbGxldGg6IE9iamVjdC5mcmVlemUobmV3IFNjcm9sbEV0aCgpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaSgpKSxcbiAgICBzZWlldm06IE9iamVjdC5mcmVlemUobmV3IFNlaUV2bSgpKSxcbiAgICBzZ2I6IE9iamVjdC5mcmVlemUobmV3IFNvbmdiaXJkKCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sKCkpLFxuICAgIHNvbmljOiBPYmplY3QuZnJlZXplKG5ldyBTb25pYygpKSxcbiAgICBzdGFya25ldDogT2JqZWN0LmZyZWV6ZShuZXcgU3RhcmtuZXRNYWlubmV0KCkpLFxuICAgIHN1aTogT2JqZWN0LmZyZWV6ZShuZXcgU3VpKCkpLFxuICAgIG5lYXI6IE9iamVjdC5mcmVlemUobmV3IE5lYXIoKSksXG4gICAgc3R4OiBPYmplY3QuZnJlZXplKG5ldyBTdHgoKSksXG4gICAgc29taTogT2JqZWN0LmZyZWV6ZShuZXcgU29taSgpKSxcbiAgICBzb25laXVtOiBPYmplY3QuZnJlZXplKG5ldyBTb25laXVtKCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0QoKSksXG4gICAgdGFvOiBPYmplY3QuZnJlZXplKG5ldyBCaXR0ZW5zb3IoKSksXG4gICAgdGVtcG86IE9iamVjdC5mcmVlemUobmV3IFRlbXBvKCkpLFxuICAgIHRpYTogT2JqZWN0LmZyZWV6ZShuZXcgVGlhKCkpLFxuICAgIHRvbjogT2JqZWN0LmZyZWV6ZShuZXcgVG9uKCkpLFxuICAgIHRyeDogT2JqZWN0LmZyZWV6ZShuZXcgVHJ4KCkpLFxuICAgIHVzZHQwOiBPYmplY3QuZnJlZXplKG5ldyBVc2R0MCgpKSxcbiAgICB2ZXQ6IE9iamVjdC5mcmVlemUobmV3IFZldCgpKSxcbiAgICB3ZW1peDogT2JqZWN0LmZyZWV6ZShuZXcgV2VtaXgoKSksXG4gICAgd29ybGQ6IE9iamVjdC5mcmVlemUobmV3IFdvcmxkKCkpLFxuICAgIHhkYzogT2JqZWN0LmZyZWV6ZShuZXcgWGRjKCkpLFxuICAgIHhwbDogT2JqZWN0LmZyZWV6ZShuZXcgUGxhc21hKCkpLFxuICAgIHhycDogT2JqZWN0LmZyZWV6ZShuZXcgWHJwKCkpLFxuICAgIHh0ejogT2JqZWN0LmZyZWV6ZShuZXcgWHR6KCkpLFxuICAgIHh0emV2bTogT2JqZWN0LmZyZWV6ZShuZXcgWHR6RXZtKCkpLFxuICAgIHpDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBaQ2FzaCgpKSxcbiAgICB6ZXRhOiBPYmplY3QuZnJlZXplKG5ldyBaZXRhKCkpLFxuICAgIHprU3luYzogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jKCkpLFxuICAgIHprU3luY0VyYTogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jRXJhKCkpLFxuICAgIHVuaWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgVW5pZXRoKCkpLFxuICAgIGJvYmE6IE9iamVjdC5mcmVlemUobmV3IEJvYmEoKSksXG4gIH0sXG4gIHRlc3Q6IHtcbiAgICBhYnN0cmFjdGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgQWJzdHJhY3RFdGhUZXN0bmV0KCkpLFxuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhVGVzdG5ldCgpKSxcbiAgICBhbGdvcmFuZDogT2JqZWN0LmZyZWV6ZShuZXcgQWxnb3JhbmRUZXN0bmV0KCkpLFxuICAgIGFwZWNoYWluOiBPYmplY3QuZnJlZXplKG5ldyBBcGVDaGFpblRlc3RuZXQoKSksXG4gICAgYXB0OiBPYmplY3QuZnJlZXplKG5ldyBBcHRUZXN0bmV0KCkpLFxuICAgIGFyYml0cnVtOiBPYmplY3QuZnJlZXplKG5ldyBBcmJpdHJ1bVRlc3RuZXQoKSksXG4gICAgYXJjdXNkYzogT2JqZWN0LmZyZWV6ZShuZXcgQXJjVVNEQ1Rlc3RuZXQoKSksXG4gICAgYXNpOiBPYmplY3QuZnJlZXplKG5ldyBBc2lUZXN0bmV0KCkpLFxuICAgIGF0b206IE9iamVjdC5mcmVlemUobmV3IEF0b21UZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZUM6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZUNUZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVBUZXN0bmV0KCkpLFxuICAgIGJhYnk6IE9iamVjdC5mcmVlemUobmV3IEJhYnlUZXN0bmV0KCkpLFxuICAgIGJhc2VjaGFpbjogT2JqZWN0LmZyZWV6ZShuZXcgQmFzZUNoYWluVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luUHVibGljU2lnbmV0OiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luUHVibGljU2lnbmV0KCkpLFxuICAgIGJpdGNvaW5UZXN0bmV0NDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblRlc3RuZXQ0KCkpLFxuICAgIGJpdGNvaW5CaXRHb1NpZ25ldDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkJpdEdvU2lnbmV0KCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaFRlc3RuZXQoKSksXG4gICAgYml0Y29pbkdvbGQ6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5Hb2xkVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luU1Y6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5TVlRlc3RuZXQoKSksXG4gICAgYmVyYTogT2JqZWN0LmZyZWV6ZShuZXcgQmVyYWNoYWluVGVzdG5ldCgpKSxcbiAgICBibGQ6IE9iamVjdC5mcmVlemUobmV3IEJsZFRlc3RuZXQoKSksXG4gICAgYnNjOiBPYmplY3QuZnJlZXplKG5ldyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQoKSksXG4gICAgY2FudG9uOiBPYmplY3QuZnJlZXplKG5ldyBDYW50b25UZXN0bmV0KCkpLFxuICAgIGNhc3BlcjogT2JqZWN0LmZyZWV6ZShuZXcgQ2FzcGVyVGVzdG5ldCgpKSxcbiAgICBjZWxvOiBPYmplY3QuZnJlZXplKG5ldyBDZWxvVGVzdG5ldCgpKSxcbiAgICBjaGlsaXo6IE9iamVjdC5mcmVlemUobmV3IENoaWxpelRlc3RuZXQoKSksXG4gICAgY29kZXhldGg6IE9iamVjdC5mcmVlemUobmV3IENvZGV4RXRoVGVzdG5ldCgpKSxcbiAgICBjb3JlZGFvOiBPYmplY3QuZnJlZXplKG5ldyBDb3JlZGFvVGVzdG5ldCgpKSxcbiAgICBjcm9ub3M6IE9iamVjdC5mcmVlemUobmV3IENyb25vc1Rlc3RuZXQoKSksXG4gICAgZGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgRGFzaFRlc3RuZXQoKSksXG4gICAgZG9nZWNvaW46IE9iamVjdC5mcmVlemUobmV3IERvZ2Vjb2luVGVzdG5ldCgpKSxcbiAgICBkb2dlb3M6IE9iamVjdC5mcmVlemUobmV3IERvZ2Vvc1Rlc3RuZXQoKSksXG4gICAgZG90OiBPYmplY3QuZnJlZXplKG5ldyBXZXN0ZW5kQXNzZXRIdWIoKSksXG4gICAgZHlkeDogT2JqZWN0LmZyZWV6ZShuZXcgRHlkeFRlc3RuZXQoKSksXG4gICAgZUNhc2g6IE9iamVjdC5mcmVlemUobmV3IEVDYXNoVGVzdG5ldCgpKSxcbiAgICBlb3M6IE9iamVjdC5mcmVlemUobmV3IEVvc1Rlc3RuZXQoKSksXG4gICAgZmlhdDogT2JqZWN0LmZyZWV6ZShuZXcgRmlhdFRlc3RuZXQoKSksXG4gICAgZmV0Y2hhaTogT2JqZWN0LmZyZWV6ZShuZXcgRmV0Y2hBaVRlc3RuZXQoKSksXG4gICAgZmxvdzogT2JqZWN0LmZyZWV6ZShuZXcgRmxvd1Rlc3RuZXQoKSksXG4gICAgdGdhc2V2bTogT2JqZWN0LmZyZWV6ZShuZXcgR2FzRXZtVGVzdG5ldCgpKSxcbiAgICBmbHI6IE9iamVjdC5mcmVlemUobmV3IEZsYXJlVGVzdG5ldCgpKSxcbiAgICBmbHJQOiBPYmplY3QuZnJlZXplKG5ldyBGbGFyZVBUZXN0bmV0KCkpLFxuICAgIGZsdWVudGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgRmx1ZW50RVRIVGVzdG5ldCgpKSxcbiAgICBoOiBPYmplY3QuZnJlZXplKG5ldyBIdW1hbml0eVByb3RvY29sVGVzdG5ldCgpKSxcbiAgICBtb246IE9iamVjdC5mcmVlemUobmV3IE1vbmFkVGVzdG5ldCgpKSxcbiAgICBtZWdhZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNZWdhRVRIVGVzdG5ldCgpKSxcbiAgICBweXJtb250OiBPYmplY3QuZnJlZXplKG5ldyBQeXJtb250KCkpLFxuICAgIHBsdW1lOiBPYmplY3QuZnJlZXplKG5ldyBQbHVtZVRlc3RuZXQoKSksXG4gICAgZXRoZXJldW1DbGFzc2ljVGVzdG5ldDogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1DbGFzc2ljVGVzdG5ldCgpKSxcbiAgICBoYXNoOiBPYmplY3QuZnJlZXplKG5ldyBIYXNoVGVzdG5ldCgpKSxcbiAgICBoZWRlcmE6IE9iamVjdC5mcmVlemUobmV3IEhlZGVyYVRlc3RuZXQoKSksXG4gICAgaG9vZGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgSG9vZGV0aFRlc3RuZXQoKSksXG4gICAgaHBwZXRoOiBPYmplY3QuZnJlZXplKG5ldyBIcHBldGhUZXN0bmV0KCkpLFxuICAgIHByaXZpZGl1bWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgUHJpdmlkaXVtRVRIVGVzdG5ldCgpKSxcbiAgICBoZWRlcmFFVk06IE9iamVjdC5mcmVlemUobmV3IEhlZGVyYUVWTVRlc3RuZXQoKSksXG4gICAgaGVtaWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgSGVtaUV0aFRlc3RuZXQoKSksXG4gICAgaW5rZXRoOiBPYmplY3QuZnJlZXplKG5ldyBJbmtFdGhUZXN0bmV0KCkpLFxuICAgIGljcDogT2JqZWN0LmZyZWV6ZShuZXcgSWNwVGVzdG5ldCgpKSxcbiAgICBpcDogT2JqZWN0LmZyZWV6ZShuZXcgSVBUZXN0bmV0KCkpLFxuICAgIGluaXRpYTogT2JqZWN0LmZyZWV6ZShuZXcgSW5pdGlhVGVzdG5ldCgpKSxcbiAgICBpbmplY3RpdmU6IE9iamVjdC5mcmVlemUobmV3IEluamVjdGl2ZVRlc3RuZXQoKSksXG4gICAgaW90YTogT2JqZWN0LmZyZWV6ZShuZXcgSW90YVRlc3RuZXQoKSksXG4gICAgaXJ5czogT2JqZWN0LmZyZWV6ZShuZXcgSXJ5c1Rlc3RuZXQoKSksXG4gICAgaXNsbTogT2JqZWN0LmZyZWV6ZShuZXcgSXNsbVRlc3RuZXQoKSksXG4gICAgam92YXlldGg6IE9iamVjdC5mcmVlemUobmV3IEpvdmF5RVRIVGVzdG5ldCgpKSxcbiAgICBrYXNwYTogT2JqZWN0LmZyZWV6ZShuZXcgS2FzcGFUZXN0bmV0KCkpLFxuICAgIGthdGFuYWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgS2F0YW5hRXRoVGVzdG5ldCgpKSxcbiAgICBrYXZhY29zbW9zOiBPYmplY3QuZnJlZXplKG5ldyBLYXZhQ29zbW9zVGVzdG5ldCgpKSxcbiAgICBrYXZhZXZtOiBPYmplY3QuZnJlZXplKG5ldyBLYXZhRVZNVGVzdG5ldCgpKSxcbiAgICBrb3ZhbjogT2JqZWN0LmZyZWV6ZShuZXcgS292YW4oKSksXG4gICAgZ29lcmxpOiBPYmplY3QuZnJlZXplKG5ldyBHb2VybGkoKSksXG4gICAgaG9sZXNreTogT2JqZWN0LmZyZWV6ZShuZXcgSG9sZXNreSgpKSxcbiAgICBob29kaTogT2JqZWN0LmZyZWV6ZShuZXcgSG9vZGkoKSksXG4gICAgbG5idGM6IE9iamVjdC5mcmVlemUobmV3IExpZ2h0bmluZ0JpdGNvaW5UZXN0bmV0KCkpLFxuICAgIGxpdGVjb2luOiBPYmplY3QuZnJlZXplKG5ldyBMaXRlY29pblRlc3RuZXQoKSksXG4gICAgbWFudGxlOiBPYmplY3QuZnJlZXplKG5ldyBNYW50bGVUZXN0bmV0KCkpLFxuICAgIG1hbnRyYTogT2JqZWN0LmZyZWV6ZShuZXcgTWFudHJhVGVzdG5ldCgpKSxcbiAgICBwb2x5Z29uOiBPYmplY3QuZnJlZXplKG5ldyBQb2x5Z29uVGVzdG5ldCgpKSxcbiAgICBwb2x5eDogT2JqZWN0LmZyZWV6ZShuZXcgUG9seW1lc2hUZXN0bmV0KCkpLFxuICAgIHBocnM6IE9iamVjdC5mcmVlemUobmV3IFBoYXJvc1Rlc3RuZXQoKSksXG4gICAgY3RjOiBPYmplY3QuZnJlZXplKG5ldyBDcmVkaXRjb2luVGVzdG5ldCgpKSxcbiAgICBoeXBlZXZtOiBPYmplY3QuZnJlZXplKG5ldyBIeXBlRVZNVGVzdG5ldCgpKSxcbiAgICBoeXBlcmxpcXVpZDogT2JqZWN0LmZyZWV6ZShuZXcgSHlwZXJsaXF1aWRUZXN0bmV0KCkpLFxuICAgIGxpbmVhZXRoOiBPYmplY3QuZnJlZXplKG5ldyBMaW5lYUVUSFRlc3RuZXQoKSksXG4gICAgb2FzOiBPYmplY3QuZnJlZXplKG5ldyBPYXNUZXN0bmV0KCkpLFxuICAgIG9nOiBPYmplY3QuZnJlZXplKG5ldyBPZ1Rlc3RuZXQoKSksXG4gICAgb2ZjOiBPYmplY3QuZnJlZXplKG5ldyBPZmNUZXN0bmV0KCkpLFxuICAgIG9rYnhsYXllcjogT2JqZWN0LmZyZWV6ZShuZXcgWGxheWVyVGVzdG5ldCgpKSxcbiAgICBvcGJuYjogT2JqZWN0LmZyZWV6ZShuZXcgT3BCTkJUZXN0bmV0KCkpLFxuICAgIGZhbnRvbTogT2JqZWN0LmZyZWV6ZShuZXcgRmFudG9tVGVzdG5ldCgpKSxcbiAgICBtb3JwaDogT2JqZWN0LmZyZWV6ZShuZXcgTW9ycGhUZXN0bmV0KCkpLFxuICAgIG1vcnBoZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNb3JwaEVUSFRlc3RuZXQoKSksXG4gICAgb3B0aW1pc206IE9iamVjdC5mcmVlemUobmV3IE9wdGltaXNtVGVzdG5ldCgpKSxcbiAgICBvc21vOiBPYmplY3QuZnJlZXplKG5ldyBPc21vVGVzdG5ldCgpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjVGVzdG5ldCgpKSxcbiAgICBydW5lOiBPYmplY3QuZnJlZXplKG5ldyBSdW5lVGVzdE5ldCgpKSxcbiAgICBzZ2I6IE9iamVjdC5mcmVlemUobmV3IFNvbmdiaXJkVGVzdG5ldCgpKSxcbiAgICBzdGVsbGFyOiBPYmplY3QuZnJlZXplKG5ldyBTdGVsbGFyVGVzdG5ldCgpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaVRlc3RuZXQoKSksXG4gICAgc2VpZXZtOiBPYmplY3QuZnJlZXplKG5ldyBTZWlFdm1UZXN0bmV0KCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sVGVzdG5ldCgpKSxcbiAgICBzdGFya25ldDogT2JqZWN0LmZyZWV6ZShuZXcgU3RhcmtuZXRUZXN0bmV0KCkpLFxuICAgIHN1aTogT2JqZWN0LmZyZWV6ZShuZXcgU3VpVGVzdG5ldCgpKSxcbiAgICBuZWFyOiBPYmplY3QuZnJlZXplKG5ldyBOZWFyVGVzdG5ldCgpKSxcbiAgICBzdHg6IE9iamVjdC5mcmVlemUobmV3IFN0eFRlc3RuZXQoKSksXG4gICAgc3R0OiBPYmplY3QuZnJlZXplKG5ldyBTb21uaWFUZXN0bmV0KCkpLFxuICAgIHNjcm9sbGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgU2Nyb2xsRXRoVGVzdG5ldCgpKSxcbiAgICBzb25laXVtOiBPYmplY3QuZnJlZXplKG5ldyBTb25laXVtVGVzdG5ldCgpKSxcbiAgICBzb25pYzogT2JqZWN0LmZyZWV6ZShuZXcgU29uaWNUZXN0bmV0KCkpLFxuICAgIGthaWE6IE9iamVjdC5mcmVlemUobmV3IEthaWFUZXN0bmV0KCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0RUZXN0bmV0KCkpLFxuICAgIGNvcmV1bTogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZXVtVGVzdG5ldCgpKSxcbiAgICB0YW86IE9iamVjdC5mcmVlemUobmV3IEJpdHRlbnNvclRlc3RuZXQoKSksXG4gICAgdGVtcG86IE9iamVjdC5mcmVlemUobmV3IFRlbXBvVGVzdG5ldCgpKSxcbiAgICB0aWE6IE9iamVjdC5mcmVlemUobmV3IFRpYVRlc3RuZXQoKSksXG4gICAgdG9uOiBPYmplY3QuZnJlZXplKG5ldyBUb25UZXN0bmV0KCkpLFxuICAgIHRyeDogT2JqZWN0LmZyZWV6ZShuZXcgVHJ4VGVzdG5ldCgpKSxcbiAgICB1c2R0MDogT2JqZWN0LmZyZWV6ZShuZXcgVXNkdDBUZXN0bmV0KCkpLFxuICAgIHZldDogT2JqZWN0LmZyZWV6ZShuZXcgVmV0VGVzdG5ldCgpKSxcbiAgICB3ZW1peDogT2JqZWN0LmZyZWV6ZShuZXcgV2VtaXhUZXN0bmV0KCkpLFxuICAgIHdvcmxkOiBPYmplY3QuZnJlZXplKG5ldyBXb3JsZFRlc3RuZXQoKSksXG4gICAgeGRjOiBPYmplY3QuZnJlZXplKG5ldyBYZGNUZXN0bmV0KCkpLFxuICAgIHhwbDogT2JqZWN0LmZyZWV6ZShuZXcgUGxhc21hVGVzdG5ldCgpKSxcbiAgICB4cnA6IE9iamVjdC5mcmVlemUobmV3IFhycFRlc3RuZXQoKSksXG4gICAgeHR6OiBPYmplY3QuZnJlZXplKG5ldyBYdHpUZXN0bmV0KCkpLFxuICAgIHh0emV2bTogT2JqZWN0LmZyZWV6ZShuZXcgWHR6RXZtVGVzdG5ldCgpKSxcbiAgICB6Q2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgWkNhc2hUZXN0bmV0KCkpLFxuICAgIHpldGE6IE9iamVjdC5mcmVlemUobmV3IFpldGFUZXN0bmV0KCkpLFxuICAgIHprU3luYzogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jVGVzdG5ldCgpKSxcbiAgICB6a1N5bmNFcmE6IE9iamVjdC5mcmVlemUobmV3IFprU3luY0VyYVRlc3RuZXQoKSksXG4gICAgdW5pZXRoOiBPYmplY3QuZnJlZXplKG5ldyBVbmlldGhUZXN0bmV0KCkpLFxuICAgIGJvYmE6IE9iamVjdC5mcmVlemUobmV3IEJvYmFUZXN0bmV0KCkpLFxuICB9LFxufTtcblxuY29uc3QgbmV0d29ya0J5TmFtZTogTWFwPHN0cmluZywgQmFzZU5ldHdvcms+ID0gbmV3IE1hcChcbiAgT2JqZWN0LnZhbHVlcyhOZXR3b3JrcykuZmxhdE1hcCgoY2F0ZWdvcnkpID0+IE9iamVjdC52YWx1ZXMoY2F0ZWdvcnkpLm1hcCgobmV0d29yaykgPT4gW25ldHdvcmsubmFtZSwgbmV0d29ya10pKVxuKTtcblxuLyoqXG4gKiBMb29rIHVwIGEgcmVnaXN0ZXJlZCBuZXR3b3JrIGJ5IGl0cyBkaXNwbGF5IG5hbWUgKGUuZy4gXCJFdGhlcmV1bVwiLCBcIkJpdGNvaW5cIikuXG4gKiBSZXR1cm5zIHVuZGVmaW5lZCBmb3IgbmFtZXMgbm90IHJlZ2lzdGVyZWQgaW4gbG9jYWwgc3RhdGljcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtCeU5hbWUobmFtZTogc3RyaW5nKTogQmFzZU5ldHdvcmsgfCB1bmRlZmluZWQge1xuICByZXR1cm4gbmV0d29ya0J5TmFtZS5nZXQobmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3Jrc01hcCgpOiBNYXA8c3RyaW5nLCBCYXNlTmV0d29yaz4ge1xuICByZXR1cm4gbmV3IE1hcChuZXR3b3JrQnlOYW1lKTtcbn1cblxuLyoqXG4gKiBEeW5hbWljYWxseSByZWdpc3RlciBhIG5ldyBuZXR3b3JrIGluIHRoZSBsb29rdXAgbWFwLlxuICogVGhyb3dzIGlmIGEgbmV0d29yayB3aXRoIHRoZSBzYW1lIG5hbWUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJOZXR3b3JrKG5ldHdvcms6IEJhc2VOZXR3b3JrKTogdm9pZCB7XG4gIGlmIChuZXR3b3JrQnlOYW1lLmhhcyhuZXR3b3JrLm5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBOZXR3b3JrICcke25ldHdvcmsubmFtZX0nIGlzIGFscmVhZHkgcmVnaXN0ZXJlZGApO1xuICB9XG4gIG5ldHdvcmtCeU5hbWUuc2V0KG5ldHdvcmsubmFtZSwgbmV0d29yayk7XG59XG5cbi8qKlxuICogTG9vayB1cCBhIG5ldHdvcmsgYnkgaXRzIGRpc3BsYXkgbmFtZSBvciBKU09OIHJlcHJlc2VudGF0aW9uLlxuICpcbiAqIFJlc29sdXRpb24gb3JkZXI6XG4gKiAgIDEuIElmIGBuZXR3b3JrYCBpcyBhIEpTT04gc3RyaW5nIHJlcHJlc2VudGluZyBhIER5bmFtaWNOZXR3b3JrT3B0aW9ucyBvYmplY3RcbiAqICAgICAgKG11c3QgaGF2ZSBgbmFtZWAsIGB0eXBlYCwgYW5kIGBmYW1pbHlgIGZpZWxkcyksIGNvbnN0cnVjdCBhbmRcbiAqICAgICAgcmV0dXJuIGEgbmV3IER5bmFtaWNOZXR3b3JrIGluc3RhbmNlLlxuICogICAyLiBMb2NhbCBzdGF0aWNzIGNhY2hlIHZpYSBnZXROZXR3b3JrQnlOYW1lKCkuXG4gKlxuICogQHBhcmFtIG5ldHdvcmsgLSBBIG5ldHdvcmsgZGlzcGxheSBuYW1lIChlLmcuIFwiYml0Y29pblwiKSBvciBhIEpTT04tZW5jb2RlZFxuICogICBEeW5hbWljTmV0d29ya09wdGlvbnMgb2JqZWN0LlxuICogQHJldHVybnMgVGhlIG1hdGNoaW5nIEJhc2VOZXR3b3JrIChvciBEeW5hbWljTmV0d29yaykgaW5zdGFuY2UuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIG5ldHdvcmsgaXMgbm90IGZvdW5kIGluIGxvY2FsIHN0YXRpY3MgYW5kIHRoZSBpbnB1dFxuICogICBpcyBub3QgYSB2YWxpZCBEeW5hbWljTmV0d29ya09wdGlvbnMgSlNPTiBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXR3b3JrKG5ldHdvcms6IHN0cmluZyk6IEJhc2VOZXR3b3JrIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIGEgSlNPTi1lbmNvZGVkIER5bmFtaWNOZXR3b3JrT3B0aW9ucyBvYmplY3QuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShuZXR3b3JrKTtcbiAgICBpZiAoXG4gICAgICBwYXJzZWQgIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiBwYXJzZWQgPT09ICdvYmplY3QnICYmXG4gICAgICB0eXBlb2YgcGFyc2VkLm5hbWUgPT09ICdzdHJpbmcnICYmXG4gICAgICB0eXBlb2YgcGFyc2VkLnR5cGUgPT09ICdzdHJpbmcnICYmXG4gICAgICB0eXBlb2YgcGFyc2VkLmZhbWlseSA9PT0gJ3N0cmluZydcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgRHluYW1pY05ldHdvcmsocGFyc2VkIGFzIER5bmFtaWNOZXR3b3JrT3B0aW9ucyk7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICAvLyBOb3QgdmFsaWQgSlNPTiDigJQgZmFsbCB0aHJvdWdoIHRvIGxvY2FsIGxvb2t1cCBieSBuYW1lLlxuICB9XG5cbiAgY29uc3QgbmV0d29ya09iaiA9IGdldE5ldHdvcmtCeU5hbWUobmV0d29yayk7XG4gIGlmICghbmV0d29ya09iaikge1xuICAgIHRocm93IG5ldyBFcnJvcihgTmV0d29yayAke25ldHdvcmt9IG5vdCBmb3VuZGApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrT2JqO1xufVxuIl19