@witnet/sdk 1.1.5 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env_witnet +13 -1
- package/dist/package.json +41 -24
- package/dist/src/bin/helpers.d.ts +59 -49
- package/dist/src/bin/helpers.d.ts.map +1 -1
- package/dist/src/bin/helpers.js +228 -229
- package/dist/src/index.d.ts +3 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -47
- package/dist/src/lib/crypto/account.d.ts +3 -3
- package/dist/src/lib/crypto/account.d.ts.map +1 -1
- package/dist/src/lib/crypto/account.js +31 -25
- package/dist/src/lib/crypto/coinbase.d.ts +4 -4
- package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
- package/dist/src/lib/crypto/coinbase.js +8 -13
- package/dist/src/lib/crypto/index.d.ts +7 -7
- package/dist/src/lib/crypto/index.d.ts.map +1 -1
- package/dist/src/lib/crypto/index.js +7 -30
- package/dist/src/lib/crypto/interfaces.d.ts +5 -5
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
- package/dist/src/lib/crypto/interfaces.js +2 -3
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +5 -5
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +98 -85
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts +3 -4
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/StakePayload.js +81 -71
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts +4 -5
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +36 -43
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts +3 -4
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +46 -48
- package/dist/src/lib/crypto/payloads.d.ts +5 -5
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads.js +44 -45
- package/dist/src/lib/crypto/signer.d.ts +3 -3
- package/dist/src/lib/crypto/signer.d.ts.map +1 -1
- package/dist/src/lib/crypto/signer.js +45 -88
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts +6 -6
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +6 -10
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts +5 -5
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +7 -11
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts +6 -7
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +9 -13
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts +5 -5
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +6 -10
- package/dist/src/lib/crypto/transmitters.d.ts +6 -6
- package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters.js +89 -76
- package/dist/src/lib/crypto/types.d.ts +1 -2
- package/dist/src/lib/crypto/types.d.ts.map +1 -1
- package/dist/src/lib/crypto/types.js +71 -67
- package/dist/src/lib/crypto/utils.d.ts +5 -5
- package/dist/src/lib/crypto/utils.d.ts.map +1 -1
- package/dist/src/lib/crypto/utils.js +48 -66
- package/dist/src/lib/crypto/wallet.d.ts +3 -3
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
- package/dist/src/lib/crypto/wallet.js +72 -89
- package/dist/src/lib/index.d.ts +5 -4
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -44
- package/dist/src/lib/radon/ccdr/eth.d.ts +1 -1
- package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +95 -83
- package/dist/src/lib/radon/ccdr/index.d.ts +2 -2
- package/dist/src/lib/radon/ccdr/index.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/index.js +3 -39
- package/dist/src/lib/radon/ccdr/wit.d.ts +2 -2
- package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +17 -19
- package/dist/src/lib/radon/filters.d.ts.map +1 -1
- package/dist/src/lib/radon/filters.js +23 -19
- package/dist/src/lib/radon/index.d.ts +10 -11
- package/dist/src/lib/radon/index.d.ts.map +1 -1
- package/dist/src/lib/radon/index.js +205 -187
- package/dist/src/lib/radon/reducers.d.ts +2 -2
- package/dist/src/lib/radon/reducers.d.ts.map +1 -1
- package/dist/src/lib/radon/reducers.js +48 -34
- package/dist/src/lib/radon/types.d.ts +2 -2
- package/dist/src/lib/radon/types.d.ts.map +1 -1
- package/dist/src/lib/radon/types.js +80 -110
- package/dist/src/lib/radon/utils.d.ts +3 -3
- package/dist/src/lib/radon/utils.d.ts.map +1 -1
- package/dist/src/lib/radon/utils.js +49 -52
- package/dist/src/lib/rest/kermit.d.ts +20 -0
- package/dist/src/lib/rest/kermit.d.ts.map +1 -0
- package/dist/src/lib/rest/kermit.js +68 -0
- package/dist/src/lib/rest/types.d.ts +5 -0
- package/dist/src/lib/rest/types.d.ts.map +1 -0
- package/dist/src/lib/rest/types.js +2 -0
- package/dist/src/lib/rpc/index.d.ts +2 -2
- package/dist/src/lib/rpc/index.d.ts.map +1 -1
- package/dist/src/lib/rpc/index.js +3 -19
- package/dist/src/lib/rpc/nodes.d.ts +13 -13
- package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
- package/dist/src/lib/rpc/nodes.js +69 -98
- package/dist/src/lib/rpc/provider.d.ts +4 -4
- package/dist/src/lib/rpc/provider.d.ts.map +1 -1
- package/dist/src/lib/rpc/provider.js +106 -122
- package/dist/src/lib/rpc/types.d.ts +2 -2
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +13 -16
- package/dist/src/lib/types.d.ts +5 -4
- package/dist/src/lib/types.d.ts.map +1 -1
- package/dist/src/lib/types.js +3 -9
- package/dist/src/lib/utils.d.ts +5 -5
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +40 -99
- package/dist/witnet/assets/index.cjs +6 -0
- package/dist/witnet/assets/index.d.cts +29 -0
- package/dist/witnet/assets/index.d.cts.map +1 -0
- package/dist/witnet/assets/modals/index.cjs +9 -0
- package/dist/witnet/assets/modals/index.d.cts +16 -0
- package/dist/witnet/assets/modals/index.d.cts.map +1 -0
- package/dist/witnet/assets/modals/web3/eth.cjs +23 -0
- package/dist/witnet/assets/modals/web3/eth.d.cts +4 -0
- package/dist/witnet/assets/modals/web3/eth.d.cts.map +1 -0
- package/dist/witnet/assets/modals/web3/ipfs.cjs +18 -0
- package/dist/witnet/assets/modals/web3/ipfs.d.cts +3 -0
- package/dist/witnet/assets/modals/web3/ipfs.d.cts.map +1 -0
- package/dist/witnet/assets/modals/web3/wit.cjs +24 -0
- package/dist/witnet/assets/modals/web3/wit.d.cts +3 -0
- package/dist/witnet/assets/modals/web3/wit.d.cts.map +1 -0
- package/dist/witnet/assets/requests.cjs +43 -0
- package/dist/witnet/assets/requests.d.cts +10 -0
- package/dist/witnet/assets/requests.d.cts.map +1 -0
- package/package.json +41 -24
- package/src/bin/bots/watcher.cjs +354 -0
- package/src/bin/cli/history.cjs +31 -0
- package/src/bin/cli/inspect.js +545 -471
- package/src/bin/cli/network.js +658 -557
- package/src/bin/cli/nodes.js +392 -332
- package/src/bin/cli/radon.js +1071 -844
- package/src/bin/cli/wallet.js +1317 -1074
- package/src/bin/helpers.js +969 -868
- package/src/bin/index.js +329 -0
- package/witnet/assets/_index.cjs +5 -0
- package/witnet/assets/_requests.cjs +25 -0
- package/witnet/assets/_sources.cjs +36 -0
- package/witnet/assets/_templates.cjs +36 -0
- package/witnet/assets/index.cjs +4 -0
- package/witnet/assets/modals/index.cjs +7 -0
- package/witnet/assets/modals/web3/eth.cjs +27 -0
- package/witnet/assets/modals/web3/ipfs.cjs +22 -0
- package/witnet/assets/modals/web3/wit.cjs +28 -0
- package/witnet/assets/requests.cjs +49 -0
- package/witnet/witnet copy.proto +457 -0
- package/witnet/witnet.proto +456 -0
- package/witnet/witnet_toolkit-1.6.7-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-1.7.1-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.0-rc.7-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.2-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.21-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.7-x86_64-pc-windows-msvc.exe +0 -0
- package/witnet/witnet_toolkit-2.0.8-x86_64-pc-windows-msvc.exe +0 -0
- package/dist/witnet/assets/index.d.ts +0 -29
- package/dist/witnet/assets/index.d.ts.map +0 -1
- package/dist/witnet/assets/index.js +0 -6
- package/dist/witnet/assets/modals/index.d.ts +0 -16
- package/dist/witnet/assets/modals/index.d.ts.map +0 -1
- package/dist/witnet/assets/modals/index.js +0 -11
- package/dist/witnet/assets/modals/web3/eth.d.ts +0 -5
- package/dist/witnet/assets/modals/web3/eth.d.ts.map +0 -1
- package/dist/witnet/assets/modals/web3/eth.js +0 -26
- package/dist/witnet/assets/modals/web3/ipfs.d.ts +0 -4
- package/dist/witnet/assets/modals/web3/ipfs.d.ts.map +0 -1
- package/dist/witnet/assets/modals/web3/ipfs.js +0 -18
- package/dist/witnet/assets/modals/web3/wit.d.ts +0 -4
- package/dist/witnet/assets/modals/web3/wit.d.ts.map +0 -1
- package/dist/witnet/assets/modals/web3/wit.js +0 -17
- package/dist/witnet/assets/requests.d.ts +0 -11
- package/dist/witnet/assets/requests.d.ts.map +0 -1
- package/dist/witnet/assets/requests.js +0 -43
- package/src/bin/cli/history.js +0 -31
- package/src/bin/postinstall.js +0 -9
- package/src/bin/toolkit.js +0 -290
- package/witnet/assets/_index.js +0 -8
- package/witnet/assets/_requests.js +0 -25
- package/witnet/assets/_sources.js +0 -36
- package/witnet/assets/_templates.js +0 -36
- package/witnet/assets/index.js +0 -4
- package/witnet/assets/modals/index.js +0 -9
- package/witnet/assets/modals/web3/eth.js +0 -29
- package/witnet/assets/modals/web3/ipfs.js +0 -22
- package/witnet/assets/modals/web3/wit.js +0 -21
- package/witnet/assets/requests.js +0 -49
- /package/witnet/assets/modals/web3/{btc.js → btc.cjs} +0 -0
- /package/witnet/assets/modals/web3/{sol.js → sol.cjs} +0 -0
|
@@ -1,33 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const helpers_1 = require("../../../bin/helpers");
|
|
6
|
-
const payloads_1 = require("../payloads");
|
|
7
|
-
const types_1 = require("../types");
|
|
1
|
+
import Long from "long";
|
|
2
|
+
import { fromHexString } from "../../../bin/helpers.js";
|
|
3
|
+
import { TransactionPayloadMultiSig } from "../payloads.js";
|
|
4
|
+
import { Coins, PublicKeyHash, TransactionPriority, } from "../types.js";
|
|
8
5
|
const TX_WEIGHT_INPUT_SIZE = 133;
|
|
9
6
|
const TX_WEIGHT_OUTPUT_SIZE = 36;
|
|
10
7
|
const TX_WEIGHT_GAMMA = 10;
|
|
11
|
-
class ValueTransferPayload extends
|
|
12
|
-
|
|
13
|
-
super(protoTypeName, initialTarget);
|
|
14
|
-
}
|
|
8
|
+
export class ValueTransferPayload extends TransactionPayloadMultiSig {
|
|
9
|
+
static MAX_WEIGHT = 20000;
|
|
15
10
|
get maxWeight() {
|
|
16
11
|
return ValueTransferPayload.MAX_WEIGHT;
|
|
17
12
|
}
|
|
18
13
|
get value() {
|
|
19
|
-
return
|
|
14
|
+
return Coins.fromPedros(this._target?.recipients.reduce((prev, [, curr]) => prev + curr.pedros, 0n) || 0n);
|
|
20
15
|
}
|
|
21
16
|
get weight() {
|
|
22
|
-
return (this._inputs.length * TX_WEIGHT_INPUT_SIZE
|
|
23
|
-
|
|
17
|
+
return (this._inputs.length * TX_WEIGHT_INPUT_SIZE +
|
|
18
|
+
this._outputs.length * TX_WEIGHT_OUTPUT_SIZE * TX_WEIGHT_GAMMA);
|
|
24
19
|
}
|
|
25
20
|
prepareOutputs(change) {
|
|
26
21
|
if (this._target && this._outputs.length === 0) {
|
|
27
22
|
this._outputs.push(...this._target.recipients.map(([pkh, value]) => ({
|
|
28
23
|
pkh,
|
|
29
24
|
value: value.pedros,
|
|
30
|
-
time_lock: this._target?.timelock || 0
|
|
25
|
+
time_lock: this._target?.timelock || 0,
|
|
31
26
|
})));
|
|
32
27
|
super.prepareOutputs(change);
|
|
33
28
|
}
|
|
@@ -35,41 +30,45 @@ class ValueTransferPayload extends payloads_1.TransactionPayloadMultiSig {
|
|
|
35
30
|
intoReceipt(target) {
|
|
36
31
|
return {
|
|
37
32
|
outputLock: target.timelock,
|
|
38
|
-
recipients: target.recipients
|
|
33
|
+
recipients: target.recipients
|
|
34
|
+
.map(([pkh]) => pkh)
|
|
35
|
+
.filter((pkh, index, array) => index === array.indexOf(pkh)),
|
|
39
36
|
};
|
|
40
37
|
}
|
|
41
38
|
toJSON() {
|
|
42
39
|
return {
|
|
43
|
-
inputs: this.inputs
|
|
44
|
-
.map(utxo => {
|
|
40
|
+
inputs: this.inputs.map((utxo) => {
|
|
45
41
|
return { output_pointer: utxo.output_pointer };
|
|
46
42
|
}),
|
|
47
|
-
outputs: this.outputs.map(vto => ({
|
|
43
|
+
outputs: this.outputs.map((vto) => ({
|
|
48
44
|
pkh: vto.pkh,
|
|
49
45
|
time_lock: vto.time_lock,
|
|
50
46
|
value: vto.value.toString(),
|
|
51
|
-
}))
|
|
47
|
+
})),
|
|
52
48
|
};
|
|
53
49
|
}
|
|
54
50
|
toProtobuf() {
|
|
55
51
|
if (this.prepared) {
|
|
56
52
|
return {
|
|
57
|
-
inputs: this.inputs
|
|
58
|
-
.
|
|
59
|
-
const
|
|
60
|
-
const outputIndex = parseInt(utxo.output_pointer.split(':')[1]);
|
|
53
|
+
inputs: this.inputs.map((utxo) => {
|
|
54
|
+
const transactionId = utxo.output_pointer.split(":")[0];
|
|
55
|
+
const outputIndex = parseInt(utxo.output_pointer.split(":")[1], 10);
|
|
61
56
|
return {
|
|
62
57
|
outputPointer: {
|
|
63
|
-
transactionId: {
|
|
58
|
+
transactionId: {
|
|
59
|
+
SHA256: Array.from(fromHexString(transactionId)),
|
|
60
|
+
},
|
|
64
61
|
...(outputIndex > 0 ? { outputIndex } : {}),
|
|
65
62
|
},
|
|
66
63
|
};
|
|
67
64
|
}),
|
|
68
|
-
outputs: this.outputs.map(vto => ({
|
|
69
|
-
pkh: {
|
|
65
|
+
outputs: this.outputs.map((vto) => ({
|
|
66
|
+
pkh: {
|
|
67
|
+
hash: Array.from(PublicKeyHash.fromBech32(vto.pkh).toBytes20()),
|
|
68
|
+
},
|
|
70
69
|
value: Long.fromValue(vto.value),
|
|
71
70
|
...(vto.time_lock > 0 ? { timeLock: vto.time_lock } : {}),
|
|
72
|
-
}))
|
|
71
|
+
})),
|
|
73
72
|
};
|
|
74
73
|
}
|
|
75
74
|
}
|
|
@@ -79,17 +78,17 @@ class ValueTransferPayload extends payloads_1.TransactionPayloadMultiSig {
|
|
|
79
78
|
if (!target) {
|
|
80
79
|
throw new TypeError(`${this.constructor.name}: no options passed.`);
|
|
81
80
|
}
|
|
82
|
-
else if (!(!target?.fees
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
else if (!(!target?.fees ||
|
|
82
|
+
(target.fees instanceof Coins && target.fees.pedros > 0) ||
|
|
83
|
+
Object.values(TransactionPriority).includes(target.fees))) {
|
|
85
84
|
throw new TypeError(`${this.constructor.name}: invalid fees: ${target.fees}`);
|
|
86
85
|
}
|
|
87
86
|
else if (!target?.recipients) {
|
|
88
87
|
throw new TypeError(`${this.constructor.name}: no recipients.`);
|
|
89
88
|
}
|
|
90
|
-
else if (!(Array.isArray(target.recipients)
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
else if (!(Array.isArray(target.recipients) &&
|
|
90
|
+
target.recipients.length > 0 &&
|
|
91
|
+
target.recipients.filter(([, value]) => value instanceof Coins))) {
|
|
93
92
|
throw new TypeError(`${this.constructor.name}: invalid recipients: ${target.recipients}`);
|
|
94
93
|
}
|
|
95
94
|
else if (!(!target?.timelock || target.timelock >= 0)) {
|
|
@@ -105,24 +104,23 @@ class ValueTransferPayload extends payloads_1.TransactionPayloadMultiSig {
|
|
|
105
104
|
}
|
|
106
105
|
_cleanTargetExtras(target) {
|
|
107
106
|
if (target) {
|
|
108
|
-
return Object.fromEntries(Object.entries(target).filter(([key
|
|
109
|
-
'fees',
|
|
110
|
-
'recipients',
|
|
111
|
-
'timelock',
|
|
112
|
-
].includes(key)));
|
|
107
|
+
return Object.fromEntries(Object.entries(target).filter(([key]) => ["fees", "recipients", "timelock"].includes(key)));
|
|
113
108
|
}
|
|
114
109
|
}
|
|
115
|
-
async _estimateNetworkFees(provider, priority =
|
|
110
|
+
async _estimateNetworkFees(provider, priority = TransactionPriority.Medium) {
|
|
116
111
|
if (!this._priorities) {
|
|
117
112
|
this._priorities = await provider.priorities();
|
|
118
113
|
}
|
|
119
|
-
return BigInt(Math.floor(this._priorities[`vtt_${priority}`].priority *
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
return BigInt(Math.floor(this._priorities[`vtt_${priority}`].priority *
|
|
115
|
+
(this.covered
|
|
116
|
+
? this.weight
|
|
117
|
+
: this.weight +
|
|
118
|
+
// estimate one more input as to cover for network fees
|
|
119
|
+
TX_WEIGHT_INPUT_SIZE +
|
|
120
|
+
// estimate as many outputs as recipients plus one, as to cover for eventual change output
|
|
121
|
+
TX_WEIGHT_OUTPUT_SIZE *
|
|
122
|
+
(this._target?.recipients.length || 1 + 1) *
|
|
123
|
+
TX_WEIGHT_GAMMA)));
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
exports.ValueTransferPayload = ValueTransferPayload;
|
|
127
|
-
ValueTransferPayload.MAX_WEIGHT = 20000;
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsdWVUcmFuc2ZlclBheWxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9wYXlsb2Fkcy9WYWx1ZVRyYW5zZmVyUGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFNUIsa0RBQW9EO0FBR3BELDBDQUF3RDtBQUN4RCxvQ0FBNEc7QUFPNUcsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDakMsTUFBTSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFDakMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBRTNCLE1BQWEsb0JBQXFCLFNBQVEscUNBQStDO0lBSXJGLFlBQWEsYUFBcUIsRUFBRSxhQUFtQztRQUNuRSxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxvQkFBb0IsQ0FBQyxVQUFVLENBQUE7SUFDMUMsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sYUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM3RyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxDQUNILElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLG9CQUFvQjtjQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxxQkFBcUIsR0FBRyxlQUFlLENBQ3ZFLENBQUM7SUFDTixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQW9EO1FBQ3RFLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxHQUFHO2dCQUNILEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLENBQUM7YUFDekMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNMLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsTUFBMkI7UUFDMUMsT0FBTztZQUNILFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUMzQixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakgsQ0FBQTtJQUNMLENBQUM7SUFFTSxNQUFNO1FBQ1QsT0FBTztZQUNILE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtpQkFDZCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7WUFDbEQsQ0FBQyxDQUFDO1lBQ04sT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO2dCQUNaLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztnQkFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzlCLENBQUMsQ0FBQztTQUNOLENBQUE7SUFDTCxDQUFDO0lBRU0sVUFBVTtRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87Z0JBQ0gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO3FCQUNkLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDUixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDdkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQy9ELE9BQU87d0JBQ0gsYUFBYSxFQUFFOzRCQUNYLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsdUJBQWEsRUFBQyxhQUFhLENBQUMsQ0FBQyxFQUFFOzRCQUNuRSxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3lCQUM5QztxQkFDSixDQUFBO2dCQUNMLENBQUMsQ0FBQztnQkFDTixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM5QixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRztvQkFDekUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDaEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDNUQsQ0FBQyxDQUFDO2FBQ04sQ0FBQTtRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQVk7UUFDOUIsTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxDQUFBO1lBRXZFLENBQUM7aUJBQU0sSUFBSSxDQUFDLENBQ1IsQ0FBQyxNQUFNLEVBQUUsSUFBSTttQkFDVixDQUNDLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxhQUFLLElBQUssTUFBTSxDQUFDLElBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO3VCQUNoRSxNQUFNLENBQUMsTUFBTSxDQUFDLDJCQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDOUQsQ0FDSixFQUFFLENBQUM7Z0JBQ0EsTUFBTSxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxtQkFBbUIsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFFakYsQ0FBQztpQkFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUM3QixNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUE7WUFFbkUsQ0FBQztpQkFBTSxJQUFJLENBQUMsQ0FDUixLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7bUJBQzdCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7bUJBQzNCLE1BQU0sQ0FBQyxVQUE2QyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQUssQ0FBQyxDQUN6RyxFQUFFLENBQUM7Z0JBQ0EsTUFBTSxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSx5QkFBeUIsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFFN0YsQ0FBQztpQkFBTSxJQUFHLENBQUMsQ0FDUCxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQzVDLEVBQUUsQ0FBQztnQkFDQSxNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHVCQUF1QixNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUV6RixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxNQUE2QixDQUFBO1lBQ3hDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sU0FBUyxDQUFBO1FBQ3BCLENBQUM7SUFDTCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsTUFBWTtRQUNyQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUNyQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUN0QyxNQUFNO2dCQUNOLFlBQVk7Z0JBQ1osVUFBVTthQUNiLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ25CLENBQUE7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVTLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxRQUEwQixFQUFFLFFBQVEsR0FBRywyQkFBbUIsQ0FBQyxNQUFNO1FBQ2xHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNsRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3BDLHVEQUF1RDtjQUNyRCxvQkFBb0I7WUFDdEIsMEZBQTBGO2NBQ3hGLHFCQUFxQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQzdGLENBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7QUE3SUwsb0RBOElDO0FBNUlpQiwrQkFBVSxHQUFHLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IExvbmcgPSByZXF1aXJlKFwibG9uZ1wiKVxyXG5cclxuaW1wb3J0IHsgZnJvbUhleFN0cmluZyB9IGZyb20gXCIuLi8uLi8uLi9iaW4vaGVscGVyc1wiXHJcbmltcG9ydCB7IElKc29uUnBjUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIlxyXG5cclxuaW1wb3J0IHsgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWcgfSBmcm9tIFwiLi4vcGF5bG9hZHNcIlxyXG5pbXBvcnQgeyBDb2lucywgUHVibGljS2V5SGFzaCwgUHVibGljS2V5SGFzaFN0cmluZywgVHJhbnNhY3Rpb25QYXJhbXMsIFRyYW5zYWN0aW9uUHJpb3JpdHkgfSBmcm9tIFwiLi4vdHlwZXNcIlxyXG5cclxuZXhwb3J0IHR5cGUgVmFsdWVUcmFuc2ZlclBhcmFtcyA9IFRyYW5zYWN0aW9uUGFyYW1zICYge1xyXG4gICAgcmVjaXBpZW50czogQXJyYXk8W3BraDogUHVibGljS2V5SGFzaFN0cmluZywgdmFsdWU6IENvaW5zXT4sXHJcbiAgICB0aW1lbG9jaz86IG51bWJlcixcclxufVxyXG5cclxuY29uc3QgVFhfV0VJR0hUX0lOUFVUX1NJWkUgPSAxMzM7XHJcbmNvbnN0IFRYX1dFSUdIVF9PVVRQVVRfU0laRSA9IDM2O1xyXG5jb25zdCBUWF9XRUlHSFRfR0FNTUEgPSAxMDtcclxuXHJcbmV4cG9ydCBjbGFzcyBWYWx1ZVRyYW5zZmVyUGF5bG9hZCBleHRlbmRzIFRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnPFZhbHVlVHJhbnNmZXJQYXJhbXM+IHtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSAyMDAwMDtcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IgKHByb3RvVHlwZU5hbWU6IHN0cmluZywgaW5pdGlhbFRhcmdldD86IFZhbHVlVHJhbnNmZXJQYXJhbXMpIHtcclxuICAgICAgICBzdXBlcihwcm90b1R5cGVOYW1lLCBpbml0aWFsVGFyZ2V0KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbWF4V2VpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIFZhbHVlVHJhbnNmZXJQYXlsb2FkLk1BWF9XRUlHSFRcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IENvaW5zIHtcclxuICAgICAgICByZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyh0aGlzLl90YXJnZXQ/LnJlY2lwaWVudHMucmVkdWNlKChwcmV2LCBbLGN1cnJdKSA9PiBwcmV2ICsgY3Vyci5wZWRyb3MsIDBuKSB8fCAwbilcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHdlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuX2lucHV0cy5sZW5ndGggKiBUWF9XRUlHSFRfSU5QVVRfU0laRSBcclxuICAgICAgICAgICAgICAgICsgdGhpcy5fb3V0cHV0cy5sZW5ndGggKiBUWF9XRUlHSFRfT1VUUFVUX1NJWkUgKiBUWF9XRUlHSFRfR0FNTUFcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcmVwYXJlT3V0cHV0cyhjaGFuZ2U/OiB7IHZhbHVlOiBiaWdpbnQsIHBraDogUHVibGljS2V5SGFzaFN0cmluZyB9KTogYW55IHtcclxuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0ICYmIHRoaXMuX291dHB1dHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX291dHB1dHMucHVzaCguLi50aGlzLl90YXJnZXQucmVjaXBpZW50cy5tYXAoKFtwa2gsIHZhbHVlXSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIHBraCwgXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUucGVkcm9zLCBcclxuICAgICAgICAgICAgICAgIHRpbWVfbG9jazogdGhpcy5fdGFyZ2V0Py50aW1lbG9jayB8fCAwXHJcbiAgICAgICAgICAgIH0pKSk7XHJcbiAgICAgICAgICAgIHN1cGVyLnByZXBhcmVPdXRwdXRzKGNoYW5nZSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGludG9SZWNlaXB0KHRhcmdldDogVmFsdWVUcmFuc2ZlclBhcmFtcyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgb3V0cHV0TG9jazogdGFyZ2V0LnRpbWVsb2NrLFxyXG4gICAgICAgICAgICByZWNpcGllbnRzOiB0YXJnZXQucmVjaXBpZW50cy5tYXAoKFtwa2gsXSkgPT4gcGtoKS5maWx0ZXIoKHBraCwgaW5kZXgsIGFycmF5KSA9PiBpbmRleCA9PT0gYXJyYXkuaW5kZXhPZihwa2gpKSxcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvSlNPTigpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlucHV0czogdGhpcy5pbnB1dHNcclxuICAgICAgICAgICAgICAgIC5tYXAodXR4byA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgb3V0cHV0X3BvaW50ZXI6IHV0eG8ub3V0cHV0X3BvaW50ZXIgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG91dHB1dHM6IHRoaXMub3V0cHV0cy5tYXAodnRvID0+ICh7XHJcbiAgICAgICAgICAgICAgICBwa2g6IHZ0by5wa2gsXHJcbiAgICAgICAgICAgICAgICB0aW1lX2xvY2s6IHZ0by50aW1lX2xvY2ssXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdnRvLnZhbHVlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxuXHJcbiAgICBwdWJsaWMgdG9Qcm90b2J1ZigpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLnByZXBhcmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICAgIFxyXG4gICAgICAgICAgICAgICAgaW5wdXRzOiB0aGlzLmlucHV0c1xyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAodXR4byA9PiB7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbklkID0gdXR4by5vdXRwdXRfcG9pbnRlci5zcGxpdCgnOicpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dEluZGV4ID0gcGFyc2VJbnQodXR4by5vdXRwdXRfcG9pbnRlci5zcGxpdCgnOicpWzFdKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0UG9pbnRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWQ6IHsgU0hBMjU2OiBBcnJheS5mcm9tKGZyb21IZXhTdHJpbmcodHJhbnNhY3Rpb25JZCkpIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKG91dHB1dEluZGV4ID4gMCA/IHsgb3V0cHV0SW5kZXggfSA6IHt9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIG91dHB1dHM6IHRoaXMub3V0cHV0cy5tYXAodnRvID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgcGtoOiB7IGhhc2g6IEFycmF5LmZyb20oUHVibGljS2V5SGFzaC5mcm9tQmVjaDMyKHZ0by5wa2gpLnRvQnl0ZXMyMCgpKSwgfSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogTG9uZy5mcm9tVmFsdWUodnRvLnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICAuLi4odnRvLnRpbWVfbG9jayA+IDAgPyB7IHRpbWVMb2NrOiB2dG8udGltZV9sb2NrIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmFsaWRhdGVUYXJnZXQodGFyZ2V0PzogYW55KTogVmFsdWVUcmFuc2ZlclBhcmFtcyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgdGFyZ2V0ID0gdGhpcy5fY2xlYW5UYXJnZXRFeHRyYXModGFyZ2V0KVxyXG4gICAgICAgIGlmICh0YXJnZXQgJiYgT2JqZWN0LmtleXModGFyZ2V0KS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGlmICghdGFyZ2V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IG5vIG9wdGlvbnMgcGFzc2VkLmApXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCEoXHJcbiAgICAgICAgICAgICAgICAhdGFyZ2V0Py5mZWVzIFxyXG4gICAgICAgICAgICAgICAgfHwgKFxyXG4gICAgICAgICAgICAgICAgICAgICh0YXJnZXQuZmVlcyBpbnN0YW5jZW9mIENvaW5zICYmICh0YXJnZXQuZmVlcyBhcyBDb2lucykucGVkcm9zID4gMClcclxuICAgICAgICAgICAgICAgICAgICB8fCBPYmplY3QudmFsdWVzKFRyYW5zYWN0aW9uUHJpb3JpdHkpLmluY2x1ZGVzKHRhcmdldC5mZWVzKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgZmVlczogJHt0YXJnZXQuZmVlc31gKVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGFyZ2V0Py5yZWNpcGllbnRzKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IG5vIHJlY2lwaWVudHMuYClcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIShcclxuICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGFyZ2V0LnJlY2lwaWVudHMpXHJcbiAgICAgICAgICAgICAgICAmJiB0YXJnZXQucmVjaXBpZW50cy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgICAmJiAodGFyZ2V0LnJlY2lwaWVudHMgYXMgW1tQdWJsaWNLZXlIYXNoU3RyaW5nLCBDb2luc11dKS5maWx0ZXIoKFssIHZhbHVlXSkgPT4gdmFsdWUgaW5zdGFuY2VvZiBDb2lucylcclxuICAgICAgICAgICAgKSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIHJlY2lwaWVudHM6ICR7dGFyZ2V0LnJlY2lwaWVudHN9YClcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZighKFxyXG4gICAgICAgICAgICAgICAgIXRhcmdldD8udGltZWxvY2sgfHwgdGFyZ2V0LnRpbWVsb2NrID49IDBcclxuICAgICAgICAgICAgKSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIHRpbWVsb2NrOiAke3RhcmdldC50aW1lbG9ja31gKVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQgYXMgVmFsdWVUcmFuc2ZlclBhcmFtc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX2NsZWFuVGFyZ2V0RXh0cmFzKHRhcmdldD86IGFueSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRhcmdldCkge1xyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModGFyZ2V0KS5maWx0ZXIoKFtrZXksXSkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgICdmZWVzJyxcclxuICAgICAgICAgICAgICAgICAgICAncmVjaXBpZW50cycsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3RpbWVsb2NrJyxcclxuICAgICAgICAgICAgICAgIF0uaW5jbHVkZXMoa2V5KSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgX2VzdGltYXRlTmV0d29ya0ZlZXMocHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsIHByaW9yaXR5ID0gVHJhbnNhY3Rpb25Qcmlvcml0eS5NZWRpdW0pOiBQcm9taXNlPGJpZ2ludD4ge1xyXG4gICAgICAgIGlmICghdGhpcy5fcHJpb3JpdGllcykge1xyXG4gICAgICAgICAgICB0aGlzLl9wcmlvcml0aWVzID0gYXdhaXQgcHJvdmlkZXIucHJpb3JpdGllcygpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBCaWdJbnQoTWF0aC5mbG9vcihcclxuICAgICAgICAgICAgdGhpcy5fcHJpb3JpdGllc1tgdnR0XyR7cHJpb3JpdHl9YF0ucHJpb3JpdHkgKiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdmVyZWQgPyB0aGlzLndlaWdodCA6IHRoaXMud2VpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZXN0aW1hdGUgb25lIG1vcmUgaW5wdXQgYXMgdG8gY292ZXIgZm9yIG5ldHdvcmsgZmVlc1xyXG4gICAgICAgICAgICAgICAgICAgICsgVFhfV0VJR0hUX0lOUFVUX1NJWkUgXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZXN0aW1hdGUgYXMgbWFueSBvdXRwdXRzIGFzIHJlY2lwaWVudHMgcGx1cyBvbmUsIGFzIHRvIGNvdmVyIGZvciBldmVudHVhbCBjaGFuZ2Ugb3V0cHV0XHJcbiAgICAgICAgICAgICAgICAgICAgKyBUWF9XRUlHSFRfT1VUUFVUX1NJWkUgKiAodGhpcy5fdGFyZ2V0Py5yZWNpcGllbnRzLmxlbmd0aCB8fCAxICsgMSkgKiBUWF9XRUlHSFRfR0FNTUFcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsdWVUcmFuc2ZlclBheWxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9wYXlsb2Fkcy9WYWx1ZVRyYW5zZmVyUGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFDTixLQUFLLEVBQ0wsYUFBYSxFQUdiLG1CQUFtQixHQUNuQixNQUFNLGFBQWEsQ0FBQztBQU9yQixNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUNqQyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUNqQyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7QUFFM0IsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDBCQUErQztJQUNqRixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVqQyxJQUFXLFNBQVM7UUFDbkIsT0FBTyxvQkFBb0IsQ0FBQyxVQUFVLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsS0FBSztRQUNmLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUM5QixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUN0QyxFQUFFLENBQ0YsSUFBSSxFQUFFLENBQ1AsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDaEIsT0FBTyxDQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLG9CQUFvQjtZQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxxQkFBcUIsR0FBRyxlQUFl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LENBQ2hELENBQ0QsQ0FBQztRQUNILENBQUM7SUFDRixDQUFDO0lBRVMsS0FBSyxDQUFDLG9CQUFvQixDQUNuQyxRQUEwQixFQUMxQixRQUFRLEdBQUcsbUJBQW1CLENBQUMsTUFBTTtRQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUNaLElBQUksQ0FBQyxLQUFLLENBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUMzQyxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU07b0JBQ1osdURBQXVEO29CQUN2RCxvQkFBb0I7b0JBQ3BCLDBGQUEwRjtvQkFDMUYscUJBQXFCO3dCQUNwQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMxQyxlQUFlLENBQUMsQ0FDcEIsQ0FDRCxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb25nIGZyb20gXCJsb25nXCI7XHJcblxyXG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nIH0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzLmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgSUpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi8uLi90eXBlcy5qc1wiO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWcgfSBmcm9tIFwiLi4vcGF5bG9hZHMuanNcIjtcclxuaW1wb3J0IHtcclxuXHRDb2lucyxcclxuXHRQdWJsaWNLZXlIYXNoLFxyXG5cdHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyxcclxuXHR0eXBlIFRyYW5zYWN0aW9uUGFyYW1zLFxyXG5cdFRyYW5zYWN0aW9uUHJpb3JpdHksXHJcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBWYWx1ZVRyYW5zZmVyUGFyYW1zID0gVHJhbnNhY3Rpb25QYXJhbXMgJiB7XHJcblx0cmVjaXBpZW50czogQXJyYXk8W3BraDogUHVibGljS2V5SGFzaFN0cmluZywgdmFsdWU6IENvaW5zXT47XHJcblx0dGltZWxvY2s/OiBudW1iZXI7XHJcbn07XHJcblxyXG5jb25zdCBUWF9XRUlHSFRfSU5QVVRfU0laRSA9IDEzMztcclxuY29uc3QgVFhfV0VJR0hUX09VVFBVVF9TSVpFID0gMzY7XHJcbmNvbnN0IFRYX1dFSUdIVF9HQU1NQSA9IDEwO1xyXG5cclxuZXhwb3J0IGNsYXNzIFZhbHVlVHJhbnNmZXJQYXlsb2FkIGV4dGVuZHMgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8VmFsdWVUcmFuc2ZlclBhcmFtcz4ge1xyXG5cdHB1YmxpYyBzdGF0aWMgTUFYX1dFSUdIVCA9IDIwMDAwO1xyXG5cclxuXHRwdWJsaWMgZ2V0IG1heFdlaWdodCgpOiBudW1iZXIge1xyXG5cdFx0cmV0dXJuIFZhbHVlVHJhbnNmZXJQYXlsb2FkLk1BWF9XRUlHSFQ7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IHZhbHVlKCk6IENvaW5zIHtcclxuXHRcdHJldHVybiBDb2lucy5mcm9tUGVkcm9zKFxyXG5cdFx0XHR0aGlzLl90YXJnZXQ/LnJlY2lwaWVudHMucmVkdWNlKFxyXG5cdFx0XHRcdChwcmV2LCBbLCBjdXJyXSkgPT4gcHJldiArIGN1cnIucGVkcm9zLFxyXG5cdFx0XHRcdDBuLFxyXG5cdFx0XHQpIHx8IDBuLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXQgd2VpZ2h0KCk6IG51bWJlciB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHR0aGlzLl9pbnB1dHMubGVuZ3RoICogVFhfV0VJR0hUX0lOUFVUX1NJWkUgK1xyXG5cdFx0XHR0aGlzLl9vdXRwdXRzLmxlbmd0aCAqIFRYX1dFSUdIVF9PVVRQVVRfU0laRSAqIFRYX1dFSUdIVF9HQU1NQVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBwcmVwYXJlT3V0cHV0cyhjaGFuZ2U/OiB7XHJcblx0XHR2YWx1ZTogYmlnaW50O1xyXG5cdFx0cGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cdH0pOiBhbnkge1xyXG5cdFx0aWYgKHRoaXMuX3RhcmdldCAmJiB0aGlzLl9vdXRwdXRzLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLl9vdXRwdXRzLnB1c2goXHJcblx0XHRcdFx0Li4udGhpcy5fdGFyZ2V0LnJlY2lwaWVudHMubWFwKChbcGtoLCB2YWx1ZV0pID0+ICh7XHJcblx0XHRcdFx0XHRwa2gsXHJcblx0XHRcdFx0XHR2YWx1ZTogdmFsdWUucGVkcm9zLFxyXG5cdFx0XHRcdFx0dGltZV9sb2NrOiB0aGlzLl90YXJnZXQ/LnRpbWVsb2NrIHx8IDAsXHJcblx0XHRcdFx0fSkpLFxyXG5cdFx0XHQpO1xyXG5cdFx0XHRzdXBlci5wcmVwYXJlT3V0cHV0cyhjaGFuZ2UpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIGludG9SZWNlaXB0KHRhcmdldDogVmFsdWVUcmFuc2ZlclBhcmFtcyk6IGFueSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRvdXRwdXRMb2NrOiB0YXJnZXQudGltZWxvY2ssXHJcblx0XHRcdHJlY2lwaWVudHM6IHRhcmdldC5yZWNpcGllbnRzXHJcblx0XHRcdFx0Lm1hcCgoW3BraF0pID0+IHBraClcclxuXHRcdFx0XHQuZmlsdGVyKChwa2gsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YocGtoKSksXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvSlNPTigpOiBhbnkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0aW5wdXRzOiB0aGlzLmlucHV0cy5tYXAoKHV0eG8pID0+IHtcclxuXHRcdFx0XHRyZXR1cm4geyBvdXRwdXRfcG9pbnRlcjogdXR4by5vdXRwdXRfcG9pbnRlciB9O1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0b3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCgodnRvKSA9PiAoe1xyXG5cdFx0XHRcdHBraDogdnRvLnBraCxcclxuXHRcdFx0XHR0aW1lX2xvY2s6IHZ0by50aW1lX2xvY2ssXHJcblx0XHRcdFx0dmFsdWU6IHZ0by52YWx1ZS50b1N0cmluZygpLFxyXG5cdFx0XHR9KSksXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvUHJvdG9idWYoKTogYW55IHtcclxuXHRcdGlmICh0aGlzLnByZXBhcmVkKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0aW5wdXRzOiB0aGlzLmlucHV0cy5tYXAoKHV0eG8pID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uSWQgPSB1dHhvLm91dHB1dF9wb2ludGVyLnNwbGl0KFwiOlwiKVswXTtcclxuXHRcdFx0XHRcdGNvbnN0IG91dHB1dEluZGV4ID0gcGFyc2VJbnQodXR4by5vdXRwdXRfcG9pbnRlci5zcGxpdChcIjpcIilbMV0sIDEwKTtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdG91dHB1dFBvaW50ZXI6IHtcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2FjdGlvbklkOiB7XHJcblx0XHRcdFx0XHRcdFx0XHRTSEEyNTY6IEFycmF5LmZyb20oZnJvbUhleFN0cmluZyh0cmFuc2FjdGlvbklkKSksXHJcblx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHQuLi4ob3V0cHV0SW5kZXggPiAwID8geyBvdXRwdXRJbmRleCB9IDoge30pLFxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRvdXRwdXRzOiB0aGlzLm91dHB1dHMubWFwKCh2dG8pID0+ICh7XHJcblx0XHRcdFx0XHRwa2g6IHtcclxuXHRcdFx0XHRcdFx0aGFzaDogQXJyYXkuZnJvbShQdWJsaWNLZXlIYXNoLmZyb21CZWNoMzIodnRvLnBraCkudG9CeXRlczIwKCkpLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHZhbHVlOiBMb25nLmZyb21WYWx1ZSh2dG8udmFsdWUpLFxyXG5cdFx0XHRcdFx0Li4uKHZ0by50aW1lX2xvY2sgPiAwID8geyB0aW1lTG9jazogdnRvLnRpbWVfbG9jayB9IDoge30pLFxyXG5cdFx0XHRcdH0pKSxcclxuXHRcdFx0fTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyB2YWxpZGF0ZVRhcmdldCh0YXJnZXQ/OiBhbnkpOiBWYWx1ZVRyYW5zZmVyUGFyYW1zIHwgdW5kZWZpbmVkIHtcclxuXHRcdHRhcmdldCA9IHRoaXMuX2NsZWFuVGFyZ2V0RXh0cmFzKHRhcmdldCk7XHJcblx0XHRpZiAodGFyZ2V0ICYmIE9iamVjdC5rZXlzKHRhcmdldCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRpZiAoIXRhcmdldCkge1xyXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbm8gb3B0aW9ucyBwYXNzZWQuYCk7XHJcblx0XHRcdH0gZWxzZSBpZiAoXHJcblx0XHRcdFx0IShcclxuXHRcdFx0XHRcdCF0YXJnZXQ/LmZlZXMgfHxcclxuXHRcdFx0XHRcdCh0YXJnZXQuZmVlcyBpbnN0YW5jZW9mIENvaW5zICYmICh0YXJnZXQuZmVlcyBhcyBDb2lucykucGVkcm9zID4gMCkgfHxcclxuXHRcdFx0XHRcdE9iamVjdC52YWx1ZXMoVHJhbnNhY3Rpb25Qcmlvcml0eSkuaW5jbHVkZXModGFyZ2V0LmZlZXMpXHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW52YWxpZCBmZWVzOiAke3RhcmdldC5mZWVzfWAsXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fSBlbHNlIGlmICghdGFyZ2V0Py5yZWNpcGllbnRzKSB7XHJcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBubyByZWNpcGllbnRzLmApO1xyXG5cdFx0XHR9IGVsc2UgaWYgKFxyXG5cdFx0XHRcdCEoXHJcblx0XHRcdFx0XHRBcnJheS5pc0FycmF5KHRhcmdldC5yZWNpcGllbnRzKSAmJlxyXG5cdFx0XHRcdFx0dGFyZ2V0LnJlY2lwaWVudHMubGVuZ3RoID4gMCAmJlxyXG5cdFx0XHRcdFx0KHRhcmdldC5yZWNpcGllbnRzIGFzIFtbUHVibGljS2V5SGFzaFN0cmluZywgQ29pbnNdXSkuZmlsdGVyKFxyXG5cdFx0XHRcdFx0XHQoWywgdmFsdWVdKSA9PiB2YWx1ZSBpbnN0YW5jZW9mIENvaW5zLFxyXG5cdFx0XHRcdFx0KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcclxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgcmVjaXBpZW50czogJHt0YXJnZXQucmVjaXBpZW50c31gLFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0gZWxzZSBpZiAoISghdGFyZ2V0Py50aW1lbG9jayB8fCB0YXJnZXQudGltZWxvY2sgPj0gMCkpIHtcclxuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW52YWxpZCB0aW1lbG9jazogJHt0YXJnZXQudGltZWxvY2t9YCxcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJldHVybiB0YXJnZXQgYXMgVmFsdWVUcmFuc2ZlclBhcmFtcztcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBfY2xlYW5UYXJnZXRFeHRyYXModGFyZ2V0PzogYW55KTogYW55IHtcclxuXHRcdGlmICh0YXJnZXQpIHtcclxuXHRcdFx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcclxuXHRcdFx0XHRPYmplY3QuZW50cmllcyh0YXJnZXQpLmZpbHRlcigoW2tleV0pID0+XHJcblx0XHRcdFx0XHRbXCJmZWVzXCIsIFwicmVjaXBpZW50c1wiLCBcInRpbWVsb2NrXCJdLmluY2x1ZGVzKGtleSksXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBhc3luYyBfZXN0aW1hdGVOZXR3b3JrRmVlcyhcclxuXHRcdHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLFxyXG5cdFx0cHJpb3JpdHkgPSBUcmFuc2FjdGlvblByaW9yaXR5Lk1lZGl1bSxcclxuXHQpOiBQcm9taXNlPGJpZ2ludD4ge1xyXG5cdFx0aWYgKCF0aGlzLl9wcmlvcml0aWVzKSB7XHJcblx0XHRcdHRoaXMuX3ByaW9yaXRpZXMgPSBhd2FpdCBwcm92aWRlci5wcmlvcml0aWVzKCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gQmlnSW50KFxyXG5cdFx0XHRNYXRoLmZsb29yKFxyXG5cdFx0XHRcdHRoaXMuX3ByaW9yaXRpZXNbYHZ0dF8ke3ByaW9yaXR5fWBdLnByaW9yaXR5ICpcclxuXHRcdFx0XHRcdCh0aGlzLmNvdmVyZWRcclxuXHRcdFx0XHRcdFx0PyB0aGlzLndlaWdodFxyXG5cdFx0XHRcdFx0XHQ6IHRoaXMud2VpZ2h0ICtcclxuXHRcdFx0XHRcdFx0XHQvLyBlc3RpbWF0ZSBvbmUgbW9yZSBpbnB1dCBhcyB0byBjb3ZlciBmb3IgbmV0d29yayBmZWVzXHJcblx0XHRcdFx0XHRcdFx0VFhfV0VJR0hUX0lOUFVUX1NJWkUgK1xyXG5cdFx0XHRcdFx0XHRcdC8vIGVzdGltYXRlIGFzIG1hbnkgb3V0cHV0cyBhcyByZWNpcGllbnRzIHBsdXMgb25lLCBhcyB0byBjb3ZlciBmb3IgZXZlbnR1YWwgY2hhbmdlIG91dHB1dFxyXG5cdFx0XHRcdFx0XHRcdFRYX1dFSUdIVF9PVVRQVVRfU0laRSAqXHJcblx0XHRcdFx0XHRcdFx0XHQodGhpcy5fdGFyZ2V0Py5yZWNpcGllbnRzLmxlbmd0aCB8fCAxICsgMSkgKlxyXG5cdFx0XHRcdFx0XHRcdFx0VFhfV0VJR0hUX0dBTU1BKSxcclxuXHRcdFx0KSxcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Hash, NetworkPriorities, ValueTransferOutput } from "../types";
|
|
3
|
-
import {
|
|
4
|
-
import { Coins, PublicKeyHashString, TransactionPriority, Utxo } from "./types";
|
|
1
|
+
import protobuf from "protobufjs";
|
|
2
|
+
import type { Hash, NetworkPriorities, ValueTransferOutput } from "../types.js";
|
|
3
|
+
import type { IJsonRpcProvider, ILedger, ITransactionPayload, ITransactionPayloadMultiSig } from "./interfaces.js";
|
|
4
|
+
import { Coins, type PublicKeyHashString, TransactionPriority, type Utxo } from "./types.js";
|
|
5
5
|
export declare abstract class TransactionPayload<Specs> implements ITransactionPayload<Specs> {
|
|
6
6
|
protected _change: bigint;
|
|
7
7
|
protected _covered: bigint;
|
|
8
8
|
protected _fees: bigint;
|
|
9
9
|
protected _priorities?: NetworkPriorities;
|
|
10
|
-
protected _protoType:
|
|
10
|
+
protected _protoType: protobuf.Type;
|
|
11
11
|
protected _target?: Specs;
|
|
12
12
|
constructor(protoTypeName: string, initialTarget?: Specs);
|
|
13
13
|
get bytecode(): Uint8Array | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/payloads.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/payloads.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const protoRoot =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class TransactionPayload {
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
import protobuf from "protobufjs";
|
|
4
|
+
const { Root: ProtoRoot } = protobuf;
|
|
5
|
+
const protoRoot = ProtoRoot.fromJSON(require("../../../witnet/witnet.proto.json"));
|
|
6
|
+
import { toHexString } from "../utils.js";
|
|
7
|
+
import { Coins, TransactionPriority, } from "./types.js";
|
|
8
|
+
import { sha256 } from "./utils.js";
|
|
9
|
+
export class TransactionPayload {
|
|
10
|
+
_change;
|
|
11
|
+
_covered;
|
|
12
|
+
_fees;
|
|
13
|
+
_priorities;
|
|
14
|
+
_protoType;
|
|
15
|
+
_target;
|
|
10
16
|
constructor(protoTypeName, initialTarget) {
|
|
11
17
|
this._protoType = protoRoot.lookupType(protoTypeName);
|
|
12
18
|
this._target = this.validateTarget(initialTarget);
|
|
@@ -24,28 +30,24 @@ class TransactionPayload {
|
|
|
24
30
|
throw TypeError(err);
|
|
25
31
|
}
|
|
26
32
|
else {
|
|
27
|
-
// console.log("\nobj =>", JSON.stringify(obj))
|
|
28
33
|
const message = this._protoType.fromObject(obj);
|
|
29
|
-
// console.log("\nmessage =>", JSON.stringify(message))
|
|
30
34
|
const bytecode = this._protoType.encode(message).finish();
|
|
31
|
-
// console.log("\nbytecode =>", toHexString(bytecode))
|
|
32
35
|
return bytecode;
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
38
|
get change() {
|
|
36
|
-
return this._change > 0 ?
|
|
39
|
+
return this._change > 0 ? Coins.fromPedros(this._change) : undefined;
|
|
37
40
|
}
|
|
38
41
|
get covered() {
|
|
39
|
-
return
|
|
40
|
-
&& this._covered >= this.value.pedros + this.fees.pedros);
|
|
42
|
+
return !!this.fees && this._covered >= this.value.pedros + this.fees.pedros;
|
|
41
43
|
}
|
|
42
44
|
get fees() {
|
|
43
|
-
return this._fees > 0 ?
|
|
45
|
+
return this._fees > 0 ? Coins.fromPedros(this._fees) : undefined;
|
|
44
46
|
}
|
|
45
47
|
get hash() {
|
|
46
48
|
const _bytecode = this.bytecode;
|
|
47
49
|
if (_bytecode instanceof Uint8Array) {
|
|
48
|
-
return
|
|
50
|
+
return toHexString(sha256(_bytecode));
|
|
49
51
|
}
|
|
50
52
|
else {
|
|
51
53
|
return undefined;
|
|
@@ -53,12 +55,13 @@ class TransactionPayload {
|
|
|
53
55
|
}
|
|
54
56
|
intoReceipt(target) {
|
|
55
57
|
return {
|
|
56
|
-
...target
|
|
58
|
+
...target,
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
export class TransactionPayloadMultiSig extends TransactionPayload {
|
|
63
|
+
_inputs;
|
|
64
|
+
_outputs;
|
|
62
65
|
constructor(protoTypeName, initialTarget) {
|
|
63
66
|
super(protoTypeName, initialTarget);
|
|
64
67
|
this._inputs = [];
|
|
@@ -71,8 +74,7 @@ class TransactionPayloadMultiSig extends TransactionPayload {
|
|
|
71
74
|
return this._outputs;
|
|
72
75
|
}
|
|
73
76
|
get prepared() {
|
|
74
|
-
return
|
|
75
|
-
&& this._outputs.length > 0);
|
|
77
|
+
return this._inputs.length > 0 && this._outputs.length > 0;
|
|
76
78
|
}
|
|
77
79
|
async consumeUtxos(ledger, reload) {
|
|
78
80
|
if (!this._target) {
|
|
@@ -80,39 +82,35 @@ class TransactionPayloadMultiSig extends TransactionPayload {
|
|
|
80
82
|
}
|
|
81
83
|
const prepared = this.prepared;
|
|
82
84
|
if (!this.covered) {
|
|
83
|
-
// console.log(await ledger.getUtxos())
|
|
84
85
|
// consume utxos as to cover this.value, at least
|
|
85
86
|
const utxos = await ledger.selectUtxos({
|
|
86
|
-
value:
|
|
87
|
+
value: Coins.fromPedros(this.value.pedros - this._covered),
|
|
87
88
|
reload,
|
|
88
89
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
// console.log("initial cover =>", this._covered)
|
|
90
|
+
this._covered += utxos
|
|
91
|
+
.map((utxo) => utxo.value)
|
|
92
|
+
.reduce((prev, curr) => prev + curr, 0n);
|
|
93
93
|
this._inputs.push(...utxos);
|
|
94
94
|
ledger.consumeUtxos(...utxos);
|
|
95
95
|
// try to cover fees only if this.value is covered first
|
|
96
96
|
if (this._covered >= this.value.pedros) {
|
|
97
|
-
|
|
98
|
-
// console.log("remaining utxos =>", await ledger.getUtxos())
|
|
99
|
-
if (this._target?.fees instanceof types_1.Coins) {
|
|
97
|
+
if (this._target?.fees instanceof Coins) {
|
|
100
98
|
this._fees = this._target.fees.pedros;
|
|
101
|
-
// console.log(this._covered, this.value.pedros, this._fees, this._covered < this.value.pedros + this._fees)
|
|
102
99
|
if (this._covered < this.value.pedros + this._fees) {
|
|
103
|
-
// console.log("more utxos required...")
|
|
104
100
|
const extras = await ledger.selectUtxos({
|
|
105
|
-
value:
|
|
101
|
+
value: Coins.fromPedros(this.value.pedros + this._fees - this._covered),
|
|
106
102
|
});
|
|
107
103
|
ledger.consumeUtxos(...extras);
|
|
108
|
-
this._covered += extras
|
|
104
|
+
this._covered += extras
|
|
105
|
+
.map((utxo) => utxo.value)
|
|
106
|
+
.reduce((prev, curr) => prev + curr, 0n);
|
|
109
107
|
this._inputs.push(...extras);
|
|
110
108
|
}
|
|
111
109
|
this._change = this._covered - (this.value.pedros + this._fees);
|
|
112
|
-
// console.log(this._change)
|
|
113
110
|
}
|
|
114
111
|
else {
|
|
115
|
-
const priority = this._target?.fees ||
|
|
112
|
+
const priority = this._target?.fees ||
|
|
113
|
+
TransactionPriority.Opulent;
|
|
116
114
|
let estimatedFees = await this._estimateNetworkFees(ledger.provider, priority);
|
|
117
115
|
while (this._fees < estimatedFees) {
|
|
118
116
|
this._fees = estimatedFees;
|
|
@@ -120,10 +118,12 @@ class TransactionPayloadMultiSig extends TransactionPayload {
|
|
|
120
118
|
// add more utxos only if the ones selected for covering the value and the estimate fees don't suffice:
|
|
121
119
|
if (this._covered < this.value.pedros + this._fees) {
|
|
122
120
|
const extras = await ledger.selectUtxos({
|
|
123
|
-
value:
|
|
121
|
+
value: Coins.fromPedros(this.value.pedros + this._fees - this._covered),
|
|
124
122
|
});
|
|
125
123
|
ledger.consumeUtxos(...extras);
|
|
126
|
-
this._covered += extras
|
|
124
|
+
this._covered += extras
|
|
125
|
+
.map((utxo) => utxo.value)
|
|
126
|
+
.reduce((prev, curr) => prev + curr, 0n);
|
|
127
127
|
this._inputs.push(...extras);
|
|
128
128
|
}
|
|
129
129
|
this._change = this._covered - (this.value.pedros + this._fees);
|
|
@@ -132,7 +132,10 @@ class TransactionPayloadMultiSig extends TransactionPayload {
|
|
|
132
132
|
break;
|
|
133
133
|
}
|
|
134
134
|
else {
|
|
135
|
-
this.prepareOutputs({
|
|
135
|
+
this.prepareOutputs({
|
|
136
|
+
value: this._change,
|
|
137
|
+
pkh: ledger.changePkh,
|
|
138
|
+
});
|
|
136
139
|
// iterate until actual fees match estimated fees
|
|
137
140
|
estimatedFees = await this._estimateNetworkFees(ledger.provider, priority);
|
|
138
141
|
}
|
|
@@ -143,11 +146,8 @@ class TransactionPayloadMultiSig extends TransactionPayload {
|
|
|
143
146
|
return 0n;
|
|
144
147
|
}
|
|
145
148
|
}
|
|
146
|
-
// console.log("change =>", this._change)
|
|
147
149
|
// prepare outputs, only if value and fees got fully covered for the first time:
|
|
148
150
|
if (this._change >= 0 && !prepared) {
|
|
149
|
-
// console.log('-'.repeat(80))
|
|
150
|
-
// console.log(this._inputs)
|
|
151
151
|
this.prepareOutputs({ value: this._change, pkh: ledger.changePkh });
|
|
152
152
|
}
|
|
153
153
|
return this._change;
|
|
@@ -171,5 +171,4 @@ class TransactionPayloadMultiSig extends TransactionPayload {
|
|
|
171
171
|
delete this._priorities;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
exports.TransactionPayloadMultiSig = TransactionPayloadMultiSig;
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9wYXlsb2Fkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBaUU7QUFDakUsTUFBTSxTQUFTLEdBQUcsaUJBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQTtBQUdsRixvQ0FBc0M7QUFHdEMsbUNBQWdDO0FBQ2hDLG1DQUFnRjtBQUVoRixNQUFzQixrQkFBa0I7SUFTcEMsWUFBWSxhQUFxQixFQUFFLGFBQXFCO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLHlEQUF5RDtRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN2QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sTUFBTSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDSiwrQ0FBK0M7WUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDL0MsdURBQXVEO1lBQ3ZE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QUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUN2RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBb0Q7UUFDdEUsSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2dCQUNmLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsU0FBUyxFQUFFLENBQUM7YUFDZixDQUFDLENBQUE7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUFhO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFBO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFBO0lBQzNCLENBQUM7Q0FXSjtBQXZJRCxnRUF1SUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIGFzIFByb3RvVHlwZSwgUm9vdCBhcyBQcm90b1Jvb3QgfSBmcm9tIFwicHJvdG9idWZqc1wiXHJcbmNvbnN0IHByb3RvUm9vdCA9IFByb3RvUm9vdC5mcm9tSlNPTihyZXF1aXJlKFwiLi4vLi4vLi4vd2l0bmV0L3dpdG5ldC5wcm90by5qc29uXCIpKVxyXG5cclxuaW1wb3J0IHsgSGFzaCwgTmV0d29ya1ByaW9yaXRpZXMsIFZhbHVlVHJhbnNmZXJPdXRwdXQgfSBmcm9tIFwiLi4vdHlwZXNcIlxyXG5pbXBvcnQgeyB0b0hleFN0cmluZyB9IGZyb20gXCIuLi91dGlsc1wiXHJcblxyXG5pbXBvcnQgeyBJTGVkZ2VyLCBJSnNvblJwY1Byb3ZpZGVyLCBJVHJhbnNhY3Rpb25QYXlsb2FkLCBJVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWcgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCJcclxuaW1wb3J0IHsgc2hhMjU2IH0gZnJvbSBcIi4vdXRpbHNcIlxyXG5pbXBvcnQgeyBDb2lucywgUHVibGljS2V5SGFzaFN0cmluZywgVHJhbnNhY3Rpb25Qcmlvcml0eSwgVXR4byB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25QYXlsb2FkPFNwZWNzPiBpbXBsZW1lbnRzIElUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+IHtcclxuIFxyXG4gICAgcHJvdGVjdGVkIF9jaGFuZ2U6IGJpZ2ludDtcclxuICAgIHByb3RlY3RlZCBfY292ZXJlZDogYmlnaW50O1xyXG4gICAgcHJvdGVjdGVkIF9mZWVzOiBiaWdpbnQ7XHJcbiAgICBwcm90ZWN0ZWQgX3ByaW9yaXRpZXM/OiBOZXR3b3JrUHJpb3JpdGllcztcclxuICAgIHByb3RlY3RlZCBfcHJvdG9UeXBlOiBQcm90b1R5cGU7XHJcbiAgICBwcm90ZWN0ZWQgX3RhcmdldD86IFNwZWNzO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90b1R5cGVOYW1lOiBzdHJpbmcsIGluaXRpYWxUYXJnZXQ/OiBTcGVjcykge1xyXG4gICAgICAgIHRoaXMuX3Byb3RvVHlwZSA9IHByb3RvUm9vdC5sb29rdXBUeXBlKHByb3RvVHlwZU5hbWUpXHJcbiAgICAgICAgdGhpcy5fdGFyZ2V0ID0gdGhpcy52YWxpZGF0ZVRhcmdldChpbml0aWFsVGFyZ2V0KVxyXG4gICAgICAgIHRoaXMuX2NoYW5nZSA9IDBuXHJcbiAgICAgICAgdGhpcy5fY292ZXJlZCA9IDBuXHJcbiAgICAgICAgdGhpcy5fZmVlcyA9IDBuXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBieXRlY29kZSgpOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICAvLyBtYWtlIHRvUHJvdG9idWYgcmV0dXJuIFByb3RvYnVmJ3MgZGVzZXJpYWxpemVkIG1lc3NhZ2VcclxuICAgICAgICBjb25zdCBvYmogPSB0aGlzLnRvUHJvdG9idWYoKVxyXG4gICAgICAgIGlmICghb2JqKSByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgY29uc3QgZXJyID0gdGhpcy5fcHJvdG9UeXBlLnZlcmlmeShvYmopXHJcbiAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoZXJyKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiXFxub2JqID0+XCIsIEpTT04uc3RyaW5naWZ5KG9iaikpXHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLl9wcm90b1R5cGUuZnJvbU9iamVjdChvYmopXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiXFxubWVzc2FnZSA9PlwiLCBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSlcclxuICAgICAgICAgICAgY29uc3QgYnl0ZWNvZGUgPSB0aGlzLl9wcm90b1R5cGUuZW5jb2RlKG1lc3NhZ2UpLmZpbmlzaCgpXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiXFxuYnl0ZWNvZGUgPT5cIiwgdG9IZXhTdHJpbmcoYnl0ZWNvZGUpKVxyXG4gICAgICAgICAgICByZXR1cm4gYnl0ZWNvZGVcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjaGFuZ2UoKTogQ29pbnMgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2UgPiAwID8gQ29pbnMuZnJvbVBlZHJvcyh0aGlzLl9jaGFuZ2UpIDogdW5kZWZpbmVkXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjb3ZlcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICEhdGhpcy5mZWVzXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLl9jb3ZlcmVkID49IHRoaXMudmFsdWUucGVkcm9zICsgdGhpcy5mZWVzLnBlZHJvc1xyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZlZXMoKTogQ29pbnMgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9mZWVzID4gMCA/IENvaW5zLmZyb21QZWRyb3ModGhpcy5fZmVlcykgOiB1bmRlZmluZWRcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGhhc2goKTogSGFzaCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgX2J5dGVjb2RlID0gdGhpcy5ieXRlY29kZVxyXG4gICAgICAgIGlmIChfYnl0ZWNvZGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0b0hleFN0cmluZyhzaGEyNTYoX2J5dGVjb2RlKSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpbnRvUmVjZWlwdCh0YXJnZXQ6IFNwZWNzKTogYW55IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50YXJnZXRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWJzdHJhY3QgY29uc3VtZVV0eG9zKGxlZGdlcjogSUxlZGdlcik6IFByb21pc2U8YmlnaW50PjtcclxuICAgIGFic3RyYWN0IHByZXBhcmVPdXRwdXRzKGNoYW5nZT86IHsgdmFsdWU6IGJpZ2ludCwgcGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nIH0sIHBhcmFtcz86IGFueSk6IGFueTtcclxuICAgIGFic3RyYWN0IHJlc2V0VGFyZ2V0KHRhcmdldDogU3BlY3MpOiBhbnk7XHJcbiAgICBhYnN0cmFjdCB0b0pTT04oaHVtYW5pemU6IGJvb2xlYW4pOiBhbnk7XHJcbiAgICBhYnN0cmFjdCB0b1Byb3RvYnVmKCk6IGFueTtcclxuICAgIGFic3RyYWN0IHZhbGlkYXRlVGFyZ2V0KHRhcmdldD86IGFueSk6IFNwZWNzIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGFic3RyYWN0IGdldCBvdXRwdXRzKCk6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+O1xyXG4gICAgYWJzdHJhY3QgZ2V0IG1heFdlaWdodCgpOiBudW1iZXI7XHJcbiAgICBhYnN0cmFjdCBnZXQgcHJlcGFyZWQoKTogYm9vbGVhbjtcclxuICAgIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBDb2lucztcclxuICAgIGFic3RyYWN0IGdldCB3ZWlnaHQoKTogbnVtYmVyO1xyXG5cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBfY2xlYW5UYXJnZXRFeHRyYXMocGFyYW1zPzogYW55KTogYW55O1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF9lc3RpbWF0ZU5ldHdvcmtGZWVzKHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLCBwcmlvcml0eT86IFRyYW5zYWN0aW9uUHJpb3JpdHkpOiBQcm9taXNlPGJpZ2ludD47XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZzxTcGVjcz4gXHJcbiAgICBleHRlbmRzIFRyYW5zYWN0aW9uUGF5bG9hZDxTcGVjcz5cclxuICAgIGltcGxlbWVudHMgSVRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnPFNwZWNzPlxyXG57XHJcbiAgICBwcm90ZWN0ZWQgX2lucHV0czogQXJyYXk8VXR4bz5cclxuICAgIHByb3RlY3RlZCBfb3V0cHV0czogQXJyYXk8VmFsdWVUcmFuc2Zlck91dHB1dD5cclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IocHJvdG9UeXBlTmFtZTogc3RyaW5nLCBpbml0aWFsVGFyZ2V0PzogU3BlY3MpIHtcclxuICAgICAgICBzdXBlcihwcm90b1R5cGVOYW1lLCBpbml0aWFsVGFyZ2V0KVxyXG4gICAgICAgIHRoaXMuX2lucHV0cyA9IFtdXHJcbiAgICAgICAgdGhpcy5fb3V0cHV0cyA9IFtdXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpbnB1dHMoKTogQXJyYXk8VXR4bz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnB1dHNcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogQXJyYXk8VmFsdWVUcmFuc2Zlck91dHB1dD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRwdXRzXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwcmVwYXJlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLl9pbnB1dHMubGVuZ3RoID4gMCBcclxuICAgICAgICAgICAgICAgICYmIHRoaXMuX291dHB1dHMubGVuZ3RoID4gMFxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgY29uc3VtZVV0eG9zKGxlZGdlcjogSUxlZGdlciwgcmVsb2FkPzogYm9vbGVhbik6IFByb21pc2U8YmlnaW50PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl90YXJnZXQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiBubyBpbi1mbGlnaHQgcGFyYW1zLmApXHJcbiAgICAgICAgfSBcclxuICAgICAgICBjb25zdCBwcmVwYXJlZCA9IHRoaXMucHJlcGFyZWRcclxuICAgICAgICBpZiAoIXRoaXMuY292ZXJlZCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhd2FpdCBsZWRnZXIuZ2V0VXR4b3MoKSlcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIGNvbnN1bWUgdXR4b3MgYXMgdG8gY292ZXIgdGhpcy52YWx1ZSwgYXQgbGVhc3RcclxuICAgICAgICAgICAgY29uc3QgdXR4b3MgPSBhd2FpdCBsZWRnZXIuc2VsZWN0VXR4b3MoeyBcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBDb2lucy5mcm9tUGVkcm9zKHRoaXMudmFsdWUucGVkcm9zIC0gdGhpcy5fY292ZXJlZCksIFxyXG4gICAgICAgICAgICAgICAgcmVsb2FkLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhsZWRnZXIuY29uc3RydWN0b3IubmFtZSwgXCJjYWNoZUluZm8gPT5cIiwgbGVkZ2VyLnBraCwgbGVkZ2VyLmNhY2hlSW5mbywgdGhpcy52YWx1ZS5wZWRyb3MsIHRoaXMuX2NvdmVyZWQpXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHV0eG9zKVxyXG4gICAgICAgICAgICB0aGlzLl9jb3ZlcmVkICs9IHV0eG9zLm1hcCh1dHhvID0+IHV0eG8udmFsdWUpLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIsIDBuKVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImluaXRpYWwgY292ZXIgPT5cIiwgdGhpcy5fY292ZXJlZClcclxuICAgICAgICAgICAgdGhpcy5faW5wdXRzLnB1c2goLi4udXR4b3MpXHJcbiAgICAgICAgICAgIGxlZGdlci5jb25zdW1lVXR4b3MoLi4udXR4b3MpXHJcblxyXG4gICAgICAgICAgICAvLyB0cnkgdG8gY292ZXIgZmVlcyBvbmx5IGlmIHRoaXMudmFsdWUgaXMgY292ZXJlZCBmaXJzdFxyXG4gICAgICAgICAgICBpZiAodGhpcy5fY292ZXJlZCA+PSB0aGlzLnZhbHVlLnBlZHJvcykge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5faW5wdXRzKVxyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJyZW1haW5pbmcgdXR4b3MgPT5cIiwgYXdhaXQgbGVkZ2VyLmdldFV0eG9zKCkpXHJcbiAgICAgICAgICAgICAgICBpZiAoKHRoaXMuX3RhcmdldCBhcyBhbnkpPy5mZWVzIGluc3RhbmNlb2YgQ29pbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9mZWVzID0gKHRoaXMuX3RhcmdldCBhcyBhbnkpLmZlZXMucGVkcm9zO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX2NvdmVyZWQsIHRoaXMudmFsdWUucGVkcm9zLCB0aGlzLl9mZWVzLCB0aGlzLl9jb3ZlcmVkIDwgdGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb3ZlcmVkIDwgdGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwibW9yZSB1dHhvcyByZXF1aXJlZC4uLlwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRyYXMgPSBhd2FpdCBsZWRnZXIuc2VsZWN0VXR4b3MoeyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBDb2lucy5mcm9tUGVkcm9zKHRoaXMudmFsdWUucGVkcm9zICsgdGhpcy5fZmVlcyAgLSB0aGlzLl9jb3ZlcmVkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVkZ2VyLmNvbnN1bWVVdHhvcyguLi5leHRyYXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvdmVyZWQgKz0gZXh0cmFzLm1hcCh1dHhvID0+IHV0eG8udmFsdWUpLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIsIDBuKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnB1dHMucHVzaCguLi5leHRyYXMpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZSA9IHRoaXMuX2NvdmVyZWQgLSAodGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX2NoYW5nZSlcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpb3JpdHkgPSAodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgYXMgVHJhbnNhY3Rpb25Qcmlvcml0eSB8fCBUcmFuc2FjdGlvblByaW9yaXR5Lk9wdWxlbnRcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZXN0aW1hdGVkRmVlcyA9IGF3YWl0IHRoaXMuX2VzdGltYXRlTmV0d29ya0ZlZXMobGVkZ2VyLnByb3ZpZGVyLCBwcmlvcml0eSk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuX2ZlZXMgPCBlc3RpbWF0ZWRGZWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZlZXMgPSBlc3RpbWF0ZWRGZWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX291dHB1dHMgPSBbXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbW9yZSB1dHhvcyBvbmx5IGlmIHRoZSBvbmVzIHNlbGVjdGVkIGZvciBjb3ZlcmluZyB0aGUgdmFsdWUgYW5kIHRoZSBlc3RpbWF0ZSBmZWVzIGRvbid0IHN1ZmZpY2U6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb3ZlcmVkIDwgdGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRyYXMgPSBhd2FpdCBsZWRnZXIuc2VsZWN0VXR4b3MoeyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZGdlci5jb25zdW1lVXR4b3MoLi4uZXh0cmFzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY292ZXJlZCArPSBleHRyYXMubWFwKHV0eG8gPT4gdXR4by52YWx1ZSkucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3VyciwgMG4pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnB1dHMucHVzaCguLi5leHRyYXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlID0gdGhpcy5fY292ZXJlZCAtICh0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jaGFuZ2UgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnN1ZmZpY2llbnQgZnVuZHMgLi4uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlT3V0cHV0cyh7IHZhbHVlOiB0aGlzLl9jaGFuZ2UsIHBraDogbGVkZ2VyLmNoYW5nZVBraCB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXRlcmF0ZSB1bnRpbCBhY3R1YWwgZmVlcyBtYXRjaCBlc3RpbWF0ZWQgZmVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXN0aW1hdGVkRmVlcyA9IGF3YWl0IHRoaXMuX2VzdGltYXRlTmV0d29ya0ZlZXMobGVkZ2VyLnByb3ZpZGVyLCBwcmlvcml0eSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAwbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImNoYW5nZSA9PlwiLCB0aGlzLl9jaGFuZ2UpXHJcbiAgICAgICAgLy8gcHJlcGFyZSBvdXRwdXRzLCBvbmx5IGlmIHZhbHVlIGFuZCBmZWVzIGdvdCBmdWxseSBjb3ZlcmVkIGZvciB0aGUgZmlyc3QgdGltZTpcclxuICAgICAgICBpZiAodGhpcy5fY2hhbmdlID49IDAgJiYgIXByZXBhcmVkKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCctJy5yZXBlYXQoODApKVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLl9pbnB1dHMpXHJcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZU91dHB1dHMoeyB2YWx1ZTogdGhpcy5fY2hhbmdlLCBwa2g6IGxlZGdlci5jaGFuZ2VQa2ggfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcmVwYXJlT3V0cHV0cyhjaGFuZ2U/OiB7IHZhbHVlOiBiaWdpbnQsIHBraDogUHVibGljS2V5SGFzaFN0cmluZyB9KTogYW55IHtcclxuICAgICAgICBpZiAoY2hhbmdlPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgcGtoOiBjaGFuZ2UucGtoLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNoYW5nZS52YWx1ZSxcclxuICAgICAgICAgICAgICAgIHRpbWVfbG9jazogMCxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0VGFyZ2V0KHRhcmdldDogU3BlY3MpOiBhbnkge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZSA9IDBuXHJcbiAgICAgICAgdGhpcy5fY292ZXJlZCA9IDBuXHJcbiAgICAgICAgdGhpcy5fZmVlcyA9IDBuXHJcbiAgICAgICAgdGhpcy5faW5wdXRzID0gW11cclxuICAgICAgICB0aGlzLl9vdXRwdXRzID0gW11cclxuICAgICAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXRcclxuICAgICAgICBkZWxldGUgdGhpcy5fcHJpb3JpdGllc1xyXG4gICAgfVxyXG5cclxuICAgIGFic3RyYWN0IHRvSlNPTihodW1hbml6ZTogYm9vbGVhbik6IGFueTtcclxuICAgIGFic3RyYWN0IHRvUHJvdG9idWYoKTogYW55O1xyXG4gICAgYWJzdHJhY3QgdmFsaWRhdGVUYXJnZXQodGFyZ2V0PzogYW55KTogU3BlY3MgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgYWJzdHJhY3QgZ2V0IG1heFdlaWdodCgpOiBudW1iZXI7XHJcbiAgICBhYnN0cmFjdCBnZXQgdmFsdWUoKTogQ29pbnM7XHJcbiAgICBhYnN0cmFjdCBnZXQgd2VpZ2h0KCk6IG51bWJlcjtcclxuICAgIFxyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF9jbGVhblRhcmdldEV4dHJhcyhwYXJhbXM/OiBhbnkpOiBhbnk7XHJcbn1cclxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9wYXlsb2Fkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUNuQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FDNUMsQ0FBQztBQUdGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFRMUMsT0FBTyxFQUNOLEtBQUssRUFFTCxtQkFBbUIsR0FFbkIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLE9BQWdCLGtCQUFrQjtJQUc3QixPQUFPLENBQVM7SUFDaEIsUUFBUSxDQUFTO0lBQ2pCLEtBQUssQ0FBUztJQUNkLFdBQVcsQ0FBcUI7SUFDaEMsVUFBVSxDQUFnQjtJQUMxQixPQUFPLENBQVM7SUFFMUIsWUFBWSxhQUFxQixFQUFFLGFBQXFCO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENB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Q0FBQztpQkFBTSxDQUFDO2dCQUNQLE9BQU8sRUFBRSxDQUFDO1lBQ1gsQ0FBQztRQUNGLENBQUM7UUFDRCxnRkFBZ0Y7UUFDaEYsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BR3JCO1FBQ0EsSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDZixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLFNBQVMsRUFBRSxDQUFDO2FBQ1osQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNGLENBQUM7SUFFTSxXQUFXLENBQUMsTUFBYTtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztDQVdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xyXG5cclxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcclxuXHJcbmltcG9ydCBwcm90b2J1ZiBmcm9tIFwicHJvdG9idWZqc1wiO1xyXG5cclxuY29uc3QgeyBSb290OiBQcm90b1Jvb3QgfSA9IHByb3RvYnVmO1xyXG5jb25zdCBwcm90b1Jvb3QgPSBQcm90b1Jvb3QuZnJvbUpTT04oXHJcblx0cmVxdWlyZShcIi4uLy4uLy4uL3dpdG5ldC93aXRuZXQucHJvdG8uanNvblwiKSxcclxuKTtcclxuXHJcbmltcG9ydCB0eXBlIHsgSGFzaCwgTmV0d29ya1ByaW9yaXRpZXMsIFZhbHVlVHJhbnNmZXJPdXRwdXQgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcclxuaW1wb3J0IHsgdG9IZXhTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcclxuXHJcbmltcG9ydCB0eXBlIHtcclxuXHRJSnNvblJwY1Byb3ZpZGVyLFxyXG5cdElMZWRnZXIsXHJcblx0SVRyYW5zYWN0aW9uUGF5bG9hZCxcclxuXHRJVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWcsXHJcbn0gZnJvbSBcIi4vaW50ZXJmYWNlcy5qc1wiO1xyXG5pbXBvcnQge1xyXG5cdENvaW5zLFxyXG5cdHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyxcclxuXHRUcmFuc2FjdGlvblByaW9yaXR5LFxyXG5cdHR5cGUgVXR4byxcclxufSBmcm9tIFwiLi90eXBlcy5qc1wiO1xyXG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uUGF5bG9hZDxTcGVjcz5cclxuXHRpbXBsZW1lbnRzIElUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+XHJcbntcclxuXHRwcm90ZWN0ZWQgX2NoYW5nZTogYmlnaW50O1xyXG5cdHByb3RlY3RlZCBfY292ZXJlZDogYmlnaW50O1xyXG5cdHByb3RlY3RlZCBfZmVlczogYmlnaW50O1xyXG5cdHByb3RlY3RlZCBfcHJpb3JpdGllcz86IE5ldHdvcmtQcmlvcml0aWVzO1xyXG5cdHByb3RlY3RlZCBfcHJvdG9UeXBlOiBwcm90b2J1Zi5UeXBlO1xyXG5cdHByb3RlY3RlZCBfdGFyZ2V0PzogU3BlY3M7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByb3RvVHlwZU5hbWU6IHN0cmluZywgaW5pdGlhbFRhcmdldD86IFNwZWNzKSB7XHJcblx0XHR0aGlzLl9wcm90b1R5cGUgPSBwcm90b1Jvb3QubG9va3VwVHlwZShwcm90b1R5cGVOYW1lKTtcclxuXHRcdHRoaXMuX3RhcmdldCA9IHRoaXMudmFsaWRhdGVUYXJnZXQoaW5pdGlhbFRhcmdldCk7XHJcblx0XHR0aGlzLl9jaGFuZ2UgPSAwbjtcclxuXHRcdHRoaXMuX2NvdmVyZWQgPSAwbjtcclxuXHRcdHRoaXMuX2ZlZXMgPSAwbjtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXQgYnl0ZWNvZGUoKTogVWludDhBcnJheSB8IHVuZGVmaW5lZCB7XHJcblx0XHQvLyBtYWtlIHRvUHJvdG9idWYgcmV0dXJuIFByb3RvYnVmJ3MgZGVzZXJpYWxpemVkIG1lc3NhZ2VcclxuXHRcdGNvbnN0IG9iaiA9IHRoaXMudG9Qcm90b2J1ZigpO1xyXG5cdFx0aWYgKCFvYmopIHJldHVybiB1bmRlZmluZWQ7XHJcblx0XHRjb25zdCBlcnIgPSB0aGlzLl9wcm90b1R5cGUudmVyaWZ5KG9iaik7XHJcblx0XHRpZiAoZXJyKSB7XHJcblx0XHRcdHRocm93IFR5cGVFcnJvcihlcnIpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IHRoaXMuX3Byb3RvVHlwZS5mcm9tT2JqZWN0KG9iaik7XHJcblx0XHRcdGNvbnN0IGJ5dGVjb2RlID0gdGhpcy5fcHJvdG9UeXBlLmVuY29kZShtZXNzYWdlKS5maW5pc2goKTtcclxuXHRcdFx0cmV0dXJuIGJ5dGVjb2RlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBjaGFuZ2UoKTogQ29pbnMgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NoYW5nZSA+IDAgPyBDb2lucy5mcm9tUGVkcm9zKHRoaXMuX2NoYW5nZSkgOiB1bmRlZmluZWQ7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IGNvdmVyZWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gISF0aGlzLmZlZXMgJiYgdGhpcy5fY292ZXJlZCA+PSB0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuZmVlcy5wZWRyb3M7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IGZlZXMoKTogQ29pbnMgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2ZlZXMgPiAwID8gQ29pbnMuZnJvbVBlZHJvcyh0aGlzLl9mZWVzKSA6IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXQgaGFzaCgpOiBIYXNoIHwgdW5kZWZpbmVkIHtcclxuXHRcdGNvbnN0IF9ieXRlY29kZSA9IHRoaXMuYnl0ZWNvZGU7XHJcblx0XHRpZiAoX2J5dGVjb2RlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xyXG5cdFx0XHRyZXR1cm4gdG9IZXhTdHJpbmcoc2hhMjU2KF9ieXRlY29kZSkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBpbnRvUmVjZWlwdCh0YXJnZXQ6IFNwZWNzKTogYW55IHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdC4uLnRhcmdldCxcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRhYnN0cmFjdCBjb25zdW1lVXR4b3MobGVkZ2VyOiBJTGVkZ2VyKTogUHJvbWlzZTxiaWdpbnQ+O1xyXG5cdGFic3RyYWN0IHByZXBhcmVPdXRwdXRzKFxyXG5cdFx0Y2hhbmdlPzogeyB2YWx1ZTogYmlnaW50OyBwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcgfSxcclxuXHRcdHBhcmFtcz86IGFueSxcclxuXHQpOiBhbnk7XHJcblx0YWJzdHJhY3QgcmVzZXRUYXJnZXQodGFyZ2V0OiBTcGVjcyk6IGFueTtcclxuXHRhYnN0cmFjdCB0b0pTT04oaHVtYW5pemU6IGJvb2xlYW4pOiBhbnk7XHJcblx0YWJzdHJhY3QgdG9Qcm90b2J1ZigpOiBhbnk7XHJcblx0YWJzdHJhY3QgdmFsaWRhdGVUYXJnZXQodGFyZ2V0PzogYW55KTogU3BlY3MgfCB1bmRlZmluZWQ7XHJcblxyXG5cdGFic3RyYWN0IGdldCBvdXRwdXRzKCk6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+O1xyXG5cdGFic3RyYWN0IGdldCBtYXhXZWlnaHQoKTogbnVtYmVyO1xyXG5cdGFic3RyYWN0IGdldCBwcmVwYXJlZCgpOiBib29sZWFuO1xyXG5cdGFic3RyYWN0IGdldCB2YWx1ZSgpOiBDb2lucztcclxuXHRhYnN0cmFjdCBnZXQgd2VpZ2h0KCk6IG51bWJlcjtcclxuXHJcblx0cHJvdGVjdGVkIGFic3RyYWN0IF9jbGVhblRhcmdldEV4dHJhcyhwYXJhbXM/OiBhbnkpOiBhbnk7XHJcblx0cHJvdGVjdGVkIGFic3RyYWN0IF9lc3RpbWF0ZU5ldHdvcmtGZWVzKFxyXG5cdFx0cHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsXHJcblx0XHRwcmlvcml0eT86IFRyYW5zYWN0aW9uUHJpb3JpdHksXHJcblx0KTogUHJvbWlzZTxiaWdpbnQ+O1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8U3BlY3M+XHJcblx0ZXh0ZW5kcyBUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+XHJcblx0aW1wbGVtZW50cyBJVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8U3BlY3M+XHJcbntcclxuXHRwcm90ZWN0ZWQgX2lucHV0czogQXJyYXk8VXR4bz47XHJcblx0cHJvdGVjdGVkIF9vdXRwdXRzOiBBcnJheTxWYWx1ZVRyYW5zZmVyT3V0cHV0PjtcclxuXHJcblx0Y29uc3RydWN0b3IocHJvdG9UeXBlTmFtZTogc3RyaW5nLCBpbml0aWFsVGFyZ2V0PzogU3BlY3MpIHtcclxuXHRcdHN1cGVyKHByb3RvVHlwZU5hbWUsIGluaXRpYWxUYXJnZXQpO1xyXG5cdFx0dGhpcy5faW5wdXRzID0gW107XHJcblx0XHR0aGlzLl9vdXRwdXRzID0gW107XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IGlucHV0cygpOiBBcnJheTxVdHhvPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5faW5wdXRzO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBvdXRwdXRzKCk6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+IHtcclxuXHRcdHJldHVybiB0aGlzLl9vdXRwdXRzO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBwcmVwYXJlZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLl9pbnB1dHMubGVuZ3RoID4gMCAmJiB0aGlzLl9vdXRwdXRzLmxlbmd0aCA+IDA7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgYXN5bmMgY29uc3VtZVV0eG9zKFxyXG5cdFx0bGVkZ2VyOiBJTGVkZ2VyLFxyXG5cdFx0cmVsb2FkPzogYm9vbGVhbixcclxuXHQpOiBQcm9taXNlPGJpZ2ludD4ge1xyXG5cdFx0aWYgKCF0aGlzLl90YXJnZXQpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxyXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiBubyBpbi1mbGlnaHQgcGFyYW1zLmAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRjb25zdCBwcmVwYXJlZCA9IHRoaXMucHJlcGFyZWQ7XHJcblx0XHRpZiAoIXRoaXMuY292ZXJlZCkge1xyXG5cdFx0XHQvLyBjb25zdW1lIHV0eG9zIGFzIHRvIGNvdmVyIHRoaXMudmFsdWUsIGF0IGxlYXN0XHJcblx0XHRcdGNvbnN0IHV0eG9zID0gYXdhaXQgbGVkZ2VyLnNlbGVjdFV0eG9zKHtcclxuXHRcdFx0XHR2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh0aGlzLnZhbHVlLnBlZHJvcyAtIHRoaXMuX2NvdmVyZWQpLFxyXG5cdFx0XHRcdHJlbG9hZCxcclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMuX2NvdmVyZWQgKz0gdXR4b3NcclxuXHRcdFx0XHQubWFwKCh1dHhvKSA9PiB1dHhvLnZhbHVlKVxyXG5cdFx0XHRcdC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHByZXYgKyBjdXJyLCAwbik7XHJcblx0XHRcdHRoaXMuX2lucHV0cy5wdXNoKC4uLnV0eG9zKTtcclxuXHRcdFx0bGVkZ2VyLmNvbnN1bWVVdHhvcyguLi51dHhvcyk7XHJcblxyXG5cdFx0XHQvLyB0cnkgdG8gY292ZXIgZmVlcyBvbmx5IGlmIHRoaXMudmFsdWUgaXMgY292ZXJlZCBmaXJzdFxyXG5cdFx0XHRpZiAodGhpcy5fY292ZXJlZCA+PSB0aGlzLnZhbHVlLnBlZHJvcykge1xyXG5cdFx0XHRcdGlmICgodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgaW5zdGFuY2VvZiBDb2lucykge1xyXG5cdFx0XHRcdFx0dGhpcy5fZmVlcyA9ICh0aGlzLl90YXJnZXQgYXMgYW55KS5mZWVzLnBlZHJvcztcclxuXHRcdFx0XHRcdGlmICh0aGlzLl9jb3ZlcmVkIDwgdGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGV4dHJhcyA9IGF3YWl0IGxlZGdlci5zZWxlY3RVdHhvcyh7XHJcblx0XHRcdFx0XHRcdFx0dmFsdWU6IENvaW5zLmZyb21QZWRyb3MoXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkLFxyXG5cdFx0XHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRsZWRnZXIuY29uc3VtZVV0eG9zKC4uLmV4dHJhcyk7XHJcblx0XHRcdFx0XHRcdHRoaXMuX2NvdmVyZWQgKz0gZXh0cmFzXHJcblx0XHRcdFx0XHRcdFx0Lm1hcCgodXR4bykgPT4gdXR4by52YWx1ZSlcclxuXHRcdFx0XHRcdFx0XHQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3VyciwgMG4pO1xyXG5cdFx0XHRcdFx0XHR0aGlzLl9pbnB1dHMucHVzaCguLi5leHRyYXMpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhpcy5fY2hhbmdlID0gdGhpcy5fY292ZXJlZCAtICh0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zdCBwcmlvcml0eSA9XHJcblx0XHRcdFx0XHRcdCgodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgYXMgVHJhbnNhY3Rpb25Qcmlvcml0eSkgfHxcclxuXHRcdFx0XHRcdFx0VHJhbnNhY3Rpb25Qcmlvcml0eS5PcHVsZW50O1xyXG5cdFx0XHRcdFx0bGV0IGVzdGltYXRlZEZlZXMgPSBhd2FpdCB0aGlzLl9lc3RpbWF0ZU5ldHdvcmtGZWVzKFxyXG5cdFx0XHRcdFx0XHRsZWRnZXIucHJvdmlkZXIsXHJcblx0XHRcdFx0XHRcdHByaW9yaXR5LFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdHdoaWxlICh0aGlzLl9mZWVzIDwgZXN0aW1hdGVkRmVlcykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLl9mZWVzID0gZXN0aW1hdGVkRmVlcztcclxuXHRcdFx0XHRcdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xyXG5cdFx0XHRcdFx0XHQvLyBhZGQgbW9yZSB1dHhvcyBvbmx5IGlmIHRoZSBvbmVzIHNlbGVjdGVkIGZvciBjb3ZlcmluZyB0aGUgdmFsdWUgYW5kIHRoZSBlc3RpbWF0ZSBmZWVzIGRvbid0IHN1ZmZpY2U6XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLl9jb3ZlcmVkIDwgdGhpcy52YWx1ZS5wZWRyb3MgKyB0aGlzLl9mZWVzKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgZXh0cmFzID0gYXdhaXQgbGVkZ2VyLnNlbGVjdFV0eG9zKHtcclxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBDb2lucy5mcm9tUGVkcm9zKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkLFxyXG5cdFx0XHRcdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRsZWRnZXIuY29uc3VtZVV0eG9zKC4uLmV4dHJhcyk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5fY292ZXJlZCArPSBleHRyYXNcclxuXHRcdFx0XHRcdFx0XHRcdC5tYXAoKHV0eG8pID0+IHV0eG8udmFsdWUpXHJcblx0XHRcdFx0XHRcdFx0XHQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3VyciwgMG4pO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuX2lucHV0cy5wdXNoKC4uLmV4dHJhcyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5fY2hhbmdlID0gdGhpcy5fY292ZXJlZCAtICh0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMpO1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5fY2hhbmdlIDwgMCkge1xyXG5cdFx0XHRcdFx0XHRcdC8vIGluc3VmZmljaWVudCBmdW5kcyAuLi5cclxuXHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnByZXBhcmVPdXRwdXRzKHtcclxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlOiB0aGlzLl9jaGFuZ2UsXHJcblx0XHRcdFx0XHRcdFx0XHRwa2g6IGxlZGdlci5jaGFuZ2VQa2gsXHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0Ly8gaXRlcmF0ZSB1bnRpbCBhY3R1YWwgZmVlcyBtYXRjaCBlc3RpbWF0ZWQgZmVlc1xyXG5cdFx0XHRcdFx0XHRcdGVzdGltYXRlZEZlZXMgPSBhd2FpdCB0aGlzLl9lc3RpbWF0ZU5ldHdvcmtGZWVzKFxyXG5cdFx0XHRcdFx0XHRcdFx0bGVkZ2VyLnByb3ZpZGVyLFxyXG5cdFx0XHRcdFx0XHRcdFx0cHJpb3JpdHksXHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRyZXR1cm4gMG47XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC8vIHByZXBhcmUgb3V0cHV0cywgb25seSBpZiB2YWx1ZSBhbmQgZmVlcyBnb3QgZnVsbHkgY292ZXJlZCBmb3IgdGhlIGZpcnN0IHRpbWU6XHJcblx0XHRpZiAodGhpcy5fY2hhbmdlID49IDAgJiYgIXByZXBhcmVkKSB7XHJcblx0XHRcdHRoaXMucHJlcGFyZU91dHB1dHMoeyB2YWx1ZTogdGhpcy5fY2hhbmdlLCBwa2g6IGxlZGdlci5jaGFuZ2VQa2ggfSk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGhpcy5fY2hhbmdlO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHByZXBhcmVPdXRwdXRzKGNoYW5nZT86IHtcclxuXHRcdHZhbHVlOiBiaWdpbnQ7XHJcblx0XHRwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmc7XHJcblx0fSk6IGFueSB7XHJcblx0XHRpZiAoY2hhbmdlPy52YWx1ZSkge1xyXG5cdFx0XHR0aGlzLl9vdXRwdXRzLnB1c2goe1xyXG5cdFx0XHRcdHBraDogY2hhbmdlLnBraCxcclxuXHRcdFx0XHR2YWx1ZTogY2hhbmdlLnZhbHVlLFxyXG5cdFx0XHRcdHRpbWVfbG9jazogMCxcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVzZXRUYXJnZXQodGFyZ2V0OiBTcGVjcyk6IGFueSB7XHJcblx0XHR0aGlzLl9jaGFuZ2UgPSAwbjtcclxuXHRcdHRoaXMuX2NvdmVyZWQgPSAwbjtcclxuXHRcdHRoaXMuX2ZlZXMgPSAwbjtcclxuXHRcdHRoaXMuX2lucHV0cyA9IFtdO1xyXG5cdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xyXG5cdFx0dGhpcy5fdGFyZ2V0ID0gdGFyZ2V0O1xyXG5cdFx0ZGVsZXRlIHRoaXMuX3ByaW9yaXRpZXM7XHJcblx0fVxyXG5cclxuXHRhYnN0cmFjdCB0b0pTT04oaHVtYW5pemU6IGJvb2xlYW4pOiBhbnk7XHJcblx0YWJzdHJhY3QgdG9Qcm90b2J1ZigpOiBhbnk7XHJcblx0YWJzdHJhY3QgdmFsaWRhdGVUYXJnZXQodGFyZ2V0PzogYW55KTogU3BlY3MgfCB1bmRlZmluZWQ7XHJcblxyXG5cdGFic3RyYWN0IGdldCBtYXhXZWlnaHQoKTogbnVtYmVyO1xyXG5cdGFic3RyYWN0IGdldCB2YWx1ZSgpOiBDb2lucztcclxuXHRhYnN0cmFjdCBnZXQgd2VpZ2h0KCk6IG51bWJlcjtcclxuXHJcblx0cHJvdGVjdGVkIGFic3RyYWN0IF9jbGVhblRhcmdldEV4dHJhcyhwYXJhbXM/OiBhbnkpOiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Balance, HexString, Network, QueryStakesOrder, StakeEntry } from "../types";
|
|
2
|
-
import { IBIP32, IJsonRpcProvider, ISigner } from "./interfaces";
|
|
3
|
-
import { Coins, KeyedSignature, PublicKey, PublicKeyHashString, Utxo, UtxoCacheInfo, UtxoSelectionStrategy } from "./types";
|
|
1
|
+
import type { Balance, HexString, Network, QueryStakesOrder, StakeEntry } from "../types.js";
|
|
2
|
+
import type { IBIP32, IJsonRpcProvider, ISigner } from "./interfaces.js";
|
|
3
|
+
import { type Coins, type KeyedSignature, PublicKey, type PublicKeyHashString, type Utxo, type UtxoCacheInfo, UtxoSelectionStrategy } from "./types.js";
|
|
4
4
|
export declare class Signer implements ISigner {
|
|
5
5
|
protected node: IBIP32;
|
|
6
6
|
protected utxos: Array<Utxo>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/signer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/signer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,OAAO,EACP,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACN,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,mBAAmB,EAExB,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAGpB,qBAAa,MAAO,YAAW,OAAO;IACrC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAM;IAClC,OAAO,CAAC,YAAY,CAAU;IAE9B,SAAgB,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,EAAE,qBAAqB,CAAC;gBAGtC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,CAAC,EAAE,qBAAqB;IAcjC,IAAW,SAAS,IAAI,aAAa,CAepC;IAED,IAAW,SAAS,IAAI,mBAAmB,CAE1C;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,GAAG,IAAI,mBAAmB,CAEpC;IAED,IAAW,SAAS,IAAI,SAAS,CAEhC;IAED,IAAW,UAAU,IAAI,SAAS,CAEjC;IAEM,QAAQ,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;QACvC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACtB;IAuBM,YAAY,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IAe1C,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,aAAa,CACzB,KAAK,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAOtB,SAAS,CAAC,GAAG,CAAC,EAAE,mBAAmB,GAAG,OAAO,GAAG,SAAS;IAInD,QAAQ,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAW9C,WAAW,CAAC,KAAK,CAAC,EAAE;QAChC,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;KACjC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAajB,mBAAmB,CAAC,UAAU,EAAE,SAAS,GAAG,GAAG;IAYzC,kBAAkB,CAC9B,SAAS,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAWX,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc;IAsCnC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,EAAE,SAAS,CAAC;KACrB;CAeD"}
|