@witnet/sdk 1.2.7 → 3.0.0
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 +18 -18
- package/LICENSE +21 -21
- package/README.md +116 -116
- package/dist/package.json +14 -3
- package/dist/src/bin/helpers.d.ts.map +1 -1
- package/dist/src/bin/helpers.js +22 -54
- package/dist/src/lib/crypto/account.d.ts.map +1 -1
- package/dist/src/lib/crypto/account.js +3 -9
- package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
- package/dist/src/lib/crypto/coinbase.js +2 -2
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
- package/dist/src/lib/crypto/interfaces.js +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +4 -6
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +20 -71
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/StakePayload.js +4 -9
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +4 -7
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +4 -9
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads.js +6 -13
- package/dist/src/lib/crypto/signer.d.ts.map +1 -1
- package/dist/src/lib/crypto/signer.js +2 -2
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +2 -2
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +2 -2
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +2 -2
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +2 -2
- package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters.js +22 -31
- package/dist/src/lib/crypto/types.d.ts.map +1 -1
- package/dist/src/lib/crypto/types.js +6 -13
- package/dist/src/lib/crypto/utils.d.ts.map +1 -1
- package/dist/src/lib/crypto/utils.js +5 -9
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
- package/dist/src/lib/crypto/wallet.js +9 -23
- package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +12 -32
- package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +3 -6
- package/dist/src/lib/radon/index.d.ts.map +1 -1
- package/dist/src/lib/radon/index.js +18 -41
- package/dist/src/lib/radon/reducers.js +2 -2
- package/dist/src/lib/radon/types.d.ts.map +1 -1
- package/dist/src/lib/radon/types.js +6 -32
- package/dist/src/lib/radon/utils.d.ts +1 -1
- package/dist/src/lib/radon/utils.d.ts.map +1 -1
- package/dist/src/lib/radon/utils.js +3 -6
- package/dist/src/lib/rest/kermit.d.ts.map +1 -1
- package/dist/src/lib/rest/kermit.js +1 -1
- package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
- package/dist/src/lib/rpc/nodes.js +8 -28
- package/dist/src/lib/rpc/provider.d.ts.map +1 -1
- package/dist/src/lib/rpc/provider.js +16 -38
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +1 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +2 -5
- package/dist/witnet/assets/index.cjs +1 -1
- package/dist/witnet/assets/modals/index.cjs +1 -1
- package/dist/witnet/assets/modals/web3/eth.cjs +2 -2
- package/dist/witnet/assets/modals/web3/ipfs.cjs +2 -2
- package/dist/witnet/assets/modals/web3/wit.cjs +4 -11
- package/dist/witnet/assets/requests.cjs +3 -11
- package/package.json +7 -3
- package/src/bin/bots/watcher.cjs +27 -93
- package/src/bin/cli/inspect.js +30 -119
- package/src/bin/cli/network.js +46 -202
- package/src/bin/cli/nodes.js +12 -58
- package/src/bin/cli/radon.js +80 -265
- package/src/bin/cli/wallet.js +69 -241
- package/src/bin/helpers.js +56 -162
- package/src/bin/index.js +21 -51
- package/witnet/assets/_index.cjs +5 -5
- package/witnet/assets/_requests.cjs +25 -25
- package/witnet/assets/_sources.cjs +36 -36
- package/witnet/assets/_templates.cjs +36 -36
- package/witnet/assets/index.cjs +4 -4
- package/witnet/assets/modals/index.cjs +7 -7
- package/witnet/assets/modals/web3/eth.cjs +22 -27
- package/witnet/assets/modals/web3/ipfs.cjs +17 -22
- package/witnet/assets/modals/web3/wit.cjs +16 -28
- package/witnet/assets/requests.cjs +41 -49
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGjF,qBAAa,KAAK;IACjB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;WACV,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;WAGpC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK;WAGrC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;WAGjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;WAQ7B,IAAI,IAAI,KAAK;gBAGf,MAAM,EAAE,MAAM;IAG1B,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,IAAI,IAAI,MAAM,CASxB;IACM,QAAQ,CAAC,QAAQ,SAAI,GAAG,MAAM;CAGrC;AAED,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE;QAAE,SAAS,EAAE;YAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IACjD,UAAU,EAAE;QACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE5C,UAAU,GAAG;IACZ,KAAK,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,UAAW,SAAQ,GAAG;IACtC,IAAI,EAAE,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,SAAU,SAAQ,GAAG;IACrC,IAAI,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;CACnC,CAAC;AAEF,oBAAY,mBAAmB;IAC9B,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IACxD,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;AAEnH,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG;IAE3B,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAEzB,cAAc,EAAE,IAAI,CAAC;IAErB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,qBAAqB;IAChC,QAAQ,cAAc;IACtB,MAAM,WAAW;IACjB,OAAO,aAAa;IACpB,UAAU,gBAAgB;CAC1B;AAMD,qBAAa,SAAU,YAAW,GAAG;IACpC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,UAAU,CAAC;IAElC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS;IAItF,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS;IAIxD,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS;gBAkBpD,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAK1C,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAIlC,IAAI,IAAI,aAAa;IAIrB,WAAW,IAAI,MAAM;IAIrB,YAAY,IAAI,UAAU;CAGjC;AAGD,qBAAa,aAAa;IACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa;IAIhD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa;IAIpD,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,aAAa;IAIlD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAe7C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEd,KAAK,EAAE,MAAM,EAAE;IAIpB,QAAQ,CAAC,OAAO,SAAY,GAAG,MAAM;IAIrC,SAAS,IAAI,UAAU;IAIvB,SAAS,IAAI,UAAU;IAIvB,WAAW,IAAI,MAAM;CAG5B;AAGD,qBAAa,SAAS;IACrB,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAI5C,SAAgB,KAAK,EAAE,UAAU,CAAC;gBAEtB,KAAK,EAAE,UAAU;IAItB,WAAW,IAAI,MAAM;CAG5B;AAGD,qBAAa,oBAAqB,SAAQ,SAAS;IAClD,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,oBAAoB;IAiBpE,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,GAAG,oBAAoB;IAQpF,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU;IAgB1D,WAAW,CAAC,QAAQ,UAAQ,GAAG,MAAM;IAIrC,gBAAgB,IAAI,GAAG;IAYvB,UAAU,IAAI,GAAG;CAUxB;AAID,uBAAe,gBAAiB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBACzB,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM;CAIzD;AACD,qBAAa,YAAa,SAAQ,gBAAgB;CAAG;AAErD,qBAAa,YAAa,SAAQ,gBAAgB;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACX,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM;CAIxE;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;gBACpB,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,GAAG;CAM/C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { bech32 } from "bech32";
|
|
2
2
|
import secp256k1 from "secp256k1";
|
|
3
|
-
import { fromHexString, isHexString, toHexString, whole_wits
|
|
3
|
+
import { fromHexString, isHexString, toHexString, whole_wits } from "../../bin/helpers.js";
|
|
4
4
|
import { sha256 } from "./utils.js";
|
|
5
5
|
export class Coins {
|
|
6
6
|
coins;
|
|
@@ -17,8 +17,7 @@ export class Coins {
|
|
|
17
17
|
if (wits > Number.MAX_SAFE_INTEGER) {
|
|
18
18
|
throw new TypeError(`${Coins.constructor.name}: internal error: too many wits: ${wits} > ${Number.MAX_SAFE_INTEGER}`);
|
|
19
19
|
}
|
|
20
|
-
return new Coins(BigInt(Math.floor(wits)) * 10n ** 9n +
|
|
21
|
-
BigInt(Math.floor((wits - Math.floor(wits)) * 1000000000)));
|
|
20
|
+
return new Coins(BigInt(Math.floor(wits)) * 10n ** 9n + BigInt(Math.floor((wits - Math.floor(wits)) * 1000000000)));
|
|
22
21
|
}
|
|
23
22
|
static zero() {
|
|
24
23
|
return new Coins(0n);
|
|
@@ -96,8 +95,7 @@ export class PublicKey {
|
|
|
96
95
|
this.bytes = bytes;
|
|
97
96
|
}
|
|
98
97
|
equals(pubKey) {
|
|
99
|
-
return
|
|
100
|
-
matchingUint8Arrays(pubKey.bytes, pubKey.bytes));
|
|
98
|
+
return pubKey.compressed === this.compressed && matchingUint8Arrays(pubKey.bytes, pubKey.bytes);
|
|
101
99
|
}
|
|
102
100
|
hash() {
|
|
103
101
|
return PublicKeyHash.fromPublicKey(this);
|
|
@@ -142,18 +140,13 @@ export class PublicKeyHash {
|
|
|
142
140
|
this.words = words;
|
|
143
141
|
}
|
|
144
142
|
toBech32(network = "mainnet") {
|
|
145
|
-
return network === "mainnet"
|
|
146
|
-
? bech32.encode("wit", this.words, 66)
|
|
147
|
-
: bech32.encode("twit", this.words, 67);
|
|
143
|
+
return network === "mainnet" ? bech32.encode("wit", this.words, 66) : bech32.encode("twit", this.words, 67);
|
|
148
144
|
}
|
|
149
145
|
toBytes20() {
|
|
150
146
|
return Uint8Array.from(bech32.fromWords(this.words).slice(0, 20));
|
|
151
147
|
}
|
|
152
148
|
toBytes32() {
|
|
153
|
-
return Uint8Array.from([
|
|
154
|
-
...bech32.fromWords(this.words).slice(0, 20),
|
|
155
|
-
...new Array(12).fill(0),
|
|
156
|
-
]);
|
|
149
|
+
return Uint8Array.from([...bech32.fromWords(this.words).slice(0, 20), ...new Array(12).fill(0)]);
|
|
157
150
|
}
|
|
158
151
|
toHexString() {
|
|
159
152
|
return toHexString(this.toBytes20());
|
|
@@ -273,4 +266,4 @@ export class TransmissionError extends Error {
|
|
|
273
266
|
function matchingUint8Arrays(a, b) {
|
|
274
267
|
return a.length === b.length && a.every((value, index) => value === b[index]);
|
|
275
268
|
}
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDWCxXQUFXLEVBQ1gsVUFBVSxHQUNWLE1BQU0sc0JBQXNCLENBQUM7QUFROUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLE9BQU8sS0FBSztJQUNQLEtBQUssQ0FBUztJQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdCO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWdCO1FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYztRQUN0QyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDbEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLFNBQVMsQ0FDbEIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksb0NBQW9DLElBQUksTUFBTSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEcsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksS0FBSyxDQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUks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O0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiZWNoMzIgfSBmcm9tIFwiYmVjaDMyXCI7XG5pbXBvcnQgc2VjcDI1NmsxIGZyb20gXCJzZWNwMjU2azFcIjtcbmltcG9ydCB7XG5cdGZyb21IZXhTdHJpbmcsXG5cdGlzSGV4U3RyaW5nLFxuXHR0b0hleFN0cmluZyxcblx0d2hvbGVfd2l0cyxcbn0gZnJvbSBcIi4uLy4uL2Jpbi9oZWxwZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEJhbGFuY2UsXG5cdEVwb2NoLFxuXHRIYXNoLFxuXHRIZXhTdHJpbmcsXG5cdFV0eG9NZXRhZGF0YSxcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgQ29pbnMge1xuXHRwcm90ZWN0ZWQgY29pbnM6IGJpZ2ludDtcblx0cHVibGljIHN0YXRpYyBmcm9tQmFsYW5jZShiYWxhbmNlOiBCYWxhbmNlKTogQ29pbnMge1xuXHRcdHJldHVybiBDb2lucy5mcm9tUGVkcm9zKGJhbGFuY2UubG9ja2VkICsgYmFsYW5jZS5zdGFrZWQgKyBiYWxhbmNlLnVubG9ja2VkKTtcblx0fVxuXHRwdWJsaWMgc3RhdGljIGZyb21OYW5vd2l0cyhuYW5vd2l0czogYmlnaW50KTogQ29pbnMge1xuXHRcdHJldHVybiBuZXcgQ29pbnMobmFub3dpdHMpO1xuXHR9XG5cdHB1YmxpYyBzdGF0aWMgZnJvbVBlZHJvcyhwZWRyb3M6IGJpZ2ludCk6IENvaW5zIHtcblx0XHRyZXR1cm4gbmV3IENvaW5zKHBlZHJvcyk7XG5cdH1cblx0cHVibGljIHN0YXRpYyBmcm9tV2l0cyh3aXRzOiBudW1iZXIpOiBDb2lucyB7XG5cdFx0aWYgKHdpdHMgPiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7Q29pbnMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiB0b28gbWFueSB3aXRzOiAke3dpdHN9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIG5ldyBDb2lucyhcblx0XHRcdEJpZ0ludChNYXRoLmZsb29yKHdpdHMpKSAqIDEwbiAqKiA5biArXG5cdFx0XHRcdEJpZ0ludChNYXRoLmZsb29yKCh3aXRzIC0gTWF0aC5mbG9vcih3aXRzKSkgKiAxMDAwMDAwMDAwKSksXG5cdFx0KTtcblx0fVxuXHRwdWJsaWMgc3RhdGljIHplcm8oKTogQ29pbnMge1xuXHRcdHJldHVybiBuZXcgQ29pbnMoMG4pO1xuXHR9XG5cdGNvbnN0cnVjdG9yKHBlZHJvczogYmlnaW50KSB7XG5cdFx0dGhpcy5jb2lucyA9IHBlZHJvcztcblx0fVxuXHRwdWJsaWMgZ2V0IHBlZHJvcygpOiBiaWdpbnQge1xuXHRcdHJldHVybiB0aGlzLmNvaW5zO1xuXHR9XG5cdHB1YmxpYyBnZXQgbmFub3dpdHMoKTogYmlnaW50IHtcblx0XHRyZXR1cm4gdGhpcy5jb2lucztcblx0fVxuXHRwdWJsaWMgZ2V0IHdpdHMoKTogbnVtYmVyIHtcblx0XHRjb25zdCBxdW90aWVudCA9IEJpZ0ludCh0aGlzLmNvaW5zKSAvIDEwMDAwMDAwMDBuO1xuXHRcdGlmIChOdW1iZXIocXVvdGllbnQpID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiB0b28gbWFueSBjb2luczogJHtxdW90aWVudC50b1N0cmluZygpfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGNvbnN0IHJlc3QgPVxuXHRcdFx0TnVtYmVyKEJpZ0ludCh0aGlzLmNvaW5zKSAtIHF1b3RpZW50ICogMTAwMDAwMDAwMG4pIC8gMTAwMDAwMDAwMDtcblx0XHRyZXR1cm4gTnVtYmVyKHF1b3RpZW50KSArIHJlc3Q7XG5cdH1cblx0cHVibGljIHRvU3RyaW5nKGRlY2ltYWxzID0gOSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHdob2xlX3dpdHModGhpcy5jb2lucywgZGVjaW1hbHMpO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIEtleVBhdGggPSBBcnJheTxudW1iZXI+O1xuXG5leHBvcnQgdHlwZSBLZXllZFNpZ25hdHVyZSA9IHtcblx0c2lnbmF0dXJlOiB7IFNlY3AyNTZrMTogeyBkZXI6IEFycmF5PG51bWJlcj4gfSB9O1xuXHRwdWJsaWNfa2V5OiB7XG5cdFx0Ynl0ZXM6IEFycmF5PG51bWJlcj47XG5cdFx0Y29tcHJlc3NlZDogbnVtYmVyO1xuXHR9O1xufTtcblxuZXhwb3J0IHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyA9IEhleFN0cmluZztcblxuaW50ZXJmYWNlIEtleSB7XG5cdGJ5dGVzOiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVLZXkgZXh0ZW5kcyBLZXkge1xuXHR0eXBlOiBcInByaXZhdGVcIjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkgZXh0ZW5kcyBLZXkge1xuXHR0eXBlOiBcInB1YmxpY1wiO1xufVxuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkNhbGxiYWNrID0gKFxuXHRyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsXG5cdGVycm9yPzogYW55LFxuKSA9PiBhbnk7XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zID0ge1xuXHRkZWFkbGluZT86IEVwb2NoO1xuXHRmZWVzPzogVHJhbnNhY3Rpb25Qcmlvcml0eSB8IENvaW5zO1xufTtcblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25Qcmlvcml0eSB7XG5cdFN0aW5reSA9IFwic3Rpbmt5XCIsXG5cdExvdyA9IFwibG93XCIsXG5cdE1lZGl1bSA9IFwibWVkaXVtXCIsXG5cdEhpZ2ggPSBcImhpZ2hcIixcblx0T3B1bGVudCA9IFwib3B1bGVudFwiLFxufVxuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvblJlY2VpcHQgPSB7XG5cdGF1dGhvcml6YXRpb24/OiBIZXhTdHJpbmc7XG5cdGJsb2NrRXBvY2g/OiBFcG9jaDtcblx0YmxvY2tIYXNoPzogSGFzaDtcblx0YmxvY2tNaW5lcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdGJsb2NrVGltZXN0YW1wPzogbnVtYmVyO1xuXHRjb25maXJtYXRpb25zPzogbnVtYmVyO1xuXHRjaGFuZ2U/OiBDb2lucztcblx0ZHJvSGFzaD86IEhhc2g7XG5cdGVycm9yPzogRXJyb3I7XG5cdGZlZXM6IENvaW5zO1xuXHRmcm9tPzogQXJyYXk8UHVibGljS2V5SGFzaFN0cmluZz4gfCBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRoYXNoOiBIYXNoO1xuXHRvdXRwdXRMb2NrPzogbnVtYmVyO1xuXHRyYWRBcmdzPzogYW55O1xuXHRyYWRIYXNoPzogSGV4U3RyaW5nO1xuXHRyZWNpcGllbnRzPzogQXJyYXk8W1B1YmxpY0tleUhhc2hTdHJpbmcsIENvaW5zXT47XG5cdHN0YXR1czogc3RyaW5nO1xuXHR0aW1lc3RhbXA6IG51bWJlcjtcblx0dHlwZTogc3RyaW5nO1xuXHR0eD86IGFueTtcblx0dmFsaWRhdG9yPzogUHVibGljS2V5SGFzaFN0cmluZztcblx0dmFsdWU/OiBDb2lucztcblx0d2VpZ2h0OiBudW1iZXI7XG5cdHdpdGhkcmF3ZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHR3aXRuZXNzZXM/OiBudW1iZXIgfCBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQ29pbnM+O1xufTtcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0dXMgPVxuXHR8IFwic2lnbmVkXCJcblx0fCBcInBlbmRpbmdcIlxuXHR8IFwicmVsYXllZFwiXG5cdHwgXCJyZW1vdmVkXCJcblx0fCBcIm1pbmVkXCJcblx0fCBcImNvbmZpcm1lZFwiXG5cdHwgXCJmaW5hbGl6ZWRcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNtaXNzaW9uID0ge1xuXHRieXRlY29kZT86IFVpbnQ4QXJyYXk7XG5cdGhhc2g/OiBIYXNoO1xuXHRtZXNzYWdlOiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBVdHhvID0gVXR4b01ldGFkYXRhICYgeyBzaWduZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgVXR4b0NhY2hlSW5mbyA9IHtcblx0Ly8gdG90YWwgYW1vdW50IG9mIGV4cGVuZGFibGUgZnVuZHMgd2l0aCBjdXJyZW50bHkgY2FjaGVkIFVUWE9zXG5cdGV4cGVuZGFibGU6IGJpZ2ludDtcblx0Ly8gbnVtYmVyIG9mIGNhY2hlZCBVVFhPc1xuXHRzaXplOiBudW1iZXI7XG5cdC8vIGVhcmxpZXN0IG9mIGFsbCB0aW1lbG9ja3MgaW4gdGhlIGNhY2jDqVxuXHR0aW1lbG9jazogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgVXR4b1BvaW50ZXIgPSB7XG5cdC8vIHRyYW5zYWN0aW9uIGlkZW50aWZpZXJcblx0dHJhbnNhY3Rpb25faWQ6IEhhc2g7XG5cdC8vIG91dHB1dCBpbmRleCB3aXRoaW4gcmVmZXJyZWQgdHJhbnNhY3Rpb25cblx0b3V0cHV0X2luZGV4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgZW51bSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kge1xuXHRCaWdGaXJzdCA9IFwiYmlnLWZpcnN0XCIsXG5cdFJhbmRvbSA9IFwicmFuZG9tXCIsXG5cdFNsaW1GaXQgPSBcInNsaW0tZml0XCIsXG5cdFNtYWxsRmlyc3QgPSBcInNtYWxsLWZpcnN0XCIsXG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gRVhQT1JURUQgQ0xBU1NFU1xuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGNsYXNzIFB1YmxpY0tleSBpbXBsZW1lbnRzIEtleSB7XG5cdHB1YmxpYyByZWFkb25seSBjb21wcmVzc2VkOiBudW1iZXI7XG5cdHB1YmxpYyByZWFkb25seSBieXRlczogVWludDhBcnJheTtcblxuXHRzdGF0aWMgZnJvbVByb3RvYnVmKHByb3RvYnVmOiB7XG5cdFx0Y29tcHJlc3NlZDogbnVtYmVyO1xuXHRcdGJ5dGVzOiBBcnJheTxudW1iZXI+O1xuXHR9KTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleShwcm90b2J1Zi5jb21wcmVzc2VkLCBVaW50OEFycmF5LmZyb20ocHJvdG9idWYuYnl0ZXMpKTtcblx0fVxuXG5cdHN0YXRpYyBmcm9tVWludDhBcnJheSh1aW50OEFycmF5OiBVaW50OEFycmF5KTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleSh1aW50OEFycmF5WzBdLCB1aW50OEFycmF5LnNsaWNlKDEpKTtcblx0fVxuXG5cdHN0YXRpYyByZWNvdmVyRnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXkge1xuXHRcdGxldCBieXRlcztcblx0XHRpZiAoaXNIZXhTdHJpbmcocmVjb3ZlcmFibGUpKSB7XG5cdFx0XHRieXRlcyA9IGZyb21IZXhTdHJpbmcocmVjb3ZlcmFibGUpO1xuXHRcdH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcblx0XHRcdGJ5dGVzID0gVWludDhBcnJheS5mcm9tKHJlY292ZXJhYmxlLmJ1ZmZlcik7XG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcblx0XHRcdGJ5dGVzID0gcmVjb3ZlcmFibGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdGBQdWJsaWNLZXk6IHVuc3VwcG9ydGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSBmb3JtYXQ6ICR7cmVjb3ZlcmFibGV9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmIChieXRlcy5sZW5ndGggIT09IDY1KSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRgUHVibGljS2V5OiBleHBlY3RlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgd2l0aCBsZW5ndGggNjU6ICR7dG9IZXhTdHJpbmcoYnl0ZXMpfWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBbcmVjb3ZlcnlJZCwgc2lnbmF0dXJlXSA9IFtieXRlc1swXSwgYnl0ZXMuc2xpY2UoMSldO1xuXHRcdHJldHVybiBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkoXG5cdFx0XHRzZWNwMjU2azEuZWNkc2FSZWNvdmVyKHNpZ25hdHVyZSwgcmVjb3ZlcnlJZCwgbXNnKSxcblx0XHQpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoY29tcHJlc3NlZDogbnVtYmVyLCBieXRlczogVWludDhBcnJheSkge1xuXHRcdHRoaXMuY29tcHJlc3NlZCA9IGNvbXByZXNzZWQ7XG5cdFx0dGhpcy5ieXRlcyA9IGJ5dGVzO1xuXHR9XG5cblx0cHVibGljIGVxdWFscyhwdWJLZXk6IFB1YmxpY0tleSk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwdWJLZXkuY29tcHJlc3NlZCA9PT0gdGhpcy5jb21wcmVzc2VkICYmXG5cdFx0XHRtYXRjaGluZ1VpbnQ4QXJyYXlzKHB1YktleS5ieXRlcywgcHViS2V5LmJ5dGVzKVxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgaGFzaCgpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHRyZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tUHVibGljS2V5KHRoaXMpO1xuXHR9XG5cblx0cHVibGljIHRvSGV4U3RyaW5nKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKTtcblx0fVxuXG5cdHB1YmxpYyB0b1VpbnQ4QXJyYXkoKTogVWludDhBcnJheSB7XG5cdFx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbdGhpcy5jb21wcmVzc2VkLCAuLi50aGlzLmJ5dGVzXSk7XG5cdH1cbn1cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCBjbGFzcyBQdWJsaWNLZXlIYXNoIHtcblx0c3RhdGljIGZyb21IYXNoKGhhc2g6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLnRvV29yZHMoaGFzaCkpO1xuXHR9XG5cblx0c3RhdGljIGZyb21IZXhTdHJpbmcoaGFzaDogSGV4U3RyaW5nKTogUHVibGljS2V5SGFzaCB7XG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbUhhc2goZnJvbUhleFN0cmluZyhoYXNoKSk7XG5cdH1cblxuXHRzdGF0aWMgZnJvbVB1YmxpY0tleShwazogUHVibGljS2V5KTogUHVibGljS2V5SGFzaCB7XG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbUhhc2goXG5cdFx0XHRzaGEyNTYoQnVmZmVyLmZyb20oW3BrLmNvbXByZXNzZWQsIC4uLnBrLmJ5dGVzXSkpLnN1YmFycmF5KDAsIDIwKSxcblx0XHQpO1xuXHR9XG5cblx0c3RhdGljIGZyb21CZWNoMzIocGtoOiBzdHJpbmcpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHR0cnkge1xuXHRcdFx0cGtoID0gcGtoLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRpZiAocGtoLnN0YXJ0c1dpdGgoXCJ3aXRcIikpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi5kZWNvZGUocGtoLCA2Nikud29yZHMpO1xuXHRcdFx0fSBlbHNlIGlmIChwa2guc3RhcnRzV2l0aChcInR3aXRcIikpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi5kZWNvZGUocGtoLCA2Nykud29yZHMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgUHVibGljS2V5SGFzaDogaW52YWxpZCBiZWNoMzIgc3RyaW5nOiAke3BraH1gKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFB1YmxpY0tleUhhc2g6IGludmFsaWQgYmVjaDMyIHN0cmluZzogJHtwa2h9YCk7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIHdvcmRzOiBudW1iZXJbXTtcblxuXHRjb25zdHJ1Y3Rvcih3b3JkczogbnVtYmVyW10pIHtcblx0XHR0aGlzLndvcmRzID0gd29yZHM7XG5cdH1cblxuXHRwdWJsaWMgdG9CZWNoMzIobmV0d29yayA9IFwibWFpbm5ldFwiKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gbmV0d29yayA9PT0gXCJtYWlubmV0XCJcblx0XHRcdD8gYmVjaDMyLmVuY29kZShcIndpdFwiLCB0aGlzLndvcmRzLCA2Nilcblx0XHRcdDogYmVjaDMyLmVuY29kZShcInR3aXRcIiwgdGhpcy53b3JkcywgNjcpO1xuXHR9XG5cblx0cHVibGljIHRvQnl0ZXMyMCgpOiBVaW50OEFycmF5IHtcblx0XHRyZXR1cm4gVWludDhBcnJheS5mcm9tKGJlY2gzMi5mcm9tV29yZHModGhpcy53b3Jkcykuc2xpY2UoMCwgMjApKTtcblx0fVxuXG5cdHB1YmxpYyB0b0J5dGVzMzIoKTogVWludDhBcnJheSB7XG5cdFx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbXG5cdFx0XHQuLi5iZWNoMzIuZnJvbVdvcmRzKHRoaXMud29yZHMpLnNsaWNlKDAsIDIwKSxcblx0XHRcdC4uLm5ldyBBcnJheSgxMikuZmlsbCgwKSxcblx0XHRdKTtcblx0fVxuXG5cdHB1YmxpYyB0b0hleFN0cmluZygpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0b0hleFN0cmluZyh0aGlzLnRvQnl0ZXMyMCgpKTtcblx0fVxufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZSB7XG5cdHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhleDogc3RyaW5nKTogU2lnbmF0dXJlIHtcblx0XHRyZXR1cm4gbmV3IFNpZ25hdHVyZShmcm9tSGV4U3RyaW5nKGhleCkpO1xuXHR9XG5cblx0cHVibGljIHJlYWRvbmx5IGJ5dGVzOiBVaW50OEFycmF5O1xuXG5cdGNvbnN0cnVjdG9yKGJ5dGVzOiBVaW50OEFycmF5KSB7XG5cdFx0dGhpcy5ieXRlcyA9IGJ5dGVzO1xuXHR9XG5cblx0cHVibGljIHRvSGV4U3RyaW5nKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHRoaXMuYnl0ZXMpO1xuXHR9XG59XG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY2xhc3MgUmVjb3ZlcmFibGVTaWduYXR1cmUgZXh0ZW5kcyBTaWduYXR1cmUge1xuXHRzdGF0aWMgZnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XG5cdFx0bGV0IGJ5dGVzO1xuXHRcdGlmIChpc0hleFN0cmluZyhyZWNvdmVyYWJsZSkpIHtcblx0XHRcdGJ5dGVzID0gZnJvbUhleFN0cmluZyhyZWNvdmVyYWJsZSkuc2xpY2UoMSk7XG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuXHRcdFx0Ynl0ZXMgPSBVaW50OEFycmF5LmZyb20ocmVjb3ZlcmFibGUuYnVmZmVyKS5zbGljZSgxKTtcblx0XHR9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuXHRcdFx0Ynl0ZXMgPSByZWNvdmVyYWJsZS5zbGljZSgxKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YFJlY292ZXJhYmxlU2lnbmF0dXJlOiB1bnN1cHBvcnRlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgZm9ybWF0OiAke3JlY292ZXJhYmxlfWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NCkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YFJlY292ZXJhYmxlU2lnbmF0cmU6IGV4cGVjdGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSB3aXRoIGxlbmd0aCA2NTogJHt0b0hleFN0cmluZyhieXRlcyl9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBuZXcgUmVjb3ZlcmFibGVTaWduYXR1cmUoXG5cdFx0XHRQdWJsaWNLZXkucmVjb3ZlckZyb20ocmVjb3ZlcmFibGUsIG1zZyksXG5cdFx0XHRieXRlcyxcblx0XHRcdG1zZyxcblx0XHQpO1xuXHR9XG5cblx0c3RhdGljIGZyb21LZXllZFNpZ25hdHVyZShcblx0XHRrczogS2V5ZWRTaWduYXR1cmUsXG5cdFx0bXNnOiBVaW50OEFycmF5LFxuXHQpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XG5cdFx0cmV0dXJuIG5ldyBSZWNvdmVyYWJsZVNpZ25hdHVyZShcblx0XHRcdFB1YmxpY0tleS5mcm9tUHJvdG9idWYoa3MucHVibGljX2tleSksXG5cdFx0XHRzZWNwMjU2azEuc2lnbmF0dXJlSW1wb3J0KFVpbnQ4QXJyYXkuZnJvbShrcy5zaWduYXR1cmUuU2VjcDI1NmsxLmRlcikpLFxuXHRcdFx0bXNnLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZTogVWludDhBcnJheTtcblx0cHVibGljIHJlYWRvbmx5IHB1YktleTogUHVibGljS2V5O1xuXHRwdWJsaWMgcmVhZG9ubHkgcmVjb3ZlcnlJZDogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKHB1YktleTogUHVibGljS2V5LCBieXRlczogVWludDhBcnJheSwgbXNnOiBVaW50OEFycmF5KSB7XG5cdFx0c3VwZXIoYnl0ZXMpO1xuXHRcdGNvbnN0IHB1YktleVJhdyA9IHB1YktleS50b1VpbnQ4QXJyYXkoKTtcblx0XHRsZXQgcmVjb3ZlcnlJZDogbnVtYmVyO1xuXHRcdGZvciAocmVjb3ZlcnlJZCA9IDA7IHJlY292ZXJ5SWQgPCA0OyByZWNvdmVyeUlkKyspIHtcblx0XHRcdGxldCByZWNvdmVyZWQ7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZWNvdmVyZWQgPSBzZWNwMjU2azEuZWNkc2FSZWNvdmVyKGJ5dGVzLCByZWNvdmVyeUlkLCBtc2cpO1xuXHRcdFx0XHRpZiAobWF0Y2hpbmdVaW50OEFycmF5cyhyZWNvdmVyZWQsIHB1YktleVJhdykpIGJyZWFrO1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH1cblx0XHR0aGlzLm1lc3NhZ2UgPSBtc2c7XG5cdFx0dGhpcy5wdWJLZXkgPSBwdWJLZXk7XG5cdFx0dGhpcy5yZWNvdmVyeUlkID0gcmVjb3ZlcnlJZDtcblx0fVxuXG5cdHB1YmxpYyB0b0hleFN0cmluZyhwcmVmaXgweCA9IGZhbHNlKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdG9IZXhTdHJpbmcoW3RoaXMucmVjb3ZlcnlJZCwgLi4udGhpcy5ieXRlc10sIHByZWZpeDB4KTtcblx0fVxuXG5cdHB1YmxpYyB0b0tleWVkU2lnbmF0dXJlKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNpZ25hdHVyZToge1xuXHRcdFx0XHRTZWNwMjU2azE6IHsgZGVyOiBBcnJheS5mcm9tKHNlY3AyNTZrMS5zaWduYXR1cmVFeHBvcnQodGhpcy5ieXRlcykpIH0sXG5cdFx0XHR9LFxuXHRcdFx0cHVibGljX2tleToge1xuXHRcdFx0XHRieXRlczogQXJyYXkuZnJvbSh0aGlzLnB1YktleS5ieXRlcyksXG5cdFx0XHRcdGNvbXByZXNzZWQ6IHRoaXMucHViS2V5LmNvbXByZXNzZWQsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHRwdWJsaWMgdG9Qcm90b2J1ZigpOiBhbnkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzaWduYXR1cmU6IHtcblx0XHRcdFx0U2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9LFxuXHRcdFx0fSxcblx0XHRcdHB1YmxpY0tleToge1xuXHRcdFx0XHRwdWJsaWNLZXk6IEFycmF5LmZyb20oW3RoaXMucHViS2V5LmNvbXByZXNzZWQsIC4uLnRoaXMucHViS2V5LmJ5dGVzXSksXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cbn1cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25FcnJvciBleHRlbmRzIEVycm9yIHtcblx0cmVhZG9ubHkgcmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0O1xuXHRjb25zdHJ1Y3RvcihyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcblx0XHRzdXBlcihtZXNzYWdlKTtcblx0XHR0aGlzLnJlY2VpcHQgPSByZWNlaXB0O1xuXHR9XG59XG5leHBvcnQgY2xhc3MgTWVtcG9vbEVycm9yIGV4dGVuZHMgVHJhbnNhY3Rpb25FcnJvciB7fVxuXG5leHBvcnQgY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgVHJhbnNhY3Rpb25FcnJvciB7XG5cdHJlYWRvbmx5IG1zZWNzOiBudW1iZXI7XG5cdGNvbnN0cnVjdG9yKG1zZWNzOiBudW1iZXIsIHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgbWVzc2FnZT86IHN0cmluZykge1xuXHRcdHN1cGVyKHJlY2VpcHQsIG1lc3NhZ2UpO1xuXHRcdHRoaXMubXNlY3MgPSBtc2Vjcztcblx0fVxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdHJlYWRvbmx5IGVycm9yPzogYW55O1xuXHRyZWFkb25seSBpbkZsaWdodDogVHJhbnNtaXNzaW9uO1xuXHRjb25zdHJ1Y3RvcihpbkZsaWdodDogVHJhbnNtaXNzaW9uLCBlcnJvcj86IGFueSkge1xuXHRcdHN1cGVyKEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XG5cdFx0ZGVsZXRlIGVycm9yPy5zdGFjaztcblx0XHR0aGlzLmVycm9yID0gZXJyb3I7XG5cdFx0dGhpcy5pbkZsaWdodCA9IGluRmxpZ2h0O1xuXHR9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gLS0tIEludGVybmFsIGZ1bmN0aW9uc1xuXG5mdW5jdGlvbiBtYXRjaGluZ1VpbnQ4QXJyYXlzKGE6IFVpbnQ4QXJyYXksIGI6IFVpbnQ4QXJyYXkpIHtcblx0cmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBiW2luZGV4XSk7XG59XG4iXX0=
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLE9BQU8sS0FBSztJQUNQLEtBQUssQ0FBUztJQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdCO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWdCO1FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYztRQUN0QyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDbEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLFNBQVMsQ0FDbEIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksb0NBQW9DLElBQUksTUFBTSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEcsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUks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bnRlbnQiOlsiaW1wb3J0IHsgYmVjaDMyIH0gZnJvbSBcImJlY2gzMlwiO1xuaW1wb3J0IHNlY3AyNTZrMSBmcm9tIFwic2VjcDI1NmsxXCI7XG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nLCBpc0hleFN0cmluZywgdG9IZXhTdHJpbmcsIHdob2xlX3dpdHMgfSBmcm9tIFwiLi4vLi4vYmluL2hlbHBlcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgQmFsYW5jZSwgRXBvY2gsIEhhc2gsIEhleFN0cmluZywgVXR4b01ldGFkYXRhIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgQ29pbnMge1xuXHRwcm90ZWN0ZWQgY29pbnM6IGJpZ2ludDtcblx0cHVibGljIHN0YXRpYyBmcm9tQmFsYW5jZShiYWxhbmNlOiBCYWxhbmNlKTogQ29pbnMge1xuXHRcdHJldHVybiBDb2lucy5mcm9tUGVkcm9zKGJhbGFuY2UubG9ja2VkICsgYmFsYW5jZS5zdGFrZWQgKyBiYWxhbmNlLnVubG9ja2VkKTtcblx0fVxuXHRwdWJsaWMgc3RhdGljIGZyb21OYW5vd2l0cyhuYW5vd2l0czogYmlnaW50KTogQ29pbnMge1xuXHRcdHJldHVybiBuZXcgQ29pbnMobmFub3dpdHMpO1xuXHR9XG5cdHB1YmxpYyBzdGF0aWMgZnJvbVBlZHJvcyhwZWRyb3M6IGJpZ2ludCk6IENvaW5zIHtcblx0XHRyZXR1cm4gbmV3IENvaW5zKHBlZHJvcyk7XG5cdH1cblx0cHVibGljIHN0YXRpYyBmcm9tV2l0cyh3aXRzOiBudW1iZXIpOiBDb2lucyB7XG5cdFx0aWYgKHdpdHMgPiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7Q29pbnMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiB0b28gbWFueSB3aXRzOiAke3dpdHN9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIG5ldyBDb2lucyhCaWdJbnQoTWF0aC5mbG9vcih3aXRzKSkgKiAxMG4gKiogOW4gKyBCaWdJbnQoTWF0aC5mbG9vcigod2l0cyAtIE1hdGguZmxvb3Iod2l0cykpICogMTAwMDAwMDAwMCkpKTtcblx0fVxuXHRwdWJsaWMgc3RhdGljIHplcm8oKTogQ29pbnMge1xuXHRcdHJldHVybiBuZXcgQ29pbnMoMG4pO1xuXHR9XG5cdGNvbnN0cnVjdG9yKHBlZHJvczogYmlnaW50KSB7XG5cdFx0dGhpcy5jb2lucyA9IHBlZHJvcztcblx0fVxuXHRwdWJsaWMgZ2V0IHBlZHJvcygpOiBiaWdpbnQge1xuXHRcdHJldHVybiB0aGlzLmNvaW5zO1xuXHR9XG5cdHB1YmxpYyBnZXQgbmFub3dpdHMoKTogYmlnaW50IHtcblx0XHRyZXR1cm4gdGhpcy5jb2lucztcblx0fVxuXHRwdWJsaWMgZ2V0IHdpdHMoKTogbnVtYmVyIHtcblx0XHRjb25zdCBxdW90aWVudCA9IEJpZ0ludCh0aGlzLmNvaW5zKSAvIDEwMDAwMDAwMDBuO1xuXHRcdGlmIChOdW1iZXIocXVvdGllbnQpID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiB0b28gbWFueSBjb2luczogJHtxdW90aWVudC50b1N0cmluZygpfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGNvbnN0IHJlc3QgPSBOdW1iZXIoQmlnSW50KHRoaXMuY29pbnMpIC0gcXVvdGllbnQgKiAxMDAwMDAwMDAwbikgLyAxMDAwMDAwMDAwO1xuXHRcdHJldHVybiBOdW1iZXIocXVvdGllbnQpICsgcmVzdDtcblx0fVxuXHRwdWJsaWMgdG9TdHJpbmcoZGVjaW1hbHMgPSA5KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gd2hvbGVfd2l0cyh0aGlzLmNvaW5zLCBkZWNpbWFscyk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgS2V5UGF0aCA9IEFycmF5PG51bWJlcj47XG5cbmV4cG9ydCB0eXBlIEtleWVkU2lnbmF0dXJlID0ge1xuXHRzaWduYXR1cmU6IHsgU2VjcDI1NmsxOiB7IGRlcjogQXJyYXk8bnVtYmVyPiB9IH07XG5cdHB1YmxpY19rZXk6IHtcblx0XHRieXRlczogQXJyYXk8bnVtYmVyPjtcblx0XHRjb21wcmVzc2VkOiBudW1iZXI7XG5cdH07XG59O1xuXG5leHBvcnQgdHlwZSBQdWJsaWNLZXlIYXNoU3RyaW5nID0gSGV4U3RyaW5nO1xuXG5pbnRlcmZhY2UgS2V5IHtcblx0Ynl0ZXM6IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpdmF0ZUtleSBleHRlbmRzIEtleSB7XG5cdHR5cGU6IFwicHJpdmF0ZVwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY0tleSBleHRlbmRzIEtleSB7XG5cdHR5cGU6IFwicHVibGljXCI7XG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uQ2FsbGJhY2sgPSAocmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0LCBlcnJvcj86IGFueSkgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvblBhcmFtcyA9IHtcblx0ZGVhZGxpbmU/OiBFcG9jaDtcblx0ZmVlcz86IFRyYW5zYWN0aW9uUHJpb3JpdHkgfCBDb2lucztcbn07XG5cbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uUHJpb3JpdHkge1xuXHRTdGlua3kgPSBcInN0aW5reVwiLFxuXHRMb3cgPSBcImxvd1wiLFxuXHRNZWRpdW0gPSBcIm1lZGl1bVwiLFxuXHRIaWdoID0gXCJoaWdoXCIsXG5cdE9wdWxlbnQgPSBcIm9wdWxlbnRcIixcbn1cblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25SZWNlaXB0ID0ge1xuXHRhdXRob3JpemF0aW9uPzogSGV4U3RyaW5nO1xuXHRibG9ja0Vwb2NoPzogRXBvY2g7XG5cdGJsb2NrSGFzaD86IEhhc2g7XG5cdGJsb2NrTWluZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRibG9ja1RpbWVzdGFtcD86IG51bWJlcjtcblx0Y29uZmlybWF0aW9ucz86IG51bWJlcjtcblx0Y2hhbmdlPzogQ29pbnM7XG5cdGRyb0hhc2g/OiBIYXNoO1xuXHRlcnJvcj86IEVycm9yO1xuXHRmZWVzOiBDb2lucztcblx0ZnJvbT86IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+IHwgUHVibGljS2V5SGFzaFN0cmluZztcblx0aGFzaDogSGFzaDtcblx0b3V0cHV0TG9jaz86IG51bWJlcjtcblx0cmFkQXJncz86IGFueTtcblx0cmFkSGFzaD86IEhleFN0cmluZztcblx0cmVjaXBpZW50cz86IEFycmF5PFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBDb2luc10+O1xuXHRzdGF0dXM6IHN0cmluZztcblx0dGltZXN0YW1wOiBudW1iZXI7XG5cdHR5cGU6IHN0cmluZztcblx0dHg/OiBhbnk7XG5cdHZhbGlkYXRvcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdHZhbHVlPzogQ29pbnM7XG5cdHdlaWdodDogbnVtYmVyO1xuXHR3aXRoZHJhd2VyPzogUHVibGljS2V5SGFzaFN0cmluZztcblx0d2l0bmVzc2VzPzogbnVtYmVyIHwgUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIENvaW5zPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uU3RhdHVzID0gXCJzaWduZWRcIiB8IFwicGVuZGluZ1wiIHwgXCJyZWxheWVkXCIgfCBcInJlbW92ZWRcIiB8IFwibWluZWRcIiB8IFwiY29uZmlybWVkXCIgfCBcImZpbmFsaXplZFwiO1xuXG5leHBvcnQgdHlwZSBUcmFuc21pc3Npb24gPSB7XG5cdGJ5dGVjb2RlPzogVWludDhBcnJheTtcblx0aGFzaD86IEhhc2g7XG5cdG1lc3NhZ2U6IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIFV0eG8gPSBVdHhvTWV0YWRhdGEgJiB7IHNpZ25lcjogUHVibGljS2V5SGFzaFN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBVdHhvQ2FjaGVJbmZvID0ge1xuXHQvLyB0b3RhbCBhbW91bnQgb2YgZXhwZW5kYWJsZSBmdW5kcyB3aXRoIGN1cnJlbnRseSBjYWNoZWQgVVRYT3Ncblx0ZXhwZW5kYWJsZTogYmlnaW50O1xuXHQvLyBudW1iZXIgb2YgY2FjaGVkIFVUWE9zXG5cdHNpemU6IG51bWJlcjtcblx0Ly8gZWFybGllc3Qgb2YgYWxsIHRpbWVsb2NrcyBpbiB0aGUgY2FjaMOpXG5cdHRpbWVsb2NrOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBVdHhvUG9pbnRlciA9IHtcblx0Ly8gdHJhbnNhY3Rpb24gaWRlbnRpZmllclxuXHR0cmFuc2FjdGlvbl9pZDogSGFzaDtcblx0Ly8gb3V0cHV0IGluZGV4IHdpdGhpbiByZWZlcnJlZCB0cmFuc2FjdGlvblxuXHRvdXRwdXRfaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBlbnVtIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB7XG5cdEJpZ0ZpcnN0ID0gXCJiaWctZmlyc3RcIixcblx0UmFuZG9tID0gXCJyYW5kb21cIixcblx0U2xpbUZpdCA9IFwic2xpbS1maXRcIixcblx0U21hbGxGaXJzdCA9IFwic21hbGwtZmlyc3RcIixcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBFWFBPUlRFRCBDTEFTU0VTXG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY2xhc3MgUHVibGljS2V5IGltcGxlbWVudHMgS2V5IHtcblx0cHVibGljIHJlYWRvbmx5IGNvbXByZXNzZWQ6IG51bWJlcjtcblx0cHVibGljIHJlYWRvbmx5IGJ5dGVzOiBVaW50OEFycmF5O1xuXG5cdHN0YXRpYyBmcm9tUHJvdG9idWYocHJvdG9idWY6IHsgY29tcHJlc3NlZDogbnVtYmVyOyBieXRlczogQXJyYXk8bnVtYmVyPiB9KTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleShwcm90b2J1Zi5jb21wcmVzc2VkLCBVaW50OEFycmF5LmZyb20ocHJvdG9idWYuYnl0ZXMpKTtcblx0fVxuXG5cdHN0YXRpYyBmcm9tVWludDhBcnJheSh1aW50OEFycmF5OiBVaW50OEFycmF5KTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleSh1aW50OEFycmF5WzBdLCB1aW50OEFycmF5LnNsaWNlKDEpKTtcblx0fVxuXG5cdHN0YXRpYyByZWNvdmVyRnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXkge1xuXHRcdGxldCBieXRlcztcblx0XHRpZiAoaXNIZXhTdHJpbmcocmVjb3ZlcmFibGUpKSB7XG5cdFx0XHRieXRlcyA9IGZyb21IZXhTdHJpbmcocmVjb3ZlcmFibGUpO1xuXHRcdH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcblx0XHRcdGJ5dGVzID0gVWludDhBcnJheS5mcm9tKHJlY292ZXJhYmxlLmJ1ZmZlcik7XG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcblx0XHRcdGJ5dGVzID0gcmVjb3ZlcmFibGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFB1YmxpY0tleTogdW5zdXBwb3J0ZWQgcmVjb3ZlcmFibGUgc2lnbmF0dXJlIGZvcm1hdDogJHtyZWNvdmVyYWJsZX1gKTtcblx0XHR9XG5cdFx0aWYgKGJ5dGVzLmxlbmd0aCAhPT0gNjUpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFB1YmxpY0tleTogZXhwZWN0ZWQgcmVjb3ZlcmFibGUgc2lnbmF0dXJlIHdpdGggbGVuZ3RoIDY1OiAke3RvSGV4U3RyaW5nKGJ5dGVzKX1gKTtcblx0XHR9XG5cdFx0Y29uc3QgW3JlY292ZXJ5SWQsIHNpZ25hdHVyZV0gPSBbYnl0ZXNbMF0sIGJ5dGVzLnNsaWNlKDEpXTtcblx0XHRyZXR1cm4gUHVibGljS2V5LmZyb21VaW50OEFycmF5KHNlY3AyNTZrMS5lY2RzYVJlY292ZXIoc2lnbmF0dXJlLCByZWNvdmVyeUlkLCBtc2cpKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKGNvbXByZXNzZWQ6IG51bWJlciwgYnl0ZXM6IFVpbnQ4QXJyYXkpIHtcblx0XHR0aGlzLmNvbXByZXNzZWQgPSBjb21wcmVzc2VkO1xuXHRcdHRoaXMuYnl0ZXMgPSBieXRlcztcblx0fVxuXG5cdHB1YmxpYyBlcXVhbHMocHViS2V5OiBQdWJsaWNLZXkpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gcHViS2V5LmNvbXByZXNzZWQgPT09IHRoaXMuY29tcHJlc3NlZCAmJiBtYXRjaGluZ1VpbnQ4QXJyYXlzKHB1YktleS5ieXRlcywgcHViS2V5LmJ5dGVzKTtcblx0fVxuXG5cdHB1YmxpYyBoYXNoKCk6IFB1YmxpY0tleUhhc2gge1xuXHRcdHJldHVybiBQdWJsaWNLZXlIYXNoLmZyb21QdWJsaWNLZXkodGhpcyk7XG5cdH1cblxuXHRwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdG9IZXhTdHJpbmcoW3RoaXMuY29tcHJlc3NlZCwgLi4udGhpcy5ieXRlc10pO1xuXHR9XG5cblx0cHVibGljIHRvVWludDhBcnJheSgpOiBVaW50OEFycmF5IHtcblx0XHRyZXR1cm4gVWludDhBcnJheS5mcm9tKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKTtcblx0fVxufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGNsYXNzIFB1YmxpY0tleUhhc2gge1xuXHRzdGF0aWMgZnJvbUhhc2goaGFzaDogVWludDhBcnJheSk6IFB1YmxpY0tleUhhc2gge1xuXHRcdHJldHVybiBuZXcgUHVibGljS2V5SGFzaChiZWNoMzIudG9Xb3JkcyhoYXNoKSk7XG5cdH1cblxuXHRzdGF0aWMgZnJvbUhleFN0cmluZyhoYXNoOiBIZXhTdHJpbmcpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHRyZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tSGFzaChmcm9tSGV4U3RyaW5nKGhhc2gpKTtcblx0fVxuXG5cdHN0YXRpYyBmcm9tUHVibGljS2V5KHBrOiBQdWJsaWNLZXkpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHRyZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tSGFzaChzaGEyNTYoQnVmZmVyLmZyb20oW3BrLmNvbXByZXNzZWQsIC4uLnBrLmJ5dGVzXSkpLnN1YmFycmF5KDAsIDIwKSk7XG5cdH1cblxuXHRzdGF0aWMgZnJvbUJlY2gzMihwa2g6IHN0cmluZyk6IFB1YmxpY0tleUhhc2gge1xuXHRcdHRyeSB7XG5cdFx0XHRwa2ggPSBwa2gudG9Mb3dlckNhc2UoKTtcblx0XHRcdGlmIChwa2guc3RhcnRzV2l0aChcIndpdFwiKSkge1xuXHRcdFx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLmRlY29kZShwa2gsIDY2KS53b3Jkcyk7XG5cdFx0XHR9IGVsc2UgaWYgKHBraC5zdGFydHNXaXRoKFwidHdpdFwiKSkge1xuXHRcdFx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLmRlY29kZShwa2gsIDY3KS53b3Jkcyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBQdWJsaWNLZXlIYXNoOiBpbnZhbGlkIGJlY2gzMiBzdHJpbmc6ICR7cGtofWApO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgUHVibGljS2V5SGFzaDogaW52YWxpZCBiZWNoMzIgc3RyaW5nOiAke3BraH1gKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgd29yZHM6IG51bWJlcltdO1xuXG5cdGNvbnN0cnVjdG9yKHdvcmRzOiBudW1iZXJbXSkge1xuXHRcdHRoaXMud29yZHMgPSB3b3Jkcztcblx0fVxuXG5cdHB1YmxpYyB0b0JlY2gzMihuZXR3b3JrID0gXCJtYWlubmV0XCIpOiBzdHJpbmcge1xuXHRcdHJldHVybiBuZXR3b3JrID09PSBcIm1haW5uZXRcIiA/IGJlY2gzMi5lbmNvZGUoXCJ3aXRcIiwgdGhpcy53b3JkcywgNjYpIDogYmVjaDMyLmVuY29kZShcInR3aXRcIiwgdGhpcy53b3JkcywgNjcpO1xuXHR9XG5cblx0cHVibGljIHRvQnl0ZXMyMCgpOiBVaW50OEFycmF5IHtcblx0XHRyZXR1cm4gVWludDhBcnJheS5mcm9tKGJlY2gzMi5mcm9tV29yZHModGhpcy53b3Jkcykuc2xpY2UoMCwgMjApKTtcblx0fVxuXG5cdHB1YmxpYyB0b0J5dGVzMzIoKTogVWludDhBcnJheSB7XG5cdFx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbLi4uYmVjaDMyLmZyb21Xb3Jkcyh0aGlzLndvcmRzKS5zbGljZSgwLCAyMCksIC4uLm5ldyBBcnJheSgxMikuZmlsbCgwKV0pO1xuXHR9XG5cblx0cHVibGljIHRvSGV4U3RyaW5nKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHRoaXMudG9CeXRlczIwKCkpO1xuXHR9XG59XG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlIHtcblx0c3RhdGljIGZyb21IZXhTdHJpbmcoaGV4OiBzdHJpbmcpOiBTaWduYXR1cmUge1xuXHRcdHJldHVybiBuZXcgU2lnbmF0dXJlKGZyb21IZXhTdHJpbmcoaGV4KSk7XG5cdH1cblxuXHRwdWJsaWMgcmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXk7XG5cblx0Y29uc3RydWN0b3IoYnl0ZXM6IFVpbnQ4QXJyYXkpIHtcblx0XHR0aGlzLmJ5dGVzID0gYnl0ZXM7XG5cdH1cblxuXHRwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdG9IZXhTdHJpbmcodGhpcy5ieXRlcyk7XG5cdH1cbn1cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCBjbGFzcyBSZWNvdmVyYWJsZVNpZ25hdHVyZSBleHRlbmRzIFNpZ25hdHVyZSB7XG5cdHN0YXRpYyBmcm9tKHJlY292ZXJhYmxlOiBhbnksIG1zZzogVWludDhBcnJheSk6IFJlY292ZXJhYmxlU2lnbmF0dXJlIHtcblx0XHRsZXQgYnl0ZXM7XG5cdFx0aWYgKGlzSGV4U3RyaW5nKHJlY292ZXJhYmxlKSkge1xuXHRcdFx0Ynl0ZXMgPSBmcm9tSGV4U3RyaW5nKHJlY292ZXJhYmxlKS5zbGljZSgxKTtcblx0XHR9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG5cdFx0XHRieXRlcyA9IFVpbnQ4QXJyYXkuZnJvbShyZWNvdmVyYWJsZS5idWZmZXIpLnNsaWNlKDEpO1xuXHRcdH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG5cdFx0XHRieXRlcyA9IHJlY292ZXJhYmxlLnNsaWNlKDEpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBSZWNvdmVyYWJsZVNpZ25hdHVyZTogdW5zdXBwb3J0ZWQgcmVjb3ZlcmFibGUgc2lnbmF0dXJlIGZvcm1hdDogJHtyZWNvdmVyYWJsZX1gKTtcblx0XHR9XG5cdFx0aWYgKGJ5dGVzLmxlbmd0aCAhPT0gNjQpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFJlY292ZXJhYmxlU2lnbmF0cmU6IGV4cGVjdGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSB3aXRoIGxlbmd0aCA2NTogJHt0b0hleFN0cmluZyhieXRlcyl9YCk7XG5cdFx0fVxuXHRcdHJldHVybiBuZXcgUmVjb3ZlcmFibGVTaWduYXR1cmUoUHVibGljS2V5LnJlY292ZXJGcm9tKHJlY292ZXJhYmxlLCBtc2cpLCBieXRlcywgbXNnKTtcblx0fVxuXG5cdHN0YXRpYyBmcm9tS2V5ZWRTaWduYXR1cmUoa3M6IEtleWVkU2lnbmF0dXJlLCBtc2c6IFVpbnQ4QXJyYXkpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XG5cdFx0cmV0dXJuIG5ldyBSZWNvdmVyYWJsZVNpZ25hdHVyZShcblx0XHRcdFB1YmxpY0tleS5mcm9tUHJvdG9idWYoa3MucHVibGljX2tleSksXG5cdFx0XHRzZWNwMjU2azEuc2lnbmF0dXJlSW1wb3J0KFVpbnQ4QXJyYXkuZnJvbShrcy5zaWduYXR1cmUuU2VjcDI1NmsxLmRlcikpLFxuXHRcdFx0bXNnLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZTogVWludDhBcnJheTtcblx0cHVibGljIHJlYWRvbmx5IHB1YktleTogUHVibGljS2V5O1xuXHRwdWJsaWMgcmVhZG9ubHkgcmVjb3ZlcnlJZDogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKHB1YktleTogUHVibGljS2V5LCBieXRlczogVWludDhBcnJheSwgbXNnOiBVaW50OEFycmF5KSB7XG5cdFx0c3VwZXIoYnl0ZXMpO1xuXHRcdGNvbnN0IHB1YktleVJhdyA9IHB1YktleS50b1VpbnQ4QXJyYXkoKTtcblx0XHRsZXQgcmVjb3ZlcnlJZDogbnVtYmVyO1xuXHRcdGZvciAocmVjb3ZlcnlJZCA9IDA7IHJlY292ZXJ5SWQgPCA0OyByZWNvdmVyeUlkKyspIHtcblx0XHRcdGxldCByZWNvdmVyZWQ7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZWNvdmVyZWQgPSBzZWNwMjU2azEuZWNkc2FSZWNvdmVyKGJ5dGVzLCByZWNvdmVyeUlkLCBtc2cpO1xuXHRcdFx0XHRpZiAobWF0Y2hpbmdVaW50OEFycmF5cyhyZWNvdmVyZWQsIHB1YktleVJhdykpIGJyZWFrO1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH1cblx0XHR0aGlzLm1lc3NhZ2UgPSBtc2c7XG5cdFx0dGhpcy5wdWJLZXkgPSBwdWJLZXk7XG5cdFx0dGhpcy5yZWNvdmVyeUlkID0gcmVjb3ZlcnlJZDtcblx0fVxuXG5cdHB1YmxpYyB0b0hleFN0cmluZyhwcmVmaXgweCA9IGZhbHNlKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdG9IZXhTdHJpbmcoW3RoaXMucmVjb3ZlcnlJZCwgLi4udGhpcy5ieXRlc10sIHByZWZpeDB4KTtcblx0fVxuXG5cdHB1YmxpYyB0b0tleWVkU2lnbmF0dXJlKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNpZ25hdHVyZToge1xuXHRcdFx0XHRTZWNwMjU2azE6IHsgZGVyOiBBcnJheS5mcm9tKHNlY3AyNTZrMS5zaWduYXR1cmVFeHBvcnQodGhpcy5ieXRlcykpIH0sXG5cdFx0XHR9LFxuXHRcdFx0cHVibGljX2tleToge1xuXHRcdFx0XHRieXRlczogQXJyYXkuZnJvbSh0aGlzLnB1YktleS5ieXRlcyksXG5cdFx0XHRcdGNvbXByZXNzZWQ6IHRoaXMucHViS2V5LmNvbXByZXNzZWQsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHRwdWJsaWMgdG9Qcm90b2J1ZigpOiBhbnkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzaWduYXR1cmU6IHtcblx0XHRcdFx0U2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9LFxuXHRcdFx0fSxcblx0XHRcdHB1YmxpY0tleToge1xuXHRcdFx0XHRwdWJsaWNLZXk6IEFycmF5LmZyb20oW3RoaXMucHViS2V5LmNvbXByZXNzZWQsIC4uLnRoaXMucHViS2V5LmJ5dGVzXSksXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cbn1cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25FcnJvciBleHRlbmRzIEVycm9yIHtcblx0cmVhZG9ubHkgcmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0O1xuXHRjb25zdHJ1Y3RvcihyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcblx0XHRzdXBlcihtZXNzYWdlKTtcblx0XHR0aGlzLnJlY2VpcHQgPSByZWNlaXB0O1xuXHR9XG59XG5leHBvcnQgY2xhc3MgTWVtcG9vbEVycm9yIGV4dGVuZHMgVHJhbnNhY3Rpb25FcnJvciB7fVxuXG5leHBvcnQgY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgVHJhbnNhY3Rpb25FcnJvciB7XG5cdHJlYWRvbmx5IG1zZWNzOiBudW1iZXI7XG5cdGNvbnN0cnVjdG9yKG1zZWNzOiBudW1iZXIsIHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgbWVzc2FnZT86IHN0cmluZykge1xuXHRcdHN1cGVyKHJlY2VpcHQsIG1lc3NhZ2UpO1xuXHRcdHRoaXMubXNlY3MgPSBtc2Vjcztcblx0fVxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdHJlYWRvbmx5IGVycm9yPzogYW55O1xuXHRyZWFkb25seSBpbkZsaWdodDogVHJhbnNtaXNzaW9uO1xuXHRjb25zdHJ1Y3RvcihpbkZsaWdodDogVHJhbnNtaXNzaW9uLCBlcnJvcj86IGFueSkge1xuXHRcdHN1cGVyKEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XG5cdFx0ZGVsZXRlIGVycm9yPy5zdGFjaztcblx0XHR0aGlzLmVycm9yID0gZXJyb3I7XG5cdFx0dGhpcy5pbkZsaWdodCA9IGluRmxpZ2h0O1xuXHR9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gLS0tIEludGVybmFsIGZ1bmN0aW9uc1xuXG5mdW5jdGlvbiBtYXRjaGluZ1VpbnQ4QXJyYXlzKGE6IFVpbnQ4QXJyYXksIGI6IFVpbnQ4QXJyYXkpIHtcblx0cmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBiW2luZGV4XSk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,SAAS,GACT,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,OAAO;eACR,MAAM,aAAa,MAAM,EAAE,GAAG,MAAM;CAI/C,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,SAAS,GACT,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,OAAO;eACR,MAAM,aAAa,MAAM,EAAE,GAAG,MAAM;CAI/C,CAAC;AAYF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAcnE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAE1G;AAED,eAAO,MAAM,SAAS,GACrB,QAAQ,MAAM,KACZ;IACF,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CAsDvB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAClC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CACjC,GAAG,KAAK,CAAC,IAAI,CAAC,CA8Cd;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,mBAIjC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAElD"}
|
|
@@ -17,10 +17,7 @@ const CHAIN_CODE_LENGTH = 32;
|
|
|
17
17
|
const DEPTH_LENGTH = 1;
|
|
18
18
|
const KEY_LENGTH = 33;
|
|
19
19
|
const KEY_PATH_LENGTH = 4;
|
|
20
|
-
const BECH32_LIMIT = DEPTH_LENGTH +
|
|
21
|
-
(256 ** DEPTH_LENGTH - 1) * KEY_PATH_LENGTH +
|
|
22
|
-
CHAIN_CODE_LENGTH +
|
|
23
|
-
KEY_LENGTH;
|
|
20
|
+
const BECH32_LIMIT = DEPTH_LENGTH + (256 ** DEPTH_LENGTH - 1) * KEY_PATH_LENGTH + CHAIN_CODE_LENGTH + KEY_LENGTH;
|
|
24
21
|
const getExpectedDataLength = (depth) => DEPTH_LENGTH + depth * KEY_PATH_LENGTH + CHAIN_CODE_LENGTH + KEY_LENGTH;
|
|
25
22
|
export function decipherXprv(slip32, passwd) {
|
|
26
23
|
const { prefix, words } = bech32.decode(slip32, BECH32_LIMIT);
|
|
@@ -55,8 +52,7 @@ export const parseXprv = (slip32) => {
|
|
|
55
52
|
}
|
|
56
53
|
const expectedLength = getExpectedDataLength(depth);
|
|
57
54
|
if (bytes.length !== expectedLength) {
|
|
58
|
-
throw Error(
|
|
59
|
-
`(expected: ${expectedLength}, was: ${bytes.length}`);
|
|
55
|
+
throw Error(`Invalid XPRV: bad data length(expected: ${expectedLength}, was: ${bytes.length}`);
|
|
60
56
|
}
|
|
61
57
|
const buffer = new Uint8Array(bytes).buffer;
|
|
62
58
|
// extract key path (32-bit unsigned integers, big endian)
|
|
@@ -93,7 +89,7 @@ export function selectUtxos(specs) {
|
|
|
93
89
|
switch (strategy) {
|
|
94
90
|
case UtxoSelectionStrategy.BigFirst:
|
|
95
91
|
case UtxoSelectionStrategy.SlimFit:
|
|
96
|
-
specs.utxos = specs.utxos.sort((a, b) => a.value > b.value ? -1 : a.value < b.value ? 1 : 0);
|
|
92
|
+
specs.utxos = specs.utxos.sort((a, b) => (a.value > b.value ? -1 : a.value < b.value ? 1 : 0));
|
|
97
93
|
break;
|
|
98
94
|
case UtxoSelectionStrategy.Random: {
|
|
99
95
|
const len = specs.utxos.length;
|
|
@@ -106,7 +102,7 @@ export function selectUtxos(specs) {
|
|
|
106
102
|
break;
|
|
107
103
|
}
|
|
108
104
|
case UtxoSelectionStrategy.SmallFirst:
|
|
109
|
-
specs.utxos = specs.utxos.sort((a, b) => a.value < b.value ? -1 : a.value > b.value ? 1 : 0);
|
|
105
|
+
specs.utxos = specs.utxos.sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0));
|
|
110
106
|
break;
|
|
111
107
|
}
|
|
112
108
|
// filter locked UTXOs:
|
|
@@ -140,4 +136,4 @@ export function sha256(buffer) {
|
|
|
140
136
|
export function totalCoins(balance) {
|
|
141
137
|
return Coins.fromPedros(BigInt(balance.locked) + BigInt(balance.staked) + BigInt(balance.unlocked));
|
|
142
138
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQWEscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVoQyxPQUFPLEVBR04sU0FBUyxFQUNULGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsU0FBUyxHQUNULE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUN0QixHQUFHLENBQUMsS0FBYSxFQUFFLEdBQUcsTUFBZ0I7UUFDckMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSztnQkFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztDQUNELENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUUxQixNQUFNLFlBQVksR0FDakIsWUFBWTtJQUNaLENBQUMsR0FBRyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxlQUFlO0lBQzNDLGlCQUFpQjtJQUNqQixVQUFVLENBQUM7QUFFWixNQUFNLHFCQUFx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QUFNLFVBQVUsVUFBVSxDQUFDLE9BQWdCO0lBQzFDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQzFFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRGVjaXBoZXJpdiwgY3JlYXRlSGFzaCwgcGJrZGYyU3luYyB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgYmVjaDMyIH0gZnJvbSBcImJlY2gzMlwiO1xuaW1wb3J0IHNlY3AyNTZrMSBmcm9tIFwic2VjcDI1NmsxXCI7XG5pbXBvcnQgdHlwZSB7IEJhbGFuY2UsIEhleFN0cmluZyB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgZnJvbUhleFN0cmluZyB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuaW1wb3J0IHsgQ29pbnMsIHR5cGUgVXR4bywgVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IHsgYmVjaDMyIH0gZnJvbSBcImJlY2gzMlwiO1xuXG5leHBvcnQge1xuXHRLZXllZFNpZ25hdHVyZSxcblx0UHJpdmF0ZUtleSxcblx0UHVibGljS2V5LFxuXHRQdWJsaWNLZXlIYXNoLFxuXHRSZWNvdmVyYWJsZVNpZ25hdHVyZSxcblx0U2lnbmF0dXJlLFxufSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG5leHBvcnQgY29uc3QgQmlnTWF0aCA9IHtcblx0bWF4KHZhbHVlOiBiaWdpbnQsIC4uLnZhbHVlczogYmlnaW50W10pOiBiaWdpbnQge1xuXHRcdGZvciAoY29uc3QgdiBvZiB2YWx1ZXMpIGlmICh2ID4gdmFsdWUpIHZhbHVlID0gdjtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH0sXG59O1xuXG5jb25zdCBDSEFJTl9DT0RFX0xFTkdUSCA9IDMyO1xuY29uc3QgREVQVEhfTEVOR1RIID0gMTtcbmNvbnN0IEtFWV9MRU5HVEggPSAzMztcbmNvbnN0IEtFWV9QQVRIX0xFTkdUSCA9IDQ7XG5cbmNvbnN0IEJFQ0gzMl9MSU1JVCA9XG5cdERFUFRIX0xFTkdUSCArXG5cdCgyNTYgKiogREVQVEhfTEVOR1RIIC0gMSkgKiBLRVlfUEFUSF9MRU5HVEggK1xuXHRDSEFJTl9DT0RFX0xFTkdUSCArXG5cdEtFWV9MRU5HVEg7XG5cbmNvbnN0IGdldEV4cGVjdGVkRGF0YUxlbmd0aCA9IChkZXB0aDogbnVtYmVyKSA9PlxuXHRERVBUSF9MRU5HVEggKyBkZXB0aCAqIEtFWV9QQVRIX0xFTkdUSCArIENIQUlOX0NPREVfTEVOR1RIICsgS0VZX0xFTkdUSDtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2lwaGVyWHBydihzbGlwMzI6IHN0cmluZywgcGFzc3dkOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCB7IHByZWZpeCwgd29yZHMgfSA9IGJlY2gzMi5kZWNvZGUoc2xpcDMyLCBCRUNIMzJfTElNSVQpO1xuXHRpZiAocHJlZml4ICE9PSBcInhwcnZcIikge1xuXHRcdHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlYgaGVhZGVyOiBcIiR7cHJlZml4fVwiICE9IFwieHBydlwiYCk7XG5cdH1cblx0Y29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcykpLmJ1ZmZlcjtcblx0Y29uc3QgaXYgPSBidWZmZXIuc2xpY2UoMCwgMTYpO1xuXHRjb25zdCBzYWx0ID0gYnVmZmVyLnNsaWNlKDE2LCA0OCk7XG5cdGNvbnN0IGRhdGEgPSBidWZmZXIuc2xpY2UoNDgpO1xuXHRjb25zdCBrZXkgPSBwYmtkZjJTeW5jKHBhc3N3ZCwgQnVmZmVyLmZyb20oc2FsdCksIDEwMDAwLCAzMiwgXCJzaGEyNTZcIik7XG5cdGNvbnN0IGRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJpdihcImFlcy0yNTYtY2JjXCIsIGtleSwgQnVmZmVyLmZyb20oaXYpKTtcblx0bGV0IGRlY3J5cHRlZCA9IGRlY2lwaGVyLnVwZGF0ZShCdWZmZXIuZnJvbShkYXRhKSwgdW5kZWZpbmVkLCBcInV0Zi04XCIpO1xuXHRkZWNyeXB0ZWQgKz0gZGVjaXBoZXIuZmluYWwoXCJ1dGYtOFwiKTtcblx0cmV0dXJuIGRlY3J5cHRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVjZHNhVmVyaWZ5KFxuXHRtc2c6IEJ1ZmZlcjxBcnJheUJ1ZmZlckxpa2U+LFxuXHRwdWJLZXk6IEhleFN0cmluZyxcblx0c2lnbmF0dXJlOiBIZXhTdHJpbmcsXG4pOiBib29sZWFuIHtcblx0cmV0dXJuIHNlY3AyNTZrMS5lY2RzYVZlcmlmeShcblx0XHRmcm9tSGV4U3RyaW5nKHNpZ25hdHVyZSksXG5cdFx0bXNnLFxuXHRcdGZyb21IZXhTdHJpbmcocHViS2V5KSxcblx0KTtcbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlWHBydiA9IChcblx0c2xpcDMyOiBzdHJpbmcsXG4pOiB7XG5cdGNoYWluQ29kZTogVWludDhBcnJheTtcblx0a2V5UGF0aDogQXJyYXk8bnVtYmVyPjtcblx0cHJpdmF0ZUtleTogVWludDhBcnJheTtcbn0gPT4ge1xuXHQvLyBkZWNvZGUgc2xpcDMyIHN0cmluZ1xuXHRjb25zdCB7IHByZWZpeCwgd29yZHMgfSA9IGJlY2gzMi5kZWNvZGUoc2xpcDMyLCBCRUNIMzJfTElNSVQpO1xuXHRjb25zdCBieXRlcyA9IGJlY2gzMi5mcm9tV29yZHMod29yZHMpO1xuXG5cdC8vIGNoZWNrIHByZWZpeFxuXHRpZiAocHJlZml4ICE9PSBcInhwcnZcIikge1xuXHRcdHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IGJhZCBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKTtcblx0fVxuXG5cdC8vIGNoZWNrIGV4cGVjdGVkIGRhdGEgbGVuZ3RoXG5cdGNvbnN0IGRlcHRoID0gYnl0ZXNbMF07XG5cdGlmIChkZXB0aCAhPT0gMCkge1xuXHRcdHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IG5vdCBhIG1hc3RlciBwcml2YXRlIGtleSAoZGVwdGg6ICR7ZGVwdGh9KWApO1xuXHR9XG5cdGNvbnN0IGV4cGVjdGVkTGVuZ3RoID0gZ2V0RXhwZWN0ZWREYXRhTGVuZ3RoKGRlcHRoKTtcblx0aWYgKGJ5dGVzLmxlbmd0aCAhPT0gZXhwZWN0ZWRMZW5ndGgpIHtcblx0XHR0aHJvdyBFcnJvcihcblx0XHRcdFwiSW52YWxpZCBYUFJWOiBiYWQgZGF0YSBsZW5ndGhcIiArXG5cdFx0XHRcdGAoZXhwZWN0ZWQ6ICR7ZXhwZWN0ZWRMZW5ndGh9LCB3YXM6ICR7Ynl0ZXMubGVuZ3RofWAsXG5cdFx0KTtcblx0fVxuXHRjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShieXRlcykuYnVmZmVyO1xuXG5cdC8vIGV4dHJhY3Qga2V5IHBhdGggKDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VycywgYmlnIGVuZGlhbilcblx0Y29uc3Qga2V5UGF0aDogQXJyYXk8bnVtYmVyPiA9IFtdO1xuXHRjb25zdCBrZXlQYXRoVmlldyA9IG5ldyBEYXRhVmlldyhcblx0XHRidWZmZXIsXG5cdFx0REVQVEhfTEVOR1RILFxuXHRcdGRlcHRoICogS0VZX1BBVEhfTEVOR1RILFxuXHQpO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IGRlcHRoOyBpKyspIHtcblx0XHRrZXlQYXRoLnB1c2goa2V5UGF0aFZpZXcuZ2V0VWludDMyKGkgKiBLRVlfUEFUSF9MRU5HVEgsIGZhbHNlKSk7XG5cdH1cblxuXHQvLyBleHRyYWN0IGNoYWluIGNvZGVcblx0Y29uc3QgY2hhaW5Db2RlOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoQ0hBSU5fQ09ERV9MRU5HVEgpO1xuXHRjb25zdCBjaGFpbkNvZGVPZmZzZXQgPSBERVBUSF9MRU5HVEggKyBkZXB0aCAqIEtFWV9QQVRIX0xFTkdUSDtcblx0Y29uc3QgY2hhaW5Db2RlVmlldyA9IG5ldyBEYXRhVmlldyhcblx0XHRidWZmZXIsXG5cdFx0Y2hhaW5Db2RlT2Zmc2V0LFxuXHRcdENIQUlOX0NPREVfTEVOR1RILFxuXHQpO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYWluQ29kZS5sZW5ndGg7IGkrKykge1xuXHRcdGNoYWluQ29kZVtpXSA9IGNoYWluQ29kZVZpZXcuZ2V0VWludDgoaSk7XG5cdH1cblxuXHQvLyBleHRyYWN0IGtleSBieXRlc1xuXHRjb25zdCBwcml2YXRlS2V5OiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoS0VZX0xFTkdUSCk7XG5cdGNvbnN0IHByaXZhdGVLZXlWaWV3ID0gbmV3IERhdGFWaWV3KFxuXHRcdGJ1ZmZlcixcblx0XHRjaGFpbkNvZGVPZmZzZXQgKyBDSEFJTl9DT0RFX0xFTkdUSCxcblx0KTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBwcml2YXRlS2V5Lmxlbmd0aDsgaSsrKSB7XG5cdFx0cHJpdmF0ZUtleVtpXSA9IHByaXZhdGVLZXlWaWV3LmdldFVpbnQ4KGkpO1xuXHR9XG5cblx0Ly8gY2hlY2sgaWYgcHJpdmF0ZSBvciBwdWJsaWMga2V5IGFyZSB2YWxpZFxuXHRpZiAocHJpdmF0ZUtleVswXSAhPT0gMCB8fCAhc2VjcDI1NmsxLnByaXZhdGVLZXlWZXJpZnkocHJpdmF0ZUtleS5zbGljZSgxKSkpIHtcblx0XHR0aHJvdyBFcnJvcihgTWFsZm9ybWVkIHNsaXAzMjogbm90IGEgcHJpdmF0ZSBrZXlgKTtcblx0fVxuXG5cdHJldHVybiB7XG5cdFx0Y2hhaW5Db2RlLFxuXHRcdGtleVBhdGgsXG5cdFx0cHJpdmF0ZUtleTogcHJpdmF0ZUtleS5zbGljZSgxKSxcblx0fTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RVdHhvcyhzcGVjczoge1xuXHR1dHhvczogQXJyYXk8VXR4bz47XG5cdHZhbHVlPzogQ29pbnM7XG5cdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xufSk6IEFycmF5PFV0eG8+IHtcblx0Y29uc3Qgc3RyYXRlZ3kgPSBzcGVjcy5zdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDtcblx0c3dpdGNoIChzdHJhdGVneSkge1xuXHRcdGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LkJpZ0ZpcnN0OlxuXHRcdGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNsaW1GaXQ6XG5cdFx0XHRzcGVjcy51dHhvcyA9IHNwZWNzLnV0eG9zLnNvcnQoKGEsIGIpID0+XG5cdFx0XHRcdGEudmFsdWUgPiBiLnZhbHVlID8gLTEgOiBhLnZhbHVlIDwgYi52YWx1ZSA/IDEgOiAwLFxuXHRcdFx0KTtcblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuUmFuZG9tOiB7XG5cdFx0XHRjb25zdCBsZW4gPSBzcGVjcy51dHhvcy5sZW5ndGg7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGxlbiAtIGkpKTtcblx0XHRcdFx0Y29uc3QgdG1wID0gc3BlY3MudXR4b3NbaW5kZXhdO1xuXHRcdFx0XHRzcGVjcy51dHhvc1tpbmRleF0gPSBzcGVjcy51dHhvc1tsZW4gLSBpIC0gMV07XG5cdFx0XHRcdHNwZWNzLnV0eG9zW2xlbiAtIGkgLSAxXSA9IHRtcDtcblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3Q6XG5cdFx0XHRzcGVjcy51dHhvcyA9IHNwZWNzLnV0eG9zLnNvcnQoKGEsIGIpID0+XG5cdFx0XHRcdGEudmFsdWUgPCBiLnZhbHVlID8gLTEgOiBhLnZhbHVlID4gYi52YWx1ZSA/IDEgOiAwLFxuXHRcdFx0KTtcblx0XHRcdGJyZWFrO1xuXHR9XG5cblx0Ly8gZmlsdGVyIGxvY2tlZCBVVFhPczpcblx0Y29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG5cdHNwZWNzLnV0eG9zID0gc3BlY3MudXR4b3MuZmlsdGVyKCh1dHhvKSA9PiB1dHhvLnRpbWVsb2NrIDw9IG5vdyk7XG5cblx0Ly8gaWYgdGFyZ2V0IHZhbHVlIGlzIHNwZWNpZmllZCwgZmlsdGVyIHNwYXJlIFVUWE9zXG5cdGNvbnN0IHBlZHJvcyA9IHNwZWNzPy52YWx1ZT8ucGVkcm9zO1xuXHRpZiAocGVkcm9zKSB7XG5cdFx0aWYgKHN0cmF0ZWd5ID09PSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdCkge1xuXHRcdFx0Y29uc3Qgc2xpbUZpdEluZGV4ID0gc3BlY3MudXR4b3MuZmluZEluZGV4KFxuXHRcdFx0XHQodXR4bykgPT4gdXR4by52YWx1ZSA8PSBwZWRyb3MsXG5cdFx0XHQpO1xuXHRcdFx0aWYgKHNsaW1GaXRJbmRleCA+PSAxKSB7XG5cdFx0XHRcdHJldHVybiBzcGVjcy51dHhvcy5zbGljZShzbGltRml0SW5kZXggLSAxLCBzbGltRml0SW5kZXgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRsZXQgY292ZXJlZDogYmlnaW50ID0gMG47XG5cdFx0cmV0dXJuIHNwZWNzLnV0eG9zLmZpbHRlcigodXR4bykgPT4ge1xuXHRcdFx0Y29uc3QgZmlsdGVyID0gY292ZXJlZCA8PSBwZWRyb3M7XG5cdFx0XHRjb3ZlcmVkICs9IEJpZ0ludCh1dHhvLnZhbHVlKTtcblx0XHRcdHJldHVybiBmaWx0ZXI7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHNwZWNzLnV0eG9zO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaGEyNTYoYnVmZmVyOiBhbnkpIHtcblx0Y29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIik7XG5cdGhhc2gudXBkYXRlKGJ1ZmZlcik7XG5cdHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG90YWxDb2lucyhiYWxhbmNlOiBCYWxhbmNlKTogQ29pbnMge1xuXHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyhcblx0XHRCaWdJbnQoYmFsYW5jZS5sb2NrZWQpICsgQmlnSW50KGJhbGFuY2Uuc3Rha2VkKSArIEJpZ0ludChiYWxhbmNlLnVubG9ja2VkKSxcblx0KTtcbn1cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQWEscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVoQyxPQUFPLEVBR04sU0FBUyxFQUNULGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsU0FBUyxHQUNULE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUN0QixHQUFHLENBQUMsS0FBYSxFQUFFLEdBQUcsTUFBZ0I7UUFDckMsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLEdBQUcsS0FBSztnQkFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztDQUNELENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUUxQixNQUFNLFlBQVksR0FBRyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLGVBQWUsR0FBRyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFFakgsTUFBTSxxQkFBcUIs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VUFBVSxVQUFVLENBQUMsT0FBZ0I7SUFDMUMsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDckcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZURlY2lwaGVyaXYsIGNyZWF0ZUhhc2gsIHBia2RmMlN5bmMgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IGJlY2gzMiB9IGZyb20gXCJiZWNoMzJcIjtcbmltcG9ydCBzZWNwMjU2azEgZnJvbSBcInNlY3AyNTZrMVwiO1xuaW1wb3J0IHR5cGUgeyBCYWxhbmNlLCBIZXhTdHJpbmcgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IGZyb21IZXhTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCB7IENvaW5zLCB0eXBlIFV0eG8sIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCB7IGJlY2gzMiB9IGZyb20gXCJiZWNoMzJcIjtcblxuZXhwb3J0IHtcblx0S2V5ZWRTaWduYXR1cmUsXG5cdFByaXZhdGVLZXksXG5cdFB1YmxpY0tleSxcblx0UHVibGljS2V5SGFzaCxcblx0UmVjb3ZlcmFibGVTaWduYXR1cmUsXG5cdFNpZ25hdHVyZSxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGNvbnN0IEJpZ01hdGggPSB7XG5cdG1heCh2YWx1ZTogYmlnaW50LCAuLi52YWx1ZXM6IGJpZ2ludFtdKTogYmlnaW50IHtcblx0XHRmb3IgKGNvbnN0IHYgb2YgdmFsdWVzKSBpZiAodiA+IHZhbHVlKSB2YWx1ZSA9IHY7XG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9LFxufTtcblxuY29uc3QgQ0hBSU5fQ09ERV9MRU5HVEggPSAzMjtcbmNvbnN0IERFUFRIX0xFTkdUSCA9IDE7XG5jb25zdCBLRVlfTEVOR1RIID0gMzM7XG5jb25zdCBLRVlfUEFUSF9MRU5HVEggPSA0O1xuXG5jb25zdCBCRUNIMzJfTElNSVQgPSBERVBUSF9MRU5HVEggKyAoMjU2ICoqIERFUFRIX0xFTkdUSCAtIDEpICogS0VZX1BBVEhfTEVOR1RIICsgQ0hBSU5fQ09ERV9MRU5HVEggKyBLRVlfTEVOR1RIO1xuXG5jb25zdCBnZXRFeHBlY3RlZERhdGFMZW5ndGggPSAoZGVwdGg6IG51bWJlcikgPT5cblx0REVQVEhfTEVOR1RIICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEggKyBDSEFJTl9DT0RFX0xFTkdUSCArIEtFWV9MRU5HVEg7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNpcGhlclhwcnYoc2xpcDMyOiBzdHJpbmcsIHBhc3N3ZDogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgeyBwcmVmaXgsIHdvcmRzIH0gPSBiZWNoMzIuZGVjb2RlKHNsaXAzMiwgQkVDSDMyX0xJTUlUKTtcblx0aWYgKHByZWZpeCAhPT0gXCJ4cHJ2XCIpIHtcblx0XHR0aHJvdyBFcnJvcihgSW52YWxpZCBYUFJWIGhlYWRlcjogXCIke3ByZWZpeH1cIiAhPSBcInhwcnZcImApO1xuXHR9XG5cdGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGJlY2gzMi5mcm9tV29yZHMod29yZHMpKS5idWZmZXI7XG5cdGNvbnN0IGl2ID0gYnVmZmVyLnNsaWNlKDAsIDE2KTtcblx0Y29uc3Qgc2FsdCA9IGJ1ZmZlci5zbGljZSgxNiwgNDgpO1xuXHRjb25zdCBkYXRhID0gYnVmZmVyLnNsaWNlKDQ4KTtcblx0Y29uc3Qga2V5ID0gcGJrZGYyU3luYyhwYXNzd2QsIEJ1ZmZlci5mcm9tKHNhbHQpLCAxMDAwMCwgMzIsIFwic2hhMjU2XCIpO1xuXHRjb25zdCBkZWNpcGhlciA9IGNyZWF0ZURlY2lwaGVyaXYoXCJhZXMtMjU2LWNiY1wiLCBrZXksIEJ1ZmZlci5mcm9tKGl2KSk7XG5cdGxldCBkZWNyeXB0ZWQgPSBkZWNpcGhlci51cGRhdGUoQnVmZmVyLmZyb20oZGF0YSksIHVuZGVmaW5lZCwgXCJ1dGYtOFwiKTtcblx0ZGVjcnlwdGVkICs9IGRlY2lwaGVyLmZpbmFsKFwidXRmLThcIik7XG5cdHJldHVybiBkZWNyeXB0ZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlY2RzYVZlcmlmeShtc2c6IEJ1ZmZlcjxBcnJheUJ1ZmZlckxpa2U+LCBwdWJLZXk6IEhleFN0cmluZywgc2lnbmF0dXJlOiBIZXhTdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIHNlY3AyNTZrMS5lY2RzYVZlcmlmeShmcm9tSGV4U3RyaW5nKHNpZ25hdHVyZSksIG1zZywgZnJvbUhleFN0cmluZyhwdWJLZXkpKTtcbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlWHBydiA9IChcblx0c2xpcDMyOiBzdHJpbmcsXG4pOiB7XG5cdGNoYWluQ29kZTogVWludDhBcnJheTtcblx0a2V5UGF0aDogQXJyYXk8bnVtYmVyPjtcblx0cHJpdmF0ZUtleTogVWludDhBcnJheTtcbn0gPT4ge1xuXHQvLyBkZWNvZGUgc2xpcDMyIHN0cmluZ1xuXHRjb25zdCB7IHByZWZpeCwgd29yZHMgfSA9IGJlY2gzMi5kZWNvZGUoc2xpcDMyLCBCRUNIMzJfTElNSVQpO1xuXHRjb25zdCBieXRlcyA9IGJlY2gzMi5mcm9tV29yZHMod29yZHMpO1xuXG5cdC8vIGNoZWNrIHByZWZpeFxuXHRpZiAocHJlZml4ICE9PSBcInhwcnZcIikge1xuXHRcdHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IGJhZCBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKTtcblx0fVxuXG5cdC8vIGNoZWNrIGV4cGVjdGVkIGRhdGEgbGVuZ3RoXG5cdGNvbnN0IGRlcHRoID0gYnl0ZXNbMF07XG5cdGlmIChkZXB0aCAhPT0gMCkge1xuXHRcdHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IG5vdCBhIG1hc3RlciBwcml2YXRlIGtleSAoZGVwdGg6ICR7ZGVwdGh9KWApO1xuXHR9XG5cdGNvbnN0IGV4cGVjdGVkTGVuZ3RoID0gZ2V0RXhwZWN0ZWREYXRhTGVuZ3RoKGRlcHRoKTtcblx0aWYgKGJ5dGVzLmxlbmd0aCAhPT0gZXhwZWN0ZWRMZW5ndGgpIHtcblx0XHR0aHJvdyBFcnJvcihgSW52YWxpZCBYUFJWOiBiYWQgZGF0YSBsZW5ndGgoZXhwZWN0ZWQ6ICR7ZXhwZWN0ZWRMZW5ndGh9LCB3YXM6ICR7Ynl0ZXMubGVuZ3RofWApO1xuXHR9XG5cdGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGJ5dGVzKS5idWZmZXI7XG5cblx0Ly8gZXh0cmFjdCBrZXkgcGF0aCAoMzItYml0IHVuc2lnbmVkIGludGVnZXJzLCBiaWcgZW5kaWFuKVxuXHRjb25zdCBrZXlQYXRoOiBBcnJheTxudW1iZXI+ID0gW107XG5cdGNvbnN0IGtleVBhdGhWaWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlciwgREVQVEhfTEVOR1RILCBkZXB0aCAqIEtFWV9QQVRIX0xFTkdUSCk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgZGVwdGg7IGkrKykge1xuXHRcdGtleVBhdGgucHVzaChrZXlQYXRoVmlldy5nZXRVaW50MzIoaSAqIEtFWV9QQVRIX0xFTkdUSCwgZmFsc2UpKTtcblx0fVxuXG5cdC8vIGV4dHJhY3QgY2hhaW4gY29kZVxuXHRjb25zdCBjaGFpbkNvZGU6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShDSEFJTl9DT0RFX0xFTkdUSCk7XG5cdGNvbnN0IGNoYWluQ29kZU9mZnNldCA9IERFUFRIX0xFTkdUSCArIGRlcHRoICogS0VZX1BBVEhfTEVOR1RIO1xuXHRjb25zdCBjaGFpbkNvZGVWaWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlciwgY2hhaW5Db2RlT2Zmc2V0LCBDSEFJTl9DT0RFX0xFTkdUSCk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgY2hhaW5Db2RlLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y2hhaW5Db2RlW2ldID0gY2hhaW5Db2RlVmlldy5nZXRVaW50OChpKTtcblx0fVxuXG5cdC8vIGV4dHJhY3Qga2V5IGJ5dGVzXG5cdGNvbnN0IHByaXZhdGVLZXk6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShLRVlfTEVOR1RIKTtcblx0Y29uc3QgcHJpdmF0ZUtleVZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLCBjaGFpbkNvZGVPZmZzZXQgKyBDSEFJTl9DT0RFX0xFTkdUSCk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgcHJpdmF0ZUtleS5sZW5ndGg7IGkrKykge1xuXHRcdHByaXZhdGVLZXlbaV0gPSBwcml2YXRlS2V5Vmlldy5nZXRVaW50OChpKTtcblx0fVxuXG5cdC8vIGNoZWNrIGlmIHByaXZhdGUgb3IgcHVibGljIGtleSBhcmUgdmFsaWRcblx0aWYgKHByaXZhdGVLZXlbMF0gIT09IDAgfHwgIXNlY3AyNTZrMS5wcml2YXRlS2V5VmVyaWZ5KHByaXZhdGVLZXkuc2xpY2UoMSkpKSB7XG5cdFx0dGhyb3cgRXJyb3IoYE1hbGZvcm1lZCBzbGlwMzI6IG5vdCBhIHByaXZhdGUga2V5YCk7XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGNoYWluQ29kZSxcblx0XHRrZXlQYXRoLFxuXHRcdHByaXZhdGVLZXk6IHByaXZhdGVLZXkuc2xpY2UoMSksXG5cdH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0VXR4b3Moc3BlY3M6IHtcblx0dXR4b3M6IEFycmF5PFV0eG8+O1xuXHR2YWx1ZT86IENvaW5zO1xuXHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcbn0pOiBBcnJheTxVdHhvPiB7XG5cdGNvbnN0IHN0cmF0ZWd5ID0gc3BlY3Muc3RyYXRlZ3kgfHwgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNsaW1GaXQ7XG5cdHN3aXRjaCAoc3RyYXRlZ3kpIHtcblx0XHRjYXNlIFV0eG9TZWxlY3Rpb25TdHJhdGVneS5CaWdGaXJzdDpcblx0XHRjYXNlIFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbGltRml0OlxuXHRcdFx0c3BlY3MudXR4b3MgPSBzcGVjcy51dHhvcy5zb3J0KChhLCBiKSA9PiAoYS52YWx1ZSA+IGIudmFsdWUgPyAtMSA6IGEudmFsdWUgPCBiLnZhbHVlID8gMSA6IDApKTtcblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuUmFuZG9tOiB7XG5cdFx0XHRjb25zdCBsZW4gPSBzcGVjcy51dHhvcy5sZW5ndGg7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGxlbiAtIGkpKTtcblx0XHRcdFx0Y29uc3QgdG1wID0gc3BlY3MudXR4b3NbaW5kZXhdO1xuXHRcdFx0XHRzcGVjcy51dHhvc1tpbmRleF0gPSBzcGVjcy51dHhvc1tsZW4gLSBpIC0gMV07XG5cdFx0XHRcdHNwZWNzLnV0eG9zW2xlbiAtIGkgLSAxXSA9IHRtcDtcblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNhc2UgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3Q6XG5cdFx0XHRzcGVjcy51dHhvcyA9IHNwZWNzLnV0eG9zLnNvcnQoKGEsIGIpID0+IChhLnZhbHVlIDwgYi52YWx1ZSA/IC0xIDogYS52YWx1ZSA+IGIudmFsdWUgPyAxIDogMCkpO1xuXHRcdFx0YnJlYWs7XG5cdH1cblxuXHQvLyBmaWx0ZXIgbG9ja2VkIFVUWE9zOlxuXHRjb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcblx0c3BlY3MudXR4b3MgPSBzcGVjcy51dHhvcy5maWx0ZXIoKHV0eG8pID0+IHV0eG8udGltZWxvY2sgPD0gbm93KTtcblxuXHQvLyBpZiB0YXJnZXQgdmFsdWUgaXMgc3BlY2lmaWVkLCBmaWx0ZXIgc3BhcmUgVVRYT3Ncblx0Y29uc3QgcGVkcm9zID0gc3BlY3M/LnZhbHVlPy5wZWRyb3M7XG5cdGlmIChwZWRyb3MpIHtcblx0XHRpZiAoc3RyYXRlZ3kgPT09IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbGltRml0KSB7XG5cdFx0XHRjb25zdCBzbGltRml0SW5kZXggPSBzcGVjcy51dHhvcy5maW5kSW5kZXgoKHV0eG8pID0+IHV0eG8udmFsdWUgPD0gcGVkcm9zKTtcblx0XHRcdGlmIChzbGltRml0SW5kZXggPj0gMSkge1xuXHRcdFx0XHRyZXR1cm4gc3BlY3MudXR4b3Muc2xpY2Uoc2xpbUZpdEluZGV4IC0gMSwgc2xpbUZpdEluZGV4KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0bGV0IGNvdmVyZWQ6IGJpZ2ludCA9IDBuO1xuXHRcdHJldHVybiBzcGVjcy51dHhvcy5maWx0ZXIoKHV0eG8pID0+IHtcblx0XHRcdGNvbnN0IGZpbHRlciA9IGNvdmVyZWQgPD0gcGVkcm9zO1xuXHRcdFx0Y292ZXJlZCArPSBCaWdJbnQodXR4by52YWx1ZSk7XG5cdFx0XHRyZXR1cm4gZmlsdGVyO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBzcGVjcy51dHhvcztcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhMjU2KGJ1ZmZlcjogYW55KSB7XG5cdGNvbnN0IGhhc2ggPSBjcmVhdGVIYXNoKFwic2hhMjU2XCIpO1xuXHRoYXNoLnVwZGF0ZShidWZmZXIpO1xuXHRyZXR1cm4gaGFzaC5kaWdlc3QoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvdGFsQ29pbnMoYmFsYW5jZTogQmFsYW5jZSk6IENvaW5zIHtcblx0cmV0dXJuIENvaW5zLmZyb21QZWRyb3MoQmlnSW50KGJhbGFuY2UubG9ja2VkKSArIEJpZ0ludChiYWxhbmNlLnN0YWtlZCkgKyBCaWdJbnQoYmFsYW5jZS51bmxvY2tlZCkpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/wallet.ts"],"names":[],"mappings":"AAQA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEf,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,9 +90,7 @@ export class Wallet {
|
|
|
90
90
|
return info;
|
|
91
91
|
}
|
|
92
92
|
get changePkh() {
|
|
93
|
-
return this.accounts.length > 0
|
|
94
|
-
? this.accounts[0].changePkh
|
|
95
|
-
: this.coinbase.pkh;
|
|
93
|
+
return this.accounts.length > 0 ? this.accounts[0].changePkh : this.coinbase.pkh;
|
|
96
94
|
}
|
|
97
95
|
get network() {
|
|
98
96
|
return this.provider.network;
|
|
@@ -101,14 +99,10 @@ export class Wallet {
|
|
|
101
99
|
return this.accounts.length > 0 ? this.accounts[0].pkh : this.coinbase.pkh;
|
|
102
100
|
}
|
|
103
101
|
get publicKey() {
|
|
104
|
-
return this.accounts.length > 0
|
|
105
|
-
? this.accounts[0].publicKey
|
|
106
|
-
: this.coinbase.publicKey;
|
|
102
|
+
return this.accounts.length > 0 ? this.accounts[0].publicKey : this.coinbase.publicKey;
|
|
107
103
|
}
|
|
108
104
|
get privateKey() {
|
|
109
|
-
return this.accounts.length > 0
|
|
110
|
-
? this.accounts[0].privateKey
|
|
111
|
-
: this.coinbase.privateKey;
|
|
105
|
+
return this.accounts.length > 0 ? this.accounts[0].privateKey : this.coinbase.privateKey;
|
|
112
106
|
}
|
|
113
107
|
authorizeEvmAddress(evmAddress) {
|
|
114
108
|
return this.accounts.length > 0
|
|
@@ -155,24 +149,18 @@ export class Wallet {
|
|
|
155
149
|
async getDelegatees(order, leftJoin = true) {
|
|
156
150
|
const records = [];
|
|
157
151
|
records.push(...(await this.coinbase.getDelegatees(order)));
|
|
158
|
-
await Promise.all(this._accounts.map((account) => account
|
|
159
|
-
.getDelegatees(order, leftJoin)
|
|
160
|
-
.then((entries) => records.push(...entries))));
|
|
152
|
+
await Promise.all(this._accounts.map((account) => account.getDelegatees(order, leftJoin).then((entries) => records.push(...entries))));
|
|
161
153
|
if (order) {
|
|
162
154
|
const reverse = order?.reverse ? +1 : -1;
|
|
163
155
|
return records.sort((a, b) => {
|
|
164
156
|
switch (order.by) {
|
|
165
157
|
case StakesOrderBy.Coins:
|
|
166
|
-
return (
|
|
167
|
-
? 1
|
|
168
|
-
: a.value.coins > b.value.coins
|
|
169
|
-
? -1
|
|
170
|
-
: 0) * reverse);
|
|
158
|
+
return (a.value.coins < b.value.coins ? 1 : a.value.coins > b.value.coins ? -1 : 0) * reverse;
|
|
171
159
|
case StakesOrderBy.Mining:
|
|
172
160
|
return (b.value.epochs.mining - a.value.epochs.mining) * reverse;
|
|
173
161
|
case StakesOrderBy.Witnessing:
|
|
174
|
-
return (
|
|
175
|
-
|
|
162
|
+
return (b.value.epochs.witnessing - a.value.epochs.witnessing) * reverse;
|
|
163
|
+
default:
|
|
176
164
|
return (b.value.nonce - a.value.nonce) * reverse;
|
|
177
165
|
}
|
|
178
166
|
});
|
|
@@ -196,9 +184,7 @@ export class Wallet {
|
|
|
196
184
|
// --- IWallet ----------------------------------------------------------------------------------------------------
|
|
197
185
|
deriveAccounts(limit) {
|
|
198
186
|
if (limit > this._accounts.length) {
|
|
199
|
-
const startIndex = this._accounts.length > 0
|
|
200
|
-
? this.accounts[this.accounts.length - 1].index + 1
|
|
201
|
-
: 0;
|
|
187
|
+
const startIndex = this._accounts.length > 0 ? this.accounts[this.accounts.length - 1].index + 1 : 0;
|
|
202
188
|
limit = limit - this._accounts.length;
|
|
203
189
|
for (let ix = 0; ix < limit; ix++) {
|
|
204
190
|
this._accounts.push(new Account(this.root, this.provider, startIndex + ix, this.strategy));
|
|
@@ -244,4 +230,4 @@ export class Wallet {
|
|
|
244
230
|
return account?.getSigner(pkh) || this.coinbase.getSigner(pkh);
|
|
245
231
|
}
|
|
246
232
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0seUJBQXlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFNTixhQUFhLEdBQ2IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBU3pDLE9BQU8sRUFNTixxQkFBcUIsR0FDckIsTUFBTSxZQUFZLENBQUM7QUFFcEIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQU0sT0FBTyxNQUFNO0lBQ1IsSUFBSSxDQUFTO0lBRWIsU0FBUyxHQUFvQixFQUFFLENBQUM7SUFFMUIsUUFBUSxDQUFZO0lBQ3BCLFFBQVEsQ0FBbUI7SUFDcEMsUUFBUSxDQUF3QjtJQUV2Qzs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQXlCcEI7UUFDQSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO1FBQ3RELElBQUksQ0FBQyxJQUFJO1lBQ1IsTUFBTSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUN6RSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUNsQixNQUFNLEtBQUssQ0FBQyxv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QyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDN0IsT0FBTyxPQUFPLENBQUM7Z0JBQ2hCLENBQUM7WUFDRixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLE9BQU8sQ0FBQztRQUNoQixDQUFDO0lBQ0YsQ0FBQztJQUVNLFNBQVMsQ0FDZixHQUF5QixFQUN6QixHQUFZO1FBRVosSUFBSSxDQUFDLEdBQUc7WUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGVjYyBmcm9tIFwiQGJpdGNvaW5lcmxhYi9zZWNwMjU2azFcIjtcblxuaW1wb3J0IHsgQklQMzJGYWN0b3J5IH0gZnJvbSBcImJpcDMyXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5jb25zdCBiaXAzMiA9IEJJUDMyRmFjdG9yeShlY2MpO1xuXG5pbXBvcnQgeyBKc29uUnBjUHJvdmlkZXIgfSBmcm9tIFwiLi4vcnBjL2luZGV4LmpzXCI7XG5pbXBvcnQge1xuXHR0eXBlIEJhbGFuY2UsXG5cdHR5cGUgSGV4U3RyaW5nLFxuXHR0eXBlIE5ldHdvcmssXG5cdHR5cGUgUXVlcnlTdGFrZXNPcmRlcixcblx0dHlwZSBTdGFrZUVudHJ5LFxuXHRTdGFrZXNPcmRlckJ5LFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tIFwiLi9hY2NvdW50LmpzXCI7XG5pbXBvcnQgeyBDb2luYmFzZSB9IGZyb20gXCIuL2NvaW5iYXNlLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdElBY2NvdW50LFxuXHRJQklQMzIsXG5cdElDb2luYmFzZSxcblx0SUpzb25ScGNQcm92aWRlcixcblx0SVNpZ25lcixcblx0SVdhbGxldCxcbn0gZnJvbSBcIi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBDb2lucyxcblx0dHlwZSBQdWJsaWNLZXksXG5cdHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyxcblx0dHlwZSBVdHhvLFxuXHR0eXBlIFV0eG9DYWNoZUluZm8sXG5cdFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuY29uc3QgREVGQVVMVF9HQVAgPSAyMDtcblxuZXhwb3J0IGNsYXNzIFdhbGxldCBpbXBsZW1lbnRzIElXYWxsZXQge1xuXHRwcm90ZWN0ZWQgcm9vdDogSUJJUDMyO1xuXG5cdHByb3RlY3RlZCBfYWNjb3VudHM6IEFycmF5PElBY2NvdW50PiA9IFtdO1xuXG5cdHB1YmxpYyByZWFkb25seSBjb2luYmFzZTogSUNvaW5iYXNlO1xuXHRwdWJsaWMgcmVhZG9ubHkgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXI7XG5cdHB1YmxpYyBzdHJhdGVneTogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYSBXYWxsZXQgYnkgcmVhZGluZyB0aGUgWFBSViBtYXN0ZXIga2V5IGZyb20gdGhlIFdJVE5FVF9TREtfV0FMTEVUX01BU1RFUl9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUuXG5cdCAqIEBwYXJhbSBzcGVjcyBXYWxsZXQgY3JlYXRpb24gcGFyYW1ldGVycy5cblx0ICovXG5cdHN0YXRpYyBhc3luYyBmcm9tRW52KG9wdGlvbnM6IHtcblx0XHQvKipcblx0XHQgKiBQYXNzd29yZCB0byBkZWNyeXB0IHRoZSBYUFJWIG1hc3RlciBrZXkgcmVhZCBmcm9tIGVudmlyb25tZW50LCBpbiBjYXNlIGl0J3MgZW5jcnlwdGVkLlxuXHRcdCAqL1xuXHRcdHBhc3N3ZD86IHN0cmluZztcblx0XHQvKipcblx0XHQgKiBOdW1iZXIgb2YgY29uc2VjdXRpdmUgYWNjb3VudHMgd2l0aCBubyBmdW5kcyBiZWZvcmUgc3RvcHBpbmcgZGVyaXZhdGlvbiBvZiBuZXcgV2FsbGV0IGFjY291bnRzLlxuXHRcdCAqL1xuXHRcdGdhcD86IG51bWJlcjtcblx0XHQvKipcblx0XHQgKiBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0byBkZXJpdmUuXG5cdFx0ICovXG5cdFx0bGltaXQ/OiBudW1iZXI7XG5cdFx0LyoqXG5cdFx0ICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxuXHRcdCAqL1xuXHRcdHByb3ZpZGVyPzogSUpzb25ScGNQcm92aWRlcjtcblx0XHQvKipcblx0XHQgKiBVVFhPIHNlbGVjdGlvbiBzdHJhdGVneSB3aGVuIGJ1aWxkaW5nIHRyYW5zYWN0aW9ucyBvdXQgb2YgdGhpcyB3YWxsZXQgKGRlZmF1bHQ6IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0KS5cblx0XHQgKi9cblx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0XHQvKipcblx0XHQgKiBPbmx5IGRlcml2ZSBhY2NvdW50cyB0aGF0IGhvbGQgc29tZSB1bmxvY2tlZCBiYWxhbmNlIG9mICRXSVQuXG5cdFx0ICovXG5cdFx0b25seVdpdGhGdW5kcz86IGJvb2xlYW47XG5cdH0pOiBQcm9taXNlPFdhbGxldD4ge1xuXHRcdGNvbnN0IHhwcnYgPSBwcm9jZXNzLmVudi5XSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZO1xuXHRcdGlmICgheHBydilcblx0XHRcdHRocm93IEVycm9yKGBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZIG11c3QgYmUgc2V0IG9uIGVudmlyb25tZW50LmApO1xuXHRcdGlmICh4cHJ2Lmxlbmd0aCA+IDExNykge1xuXHRcdFx0aWYgKCFvcHRpb25zLnBhc3N3ZClcblx0XHRcdFx0dGhyb3cgRXJyb3IoYE1pc3NpbmcgcGFzc3dvcmQgZm9yIFdJVE5FVF9TREtfV0FMTEVUX01BU1RFUl9LRVkuYCk7XG5cdFx0XHRyZXR1cm4gV2FsbGV0LmZyb21FbmNyeXB0ZWRYcHJ2KHhwcnYsIG9wdGlvbnM/LnBhc3N3ZCwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBXYWxsZXQuZnJvbVhwcnYoeHBydiwgb3B0aW9ucyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhIFdhbGxldCBieSB1c2luZyBwYXNzZWQgWFBSViBtYXN0ZXIga2V5LlxuXHQgKiBAcGFyYW0geHBydiBEZWNyeXB0ZWQgWFBSViBtYXN0ZXIga2V5IHN0cmluZy5cblx0ICogQHBhcmFtIG9wdGlvbnMgV2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgZnJvbVhwcnYoXG5cdFx0eHBydjogc3RyaW5nLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHQvKipcblx0XHRcdCAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXG5cdFx0XHQgKi9cblx0XHRcdGdhcD86IG51bWJlcjtcblx0XHRcdC8qKlxuXHRcdFx0ICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLlxuXHRcdFx0ICovXG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdC8qKlxuXHRcdFx0ICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxuXHRcdFx0ICovXG5cdFx0XHRwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXI7XG5cdFx0XHQvKipcblx0XHRcdCAqIFVUWE8gc2VsZWN0aW9uIHN0cmF0ZWd5IHdoZW4gYnVpbGRpbmcgdHJhbnNhY3Rpb25zIG91dCBvZiB0aGlzIHdhbGxldCAoZGVmYXVsdDogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3QpLlxuXHRcdFx0ICovXG5cdFx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0XHRcdC8qKlxuXHRcdFx0ICogT25seSBkZXJpdmUgYWNjb3VudHMgaG9sZGluZyBzb21lICRXSVQgZnVuZHMgKGVpdGhlciBsb2NrZWQsIHN0YWtlZCBvciB1bmxvY2tlZCkuXG5cdFx0XHQgKi9cblx0XHRcdG9ubHlXaXRoRnVuZHM/OiBib29sZWFuO1xuXHRcdH0sXG5cdCk6IFByb21pc2U8V2FsbGV0PiB7XG5cdFx0Y29uc3QgeyBjaGFpbkNvZGUsIHByaXZhdGVLZXkgfSA9IHV0aWxzLnBhcnNlWHBydih4cHJ2KTtcblx0XHRjb25zdCByb290ID0gYmlwMzIuZnJvbVByaXZhdGVLZXkoXG5cdFx0XHRCdWZmZXIuZnJvbShwcml2YXRlS2V5KSxcblx0XHRcdEJ1ZmZlci5mcm9tKGNoYWluQ29kZSksXG5cdFx0KTtcblx0XHRjb25zdCBwcm92aWRlciA9IG9wdGlvbnM/LnByb3ZpZGVyIHx8IChhd2FpdCBKc29uUnBjUHJvdmlkZXIuZnJvbUVudigpKTtcblx0XHRhd2FpdCBwcm92aWRlci5jb25zdGFudHMoKTtcblx0XHRjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KHJvb3QsIHByb3ZpZGVyLCBvcHRpb25zPy5zdHJhdGVneSk7XG5cdFx0aWYgKG9wdGlvbnM/Lm9ubHlXaXRoRnVuZHMpIHtcblx0XHRcdGF3YWl0IHdhbGxldC5leHBsb3JlQWNjb3VudHMob3B0aW9ucz8ubGltaXQgfHwgMCwgb3B0aW9ucz8uZ2FwKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0d2FsbGV0LmRlcml2ZUFjY291bnRzKG9wdGlvbnM/LmxpbWl0IHx8IDEpO1xuXHRcdH1cblx0XHQvLyBsb2FkIHVwIHV0eG9zIGNhY2hlXG5cdFx0YXdhaXQgd2FsbGV0LmdldFV0eG9zKHRydWUpO1xuXHRcdHJldHVybiB3YWxsZXQ7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIGEgV2FsbGV0IGJ5IHVzaW5nIHBhc3NlZCBYUFJWIG1hc3RlciBrZXkuXG5cdCAqIEBwYXJhbSB4cHJ2IEVuY3J5cHRlZCBYUFJWIG1hc3RlciBrZXkgc3RyaW5nLlxuXHQgKiBAcGFyYW0gcGFzc3dkIFBhc3N3b3JkIHRvIGRlY2lwaGVyIHRoZSBYUFJWIG1hc3RlciBrZXkuXG5cdCAqIEBwYXJhbSBvcHRpb25zIFdhbGxldCBjcmVhdGlvbiBwYXJhbWV0ZXJzLlxuXHQgKi9cblx0c3RhdGljIGFzeW5jIGZyb21FbmNyeXB0ZWRYcHJ2KFxuXHRcdHhwcnY6IHN0cmluZyxcblx0XHRwYXNzd2Q6IHN0cmluZyxcblx0XHRvcHRpb25zPzoge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBOdW1iZXIgb2YgY29uc2VjdXRpdmUgYWNjb3VudHMgd2l0aCBubyBmdW5kcyBiZWZvcmUgc3RvcHBpbmcgZGVyaXZhdGlvbiBvZiBuZXcgV2FsbGV0IGFjY291bnRzLlxuXHRcdFx0ICovXG5cdFx0XHRnYXA/OiBudW1iZXI7XG5cdFx0XHQvKipcblx0XHRcdCAqIE1heGltdW0gbnVtYmVyIG9mIGFjY291bnRzIHRvIGRlcml2ZS5cblx0XHRcdCAqL1xuXHRcdFx0bGltaXQ/OiBudW1iZXI7XG5cdFx0XHQvKipcblx0XHRcdCAqIFNwZWNpZmljIFdpdC9SUEMgcHJvdmlkZXIgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBXaXRuZXQgbmV0d29yay5cblx0XHRcdCAqL1xuXHRcdFx0cHJvdmlkZXI/OiBJSnNvblJwY1Byb3ZpZGVyO1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBVVFhPIHNlbGVjdGlvbiBzdHJhdGVneSB3aGVuIGJ1aWxkaW5nIHRyYW5zYWN0aW9ucyBvdXQgb2YgdGhpcyB3YWxsZXQgKGRlZmF1bHQ6IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0KS5cblx0XHRcdCAqL1xuXHRcdFx0c3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3k7XG5cdFx0XHQvKipcblx0XHRcdCAqIE9ubHkgZGVyaXZlIGFjY291bnRzIGhvbGRpbmcgc29tZSAkV0lUIGZ1bmRzIChlaXRoZXIgbG9ja2VkLCBzdGFrZWQgb3IgdW5sb2NrZWQpLlxuXHRcdFx0ICovXG5cdFx0XHRvbmx5V2l0aEZ1bmRzPzogYm9vbGVhbjtcblx0XHR9LFxuXHQpOiBQcm9taXNlPFdhbGxldD4ge1xuXHRcdHJldHVybiBXYWxsZXQuZnJvbVhwcnYodXRpbHMuZGVjaXBoZXJYcHJ2KHhwcnYsIHBhc3N3ZCksIG9wdGlvbnMpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cm9vdDogSUJJUDMyLFxuXHRcdHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLFxuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxuXHQpIHtcblx0XHR0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXI7XG5cdFx0dGhpcy5jb2luYmFzZSA9IG5ldyBDb2luYmFzZShyb290LCBwcm92aWRlciwgc3RyYXRlZ3kpO1xuXHRcdHRoaXMucm9vdCA9IHJvb3Q7XG5cdFx0dGhpcy5zdHJhdGVneSA9IHN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0O1xuXHRcdHRoaXMuZGVyaXZlQWNjb3VudHMoMSk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGFjY291bnRzKCk6IEFycmF5PElBY2NvdW50PiB7XG5cdFx0cmV0dXJuIHRoaXMuX2FjY291bnRzO1xuXHR9XG5cblx0cHVibGljIGdldCBjYWNoZUluZm8oKTogVXR4b0NhY2hlSW5mbyB7XG5cdFx0Y29uc3QgaW5mbzogVXR4b0NhY2hlSW5mbyA9IHtcblx0XHRcdGV4cGVuZGFibGU6IDBuLFxuXHRcdFx0c2l6ZTogMCxcblx0XHRcdHRpbWVsb2NrOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcblx0XHR9O1xuXHRcdHRoaXMuYWNjb3VudHM/LmZvckVhY2goKGFjY291bnQpID0+IHtcblx0XHRcdGNvbnN0IGFjY291bnRJbmZvID0gYWNjb3VudC5jYWNoZUluZm87XG5cdFx0XHRpbmZvLmV4cGVuZGFibGUgKz0gYWNjb3VudEluZm8uZXhwZW5kYWJsZTtcblx0XHRcdGluZm8uc2l6ZSArPSBhY2NvdW50SW5mby5zaXplO1xuXHRcdFx0aWYgKGFjY291bnRJbmZvLnRpbWVsb2NrICE9PSAwICYmIGFjY291bnRJbmZvLnRpbWVsb2NrIDwgaW5mby50aW1lbG9jaykge1xuXHRcdFx0XHRpbmZvLnRpbWVsb2NrID0gYWNjb3VudEluZm8udGltZWxvY2s7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKGluZm8udGltZWxvY2sgPT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSBpbmZvLnRpbWVsb2NrID0gMDtcblx0XHRyZXR1cm4gaW5mbztcblx0fVxuXG5cdHB1YmxpYyBnZXQgY2hhbmdlUGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDBcblx0XHRcdD8gdGhpcy5hY2NvdW50c1swXS5jaGFuZ2VQa2hcblx0XHRcdDogdGhpcy5jb2luYmFzZS5wa2g7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IG5ldHdvcmsoKTogTmV0d29yayB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXIubmV0d29yaztcblx0fVxuXG5cdHB1YmxpYyBnZXQgcGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLnBraCA6IHRoaXMuY29pbmJhc2UucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gdGhpcy5hY2NvdW50cy5sZW5ndGggPiAwXG5cdFx0XHQ/IHRoaXMuYWNjb3VudHNbMF0ucHVibGljS2V5XG5cdFx0XHQ6IHRoaXMuY29pbmJhc2UucHVibGljS2V5O1xuXHR9XG5cblx0cHVibGljIGdldCBwcml2YXRlS2V5KCk6IEhleFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMFxuXHRcdFx0PyB0aGlzLmFjY291bnRzWzBdLnByaXZhdGVLZXlcblx0XHRcdDogdGhpcy5jb2luYmFzZS5wcml2YXRlS2V5O1xuXHR9XG5cblx0cHVibGljIGF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzczogSGV4U3RyaW5nKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5hY2NvdW50cy5sZW5ndGggPiAwXG5cdFx0XHQ/IHRoaXMuYWNjb3VudHNbMF0uYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzKVxuXHRcdFx0OiB0aGlzLmNvaW5iYXNlLmF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzcyk7XG5cdH1cblxuXHRwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KToge1xuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0XHRpbmNsdWRlZDogQXJyYXk8VXR4bz47XG5cdH0ge1xuXHRcdGNvbnN0IGluY2x1ZGVkOiBBcnJheTxVdHhvPiA9IFtdO1xuXHRcdHRoaXMuYWNjb3VudHMuZm9yRWFjaCgoYWNjb3VudCkgPT4ge1xuXHRcdFx0Y29uc3QgX3V0eG9zID0gYWNjb3VudC5hZGRVdHhvcyguLi51dHhvcyk7XG5cdFx0XHR1dHhvcyA9IF91dHhvcy5leGNsdWRlZDtcblx0XHRcdGluY2x1ZGVkLnB1c2goLi4uX3V0eG9zLmluY2x1ZGVkKTtcblx0XHR9KTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZXhjbHVkZWQ6IHV0eG9zLFxuXHRcdFx0aW5jbHVkZWQsXG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdW1lVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogQXJyYXk8VXR4bz4ge1xuXHRcdHRoaXMuYWNjb3VudHMuZm9yRWFjaCgoYWNjb3VudCkgPT4ge1xuXHRcdFx0dXR4b3MgPSBhY2NvdW50LmNvbnN1bWVVdHhvcyguLi51dHhvcyk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHV0eG9zO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldEJhbGFuY2UoKTogUHJvbWlzZTxCYWxhbmNlPiB7XG5cdFx0aWYgKHRoaXMuX2FjY291bnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdHJldHVybiBQcm9taXNlLmFsbChcblx0XHRcdFx0dGhpcy5fYWNjb3VudHMubWFwKGFzeW5jIChhY2M6IElBY2NvdW50KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgYmFsYW5jZSA9IGF3YWl0IGFjYy5nZXRCYWxhbmNlKCk7XG5cdFx0XHRcdFx0cmV0dXJuIGJhbGFuY2U7XG5cdFx0XHRcdH0pLFxuXHRcdFx0KS50aGVuKChiYWxhbmNlczogQXJyYXk8QmFsYW5jZT4pID0+IHtcblx0XHRcdFx0cmV0dXJuIGJhbGFuY2VzLnJlZHVjZShcblx0XHRcdFx0XHQocHJldiwgY3VycikgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0bG9ja2VkOiBwcmV2LmxvY2tlZCArIGN1cnIubG9ja2VkLFxuXHRcdFx0XHRcdFx0XHRzdGFrZWQ6IHByZXYuc3Rha2VkICsgY3Vyci5zdGFrZWQsXG5cdFx0XHRcdFx0XHRcdHVubG9ja2VkOiBwcmV2LnVubG9ja2VkICsgY3Vyci51bmxvY2tlZCxcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7IGxvY2tlZDogMG4sIHN0YWtlZDogMG4sIHVubG9ja2VkOiAwbiB9LFxuXHRcdFx0XHQpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB0aGlzLmNvaW5iYXNlLmdldEJhbGFuY2UoKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0RGVsZWdhdGVlcyhcblx0XHRvcmRlcj86IFF1ZXJ5U3Rha2VzT3JkZXIsXG5cdFx0bGVmdEpvaW4gPSB0cnVlLFxuXHQpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0Y29uc3QgcmVjb3JkczogQXJyYXk8U3Rha2VFbnRyeT4gPSBbXTtcblx0XHRyZWNvcmRzLnB1c2goLi4uKGF3YWl0IHRoaXMuY29pbmJhc2UuZ2V0RGVsZWdhdGVlcyhvcmRlcikpKTtcblx0XHRhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdHRoaXMuX2FjY291bnRzLm1hcCgoYWNjb3VudCkgPT5cblx0XHRcdFx0YWNjb3VudFxuXHRcdFx0XHRcdC5nZXREZWxlZ2F0ZWVzKG9yZGVyLCBsZWZ0Sm9pbilcblx0XHRcdFx0XHQudGhlbigoZW50cmllcykgPT4gcmVjb3Jkcy5wdXNoKC4uLmVudHJpZXMpKSxcblx0XHRcdCksXG5cdFx0KTtcblx0XHRpZiAob3JkZXIpIHtcblx0XHRcdGNvbnN0IHJldmVyc2UgPSBvcmRlcj8ucmV2ZXJzZSA/ICsxIDogLTE7XG5cdFx0XHRyZXR1cm4gcmVjb3Jkcy5zb3J0KChhLCBiKSA9PiB7XG5cdFx0XHRcdHN3aXRjaCAob3JkZXIuYnkpIHtcblx0XHRcdFx0XHRjYXNlIFN0YWtlc09yZGVyQnkuQ29pbnM6XG5cdFx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0XHQoYS52YWx1ZS5jb2lucyA8IGIudmFsdWUuY29pbnNcblx0XHRcdFx0XHRcdFx0XHQ/IDFcblx0XHRcdFx0XHRcdFx0XHQ6IGEudmFsdWUuY29pbnMgPiBiLnZhbHVlLmNvaW5zXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IC0xXG5cdFx0XHRcdFx0XHRcdFx0XHQ6IDApICogcmV2ZXJzZVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRjYXNlIFN0YWtlc09yZGVyQnkuTWluaW5nOlxuXHRcdFx0XHRcdFx0cmV0dXJuIChiLnZhbHVlLmVwb2Nocy5taW5pbmcgLSBhLnZhbHVlLmVwb2Nocy5taW5pbmcpICogcmV2ZXJzZTtcblx0XHRcdFx0XHRjYXNlIFN0YWtlc09yZGVyQnkuV2l0bmVzc2luZzpcblx0XHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHRcdChiLnZhbHVlLmVwb2Nocy53aXRuZXNzaW5nIC0gYS52YWx1ZS5lcG9jaHMud2l0bmVzc2luZykgKiByZXZlcnNlXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGNhc2UgU3Rha2VzT3JkZXJCeS5Ob25jZTpcblx0XHRcdFx0XHRcdHJldHVybiAoYi52YWx1ZS5ub25jZSAtIGEudmFsdWUubm9uY2UpICogcmV2ZXJzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiByZWNvcmRzO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFV0eG9zKHJlbG9hZD86IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKFxuXHRcdFx0dGhpcy5hY2NvdW50cy5tYXAoKGFjY291bnQpID0+IGFjY291bnQuZ2V0VXR4b3MocmVsb2FkKSksXG5cdFx0KS50aGVuKGFzeW5jICh1dHhvc3M6IEFycmF5PEFycmF5PFV0eG8+PikgPT4ge1xuXHRcdFx0Ly8gdXR4b3NzLnB1c2goYXdhaXQgdGhpcy5jb2luYmFzZS5nZXRVdHhvcyhyZWxvYWQpKVxuXHRcdFx0cmV0dXJuIHV0eG9zcy5mbGF0KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgc2VsZWN0VXR4b3Moc3BlY3M/OiB7XG5cdFx0dmFsdWU/OiBDb2lucztcblx0XHRyZWxvYWQ/OiBib29sZWFuO1xuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xuXHR9KTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xuXHRcdHJldHVybiB0aGlzLmdldFV0eG9zKHNwZWNzPy5yZWxvYWQpLnRoZW4oKHV0eG9zKSA9PlxuXHRcdFx0dXRpbHMuc2VsZWN0VXR4b3Moe1xuXHRcdFx0XHR1dHhvcyxcblx0XHRcdFx0dmFsdWU6IHNwZWNzPy52YWx1ZSxcblx0XHRcdFx0c3RyYXRlZ3k6IHNwZWNzPy5zdHJhdGVneSB8fCB0aGlzLnN0cmF0ZWd5LFxuXHRcdFx0fSksXG5cdFx0KTtcblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0Ly8gLS0tIElXYWxsZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBkZXJpdmVBY2NvdW50cyhsaW1pdDogbnVtYmVyKTogQXJyYXk8SUFjY291bnQ+IHtcblx0XHRpZiAobGltaXQgPiB0aGlzLl9hY2NvdW50cy5sZW5ndGgpIHtcblx0XHRcdGNvbnN0IHN0YXJ0SW5kZXggPVxuXHRcdFx0XHR0aGlzLl9hY2NvdW50cy5sZW5ndGggPiAwXG5cdFx0XHRcdFx0PyB0aGlzLmFjY291bnRzW3RoaXMuYWNjb3VudHMubGVuZ3RoIC0gMV0uaW5kZXggKyAxXG5cdFx0XHRcdFx0OiAwO1xuXHRcdFx0bGltaXQgPSBsaW1pdCAtIHRoaXMuX2FjY291bnRzLmxlbmd0aDtcblx0XHRcdGZvciAobGV0IGl4ID0gMDsgaXggPCBsaW1pdDsgaXgrKykge1xuXHRcdFx0XHR0aGlzLl9hY2NvdW50cy5wdXNoKFxuXHRcdFx0XHRcdG5ldyBBY2NvdW50KHRoaXMucm9vdCwgdGhpcy5wcm92aWRlciwgc3RhcnRJbmRleCArIGl4LCB0aGlzLnN0cmF0ZWd5KSxcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2FjY291bnRzO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGV4cGxvcmVBY2NvdW50cyhcblx0XHRsaW1pdCA9IDEsXG5cdFx0Z2FwID0gREVGQVVMVF9HQVAsXG5cdCk6IFByb21pc2U8QXJyYXk8SUFjY291bnQ+PiB7XG5cdFx0aWYgKGxpbWl0ID09PSAwIHx8IGxpbWl0ID4gdGhpcy5hY2NvdW50cy5sZW5ndGgpIHtcblx0XHRcdGNvbnN0IGxhc3RJbmRleCA9ICh4OiBBcnJheTxJQWNjb3VudD4pID0+XG5cdFx0XHRcdE51bWJlcih4Lmxlbmd0aCA+IDAgPyB4W3gubGVuZ3RoIC0gMV0uaW5kZXggKyAxIDogMCk7XG5cdFx0XHRjb25zdCBzdGFydEluZGV4ID0gbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpO1xuXHRcdFx0Zm9yIChcblx0XHRcdFx0bGV0IGluZGV4ID0gc3RhcnRJbmRleDtcblx0XHRcdFx0aW5kZXggPCBsYXN0SW5kZXgodGhpcy5hY2NvdW50cykgKyBOdW1iZXIoZ2FwKTtcblx0XHRcdFx0aW5kZXgrK1xuXHRcdFx0KSB7XG5cdFx0XHRcdGNvbnN0IGFjY291bnQgPSBuZXcgQWNjb3VudChcblx0XHRcdFx0XHR0aGlzLnJvb3QsXG5cdFx0XHRcdFx0dGhpcy5wcm92aWRlcixcblx0XHRcdFx0XHRpbmRleCxcblx0XHRcdFx0XHR0aGlzLnN0cmF0ZWd5LFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAodXRpbHMudG90YWxDb2lucyhhd2FpdCBhY2NvdW50LmdldEJhbGFuY2UoKSkucGVkcm9zID4gMG4pIHtcblx0XHRcdFx0XHR0aGlzLmFjY291bnRzLnB1c2goYWNjb3VudCk7XG5cdFx0XHRcdFx0aWYgKGxpbWl0ICYmIHRoaXMuYWNjb3VudHMubGVuZ3RoID49IGxpbWl0KSBicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fYWNjb3VudHM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0QWNjb3VudChcblx0XHRwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFx0Z2FwPzogbnVtYmVyLFxuXHQpOiBJQWNjb3VudCB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IGFjY291bnQgPSB0aGlzLl9hY2NvdW50cy5maW5kKFxuXHRcdFx0KGFjY291bnQpID0+IGFjY291bnQuaW50ZXJuYWwucGtoID09PSBwa2ggfHwgYWNjb3VudC5wa2ggPT09IHBraCxcblx0XHQpO1xuXHRcdGlmICghYWNjb3VudCkge1xuXHRcdFx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IChnYXAgfHwgREVGQVVMVF9HQVApOyBpbmRleCsrKSB7XG5cdFx0XHRcdGFjY291bnQgPSBuZXcgQWNjb3VudCh0aGlzLnJvb3QsIHRoaXMucHJvdmlkZXIsIGluZGV4LCB0aGlzLnN0cmF0ZWd5KTtcblx0XHRcdFx0aWYgKGFjY291bnQucGtoID09PSBwa2ggfHwgYWNjb3VudC5pbnRlcm5hbC5wa2ggPT09IHBraCkge1xuXHRcdFx0XHRcdHRoaXMuX2FjY291bnRzLnB1c2goYWNjb3VudCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFjY291bnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBhY2NvdW50O1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXRTaWduZXIoXG5cdFx0cGtoPzogUHVibGljS2V5SGFzaFN0cmluZyxcblx0XHRnYXA/OiBudW1iZXIsXG5cdCk6IElTaWduZXIgfCB1bmRlZmluZWQge1xuXHRcdGlmICghcGtoKVxuXHRcdFx0cmV0dXJuIHRoaXMuYWNjb3VudHNbMF0/LmdldFNpZ25lcigpIHx8IHRoaXMuY29pbmJhc2UuZ2V0U2lnbmVyKHBraCk7XG5cdFx0Y29uc3QgYWNjb3VudCA9IHRoaXMuZ2V0QWNjb3VudChwa2gsIGdhcCk7XG5cdFx0cmV0dXJuIGFjY291bnQ/LmdldFNpZ25lcihwa2gpIHx8IHRoaXMuY29pbmJhc2UuZ2V0U2lnbmVyKHBraCk7XG5cdH1cbn1cbiJdfQ==
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0seUJBQXlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFNTixhQUFhLEdBQ2IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFNTixxQkFBcUIsR0FDckIsTUFBTSxZQUFZLENBQUM7QUFFcEIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQU0sT0FBTyxNQUFNO0lBQ1IsSUFBSSxDQUFTO0lBRWIsU0FBUyxHQUFvQixFQUFFLENBQUM7SUFFMUIsUUFBUSxDQUFZO0lBQ3BCLFFBQVEsQ0FBbUI7SUFDcEMsUUFBUSxDQUF3QjtJQUV2Qzs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQXlCcEI7UUFDQSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO1FBQ3RELElBQUksQ0FBQyxJQUFJO1lBQUUsTUFBTSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUNuRixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUFFLE1BQU0sS0FBSyxDQUFDLG9E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QUN0RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDN0IsT0FBTyxPQUFPLENBQUM7Z0JBQ2hCLENBQUM7WUFDRixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLE9BQU8sQ0FBQztRQUNoQixDQUFDO0lBQ0YsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUF5QixFQUFFLEdBQVk7UUFDdkQsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGVjYyBmcm9tIFwiQGJpdGNvaW5lcmxhYi9zZWNwMjU2azFcIjtcblxuaW1wb3J0IHsgQklQMzJGYWN0b3J5IH0gZnJvbSBcImJpcDMyXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5jb25zdCBiaXAzMiA9IEJJUDMyRmFjdG9yeShlY2MpO1xuXG5pbXBvcnQgeyBKc29uUnBjUHJvdmlkZXIgfSBmcm9tIFwiLi4vcnBjL2luZGV4LmpzXCI7XG5pbXBvcnQge1xuXHR0eXBlIEJhbGFuY2UsXG5cdHR5cGUgSGV4U3RyaW5nLFxuXHR0eXBlIE5ldHdvcmssXG5cdHR5cGUgUXVlcnlTdGFrZXNPcmRlcixcblx0dHlwZSBTdGFrZUVudHJ5LFxuXHRTdGFrZXNPcmRlckJ5LFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tIFwiLi9hY2NvdW50LmpzXCI7XG5pbXBvcnQgeyBDb2luYmFzZSB9IGZyb20gXCIuL2NvaW5iYXNlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IElBY2NvdW50LCBJQklQMzIsIElDb2luYmFzZSwgSUpzb25ScGNQcm92aWRlciwgSVNpZ25lciwgSVdhbGxldCB9IGZyb20gXCIuL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQ29pbnMsXG5cdHR5cGUgUHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdHR5cGUgVXR4byxcblx0dHlwZSBVdHhvQ2FjaGVJbmZvLFxuXHRVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmNvbnN0IERFRkFVTFRfR0FQID0gMjA7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXQgaW1wbGVtZW50cyBJV2FsbGV0IHtcblx0cHJvdGVjdGVkIHJvb3Q6IElCSVAzMjtcblxuXHRwcm90ZWN0ZWQgX2FjY291bnRzOiBBcnJheTxJQWNjb3VudD4gPSBbXTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgY29pbmJhc2U6IElDb2luYmFzZTtcblx0cHVibGljIHJlYWRvbmx5IHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyO1xuXHRwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHQvKipcblx0ICogQ3JlYXRlIGEgV2FsbGV0IGJ5IHJlYWRpbmcgdGhlIFhQUlYgbWFzdGVyIGtleSBmcm9tIHRoZSBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlLlxuXHQgKiBAcGFyYW0gc3BlY3MgV2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgZnJvbUVudihvcHRpb25zOiB7XG5cdFx0LyoqXG5cdFx0ICogUGFzc3dvcmQgdG8gZGVjcnlwdCB0aGUgWFBSViBtYXN0ZXIga2V5IHJlYWQgZnJvbSBlbnZpcm9ubWVudCwgaW4gY2FzZSBpdCdzIGVuY3J5cHRlZC5cblx0XHQgKi9cblx0XHRwYXNzd2Q/OiBzdHJpbmc7XG5cdFx0LyoqXG5cdFx0ICogTnVtYmVyIG9mIGNvbnNlY3V0aXZlIGFjY291bnRzIHdpdGggbm8gZnVuZHMgYmVmb3JlIHN0b3BwaW5nIGRlcml2YXRpb24gb2YgbmV3IFdhbGxldCBhY2NvdW50cy5cblx0XHQgKi9cblx0XHRnYXA/OiBudW1iZXI7XG5cdFx0LyoqXG5cdFx0ICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLlxuXHRcdCAqL1xuXHRcdGxpbWl0PzogbnVtYmVyO1xuXHRcdC8qKlxuXHRcdCAqIFNwZWNpZmljIFdpdC9SUEMgcHJvdmlkZXIgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBXaXRuZXQgbmV0d29yay5cblx0XHQgKi9cblx0XHRwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXI7XG5cdFx0LyoqXG5cdFx0ICogVVRYTyBzZWxlY3Rpb24gc3RyYXRlZ3kgd2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgb3V0IG9mIHRoaXMgd2FsbGV0IChkZWZhdWx0OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdCkuXG5cdFx0ICovXG5cdFx0c3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3k7XG5cdFx0LyoqXG5cdFx0ICogT25seSBkZXJpdmUgYWNjb3VudHMgdGhhdCBob2xkIHNvbWUgdW5sb2NrZWQgYmFsYW5jZSBvZiAkV0lULlxuXHRcdCAqL1xuXHRcdG9ubHlXaXRoRnVuZHM/OiBib29sZWFuO1xuXHR9KTogUHJvbWlzZTxXYWxsZXQ+IHtcblx0XHRjb25zdCB4cHJ2ID0gcHJvY2Vzcy5lbnYuV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWTtcblx0XHRpZiAoIXhwcnYpIHRocm93IEVycm9yKGBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZIG11c3QgYmUgc2V0IG9uIGVudmlyb25tZW50LmApO1xuXHRcdGlmICh4cHJ2Lmxlbmd0aCA+IDExNykge1xuXHRcdFx0aWYgKCFvcHRpb25zLnBhc3N3ZCkgdGhyb3cgRXJyb3IoYE1pc3NpbmcgcGFzc3dvcmQgZm9yIFdJVE5FVF9TREtfV0FMTEVUX01BU1RFUl9LRVkuYCk7XG5cdFx0XHRyZXR1cm4gV2FsbGV0LmZyb21FbmNyeXB0ZWRYcHJ2KHhwcnYsIG9wdGlvbnM/LnBhc3N3ZCwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBXYWxsZXQuZnJvbVhwcnYoeHBydiwgb3B0aW9ucyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhIFdhbGxldCBieSB1c2luZyBwYXNzZWQgWFBSViBtYXN0ZXIga2V5LlxuXHQgKiBAcGFyYW0geHBydiBEZWNyeXB0ZWQgWFBSViBtYXN0ZXIga2V5IHN0cmluZy5cblx0ICogQHBhcmFtIG9wdGlvbnMgV2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgZnJvbVhwcnYoXG5cdFx0eHBydjogc3RyaW5nLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHQvKipcblx0XHRcdCAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXG5cdFx0XHQgKi9cblx0XHRcdGdhcD86IG51bWJlcjtcblx0XHRcdC8qKlxuXHRcdFx0ICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLlxuXHRcdFx0ICovXG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdC8qKlxuXHRcdFx0ICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxuXHRcdFx0ICovXG5cdFx0XHRwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXI7XG5cdFx0XHQvKipcblx0XHRcdCAqIFVUWE8gc2VsZWN0aW9uIHN0cmF0ZWd5IHdoZW4gYnVpbGRpbmcgdHJhbnNhY3Rpb25zIG91dCBvZiB0aGlzIHdhbGxldCAoZGVmYXVsdDogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3QpLlxuXHRcdFx0ICovXG5cdFx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0XHRcdC8qKlxuXHRcdFx0ICogT25seSBkZXJpdmUgYWNjb3VudHMgaG9sZGluZyBzb21lICRXSVQgZnVuZHMgKGVpdGhlciBsb2NrZWQsIHN0YWtlZCBvciB1bmxvY2tlZCkuXG5cdFx0XHQgKi9cblx0XHRcdG9ubHlXaXRoRnVuZHM/OiBib29sZWFuO1xuXHRcdH0sXG5cdCk6IFByb21pc2U8V2FsbGV0PiB7XG5cdFx0Y29uc3QgeyBjaGFpbkNvZGUsIHByaXZhdGVLZXkgfSA9IHV0aWxzLnBhcnNlWHBydih4cHJ2KTtcblx0XHRjb25zdCByb290ID0gYmlwMzIuZnJvbVByaXZhdGVLZXkoQnVmZmVyLmZyb20ocHJpdmF0ZUtleSksIEJ1ZmZlci5mcm9tKGNoYWluQ29kZSkpO1xuXHRcdGNvbnN0IHByb3ZpZGVyID0gb3B0aW9ucz8ucHJvdmlkZXIgfHwgKGF3YWl0IEpzb25ScGNQcm92aWRlci5mcm9tRW52KCkpO1xuXHRcdGF3YWl0IHByb3ZpZGVyLmNvbnN0YW50cygpO1xuXHRcdGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQocm9vdCwgcHJvdmlkZXIsIG9wdGlvbnM/LnN0cmF0ZWd5KTtcblx0XHRpZiAob3B0aW9ucz8ub25seVdpdGhGdW5kcykge1xuXHRcdFx0YXdhaXQgd2FsbGV0LmV4cGxvcmVBY2NvdW50cyhvcHRpb25zPy5saW1pdCB8fCAwLCBvcHRpb25zPy5nYXApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3YWxsZXQuZGVyaXZlQWNjb3VudHMob3B0aW9ucz8ubGltaXQgfHwgMSk7XG5cdFx0fVxuXHRcdC8vIGxvYWQgdXAgdXR4b3MgY2FjaGVcblx0XHRhd2FpdCB3YWxsZXQuZ2V0VXR4b3ModHJ1ZSk7XG5cdFx0cmV0dXJuIHdhbGxldDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYSBXYWxsZXQgYnkgdXNpbmcgcGFzc2VkIFhQUlYgbWFzdGVyIGtleS5cblx0ICogQHBhcmFtIHhwcnYgRW5jcnlwdGVkIFhQUlYgbWFzdGVyIGtleSBzdHJpbmcuXG5cdCAqIEBwYXJhbSBwYXNzd2QgUGFzc3dvcmQgdG8gZGVjaXBoZXIgdGhlIFhQUlYgbWFzdGVyIGtleS5cblx0ICogQHBhcmFtIG9wdGlvbnMgV2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgZnJvbUVuY3J5cHRlZFhwcnYoXG5cdFx0eHBydjogc3RyaW5nLFxuXHRcdHBhc3N3ZDogc3RyaW5nLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHQvKipcblx0XHRcdCAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXG5cdFx0XHQgKi9cblx0XHRcdGdhcD86IG51bWJlcjtcblx0XHRcdC8qKlxuXHRcdFx0ICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLlxuXHRcdFx0ICovXG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdC8qKlxuXHRcdFx0ICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxuXHRcdFx0ICovXG5cdFx0XHRwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXI7XG5cdFx0XHQvKipcblx0XHRcdCAqIFVUWE8gc2VsZWN0aW9uIHN0cmF0ZWd5IHdoZW4gYnVpbGRpbmcgdHJhbnNhY3Rpb25zIG91dCBvZiB0aGlzIHdhbGxldCAoZGVmYXVsdDogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3QpLlxuXHRcdFx0ICovXG5cdFx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0XHRcdC8qKlxuXHRcdFx0ICogT25seSBkZXJpdmUgYWNjb3VudHMgaG9sZGluZyBzb21lICRXSVQgZnVuZHMgKGVpdGhlciBsb2NrZWQsIHN0YWtlZCBvciB1bmxvY2tlZCkuXG5cdFx0XHQgKi9cblx0XHRcdG9ubHlXaXRoRnVuZHM/OiBib29sZWFuO1xuXHRcdH0sXG5cdCk6IFByb21pc2U8V2FsbGV0PiB7XG5cdFx0cmV0dXJuIFdhbGxldC5mcm9tWHBydih1dGlscy5kZWNpcGhlclhwcnYoeHBydiwgcGFzc3dkKSwgb3B0aW9ucyk7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihyb290OiBJQklQMzIsIHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLCBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSkge1xuXHRcdHRoaXMucHJvdmlkZXIgPSBwcm92aWRlcjtcblx0XHR0aGlzLmNvaW5iYXNlID0gbmV3IENvaW5iYXNlKHJvb3QsIHByb3ZpZGVyLCBzdHJhdGVneSk7XG5cdFx0dGhpcy5yb290ID0gcm9vdDtcblx0XHR0aGlzLnN0cmF0ZWd5ID0gc3RyYXRlZ3kgfHwgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3Q7XG5cdFx0dGhpcy5kZXJpdmVBY2NvdW50cygxKTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgYWNjb3VudHMoKTogQXJyYXk8SUFjY291bnQ+IHtcblx0XHRyZXR1cm4gdGhpcy5fYWNjb3VudHM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGNhY2hlSW5mbygpOiBVdHhvQ2FjaGVJbmZvIHtcblx0XHRjb25zdCBpbmZvOiBVdHhvQ2FjaGVJbmZvID0ge1xuXHRcdFx0ZXhwZW5kYWJsZTogMG4sXG5cdFx0XHRzaXplOiAwLFxuXHRcdFx0dGltZWxvY2s6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuXHRcdH07XG5cdFx0dGhpcy5hY2NvdW50cz8uZm9yRWFjaCgoYWNjb3VudCkgPT4ge1xuXHRcdFx0Y29uc3QgYWNjb3VudEluZm8gPSBhY2NvdW50LmNhY2hlSW5mbztcblx0XHRcdGluZm8uZXhwZW5kYWJsZSArPSBhY2NvdW50SW5mby5leHBlbmRhYmxlO1xuXHRcdFx0aW5mby5zaXplICs9IGFjY291bnRJbmZvLnNpemU7XG5cdFx0XHRpZiAoYWNjb3VudEluZm8udGltZWxvY2sgIT09IDAgJiYgYWNjb3VudEluZm8udGltZWxvY2sgPCBpbmZvLnRpbWVsb2NrKSB7XG5cdFx0XHRcdGluZm8udGltZWxvY2sgPSBhY2NvdW50SW5mby50aW1lbG9jaztcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpZiAoaW5mby50aW1lbG9jayA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIGluZm8udGltZWxvY2sgPSAwO1xuXHRcdHJldHVybiBpbmZvO1xuXHR9XG5cblx0cHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbMF0uY2hhbmdlUGtoIDogdGhpcy5jb2luYmFzZS5wa2g7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IG5ldHdvcmsoKTogTmV0d29yayB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXIubmV0d29yaztcblx0fVxuXG5cdHB1YmxpYyBnZXQgcGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLnBraCA6IHRoaXMuY29pbmJhc2UucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gdGhpcy5hY2NvdW50cy5sZW5ndGggPiAwID8gdGhpcy5hY2NvdW50c1swXS5wdWJsaWNLZXkgOiB0aGlzLmNvaW5iYXNlLnB1YmxpY0tleTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcHJpdmF0ZUtleSgpOiBIZXhTdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLnByaXZhdGVLZXkgOiB0aGlzLmNvaW5iYXNlLnByaXZhdGVLZXk7XG5cdH1cblxuXHRwdWJsaWMgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDBcblx0XHRcdD8gdGhpcy5hY2NvdW50c1swXS5hdXRob3JpemVFdm1BZGRyZXNzKGV2bUFkZHJlc3MpXG5cdFx0XHQ6IHRoaXMuY29pbmJhc2UuYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzKTtcblx0fVxuXG5cdHB1YmxpYyBhZGRVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiB7XG5cdFx0ZXhjbHVkZWQ6IEFycmF5PFV0eG8+O1xuXHRcdGluY2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0fSB7XG5cdFx0Y29uc3QgaW5jbHVkZWQ6IEFycmF5PFV0eG8+ID0gW107XG5cdFx0dGhpcy5hY2NvdW50cy5mb3JFYWNoKChhY2NvdW50KSA9PiB7XG5cdFx0XHRjb25zdCBfdXR4b3MgPSBhY2NvdW50LmFkZFV0eG9zKC4uLnV0eG9zKTtcblx0XHRcdHV0eG9zID0gX3V0eG9zLmV4Y2x1ZGVkO1xuXHRcdFx0aW5jbHVkZWQucHVzaCguLi5fdXR4b3MuaW5jbHVkZWQpO1xuXHRcdH0pO1xuXHRcdHJldHVybiB7XG5cdFx0XHRleGNsdWRlZDogdXR4b3MsXG5cdFx0XHRpbmNsdWRlZCxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGNvbnN1bWVVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiBBcnJheTxVdHhvPiB7XG5cdFx0dGhpcy5hY2NvdW50cy5mb3JFYWNoKChhY2NvdW50KSA9PiB7XG5cdFx0XHR1dHhvcyA9IGFjY291bnQuY29uc3VtZVV0eG9zKC4uLnV0eG9zKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gdXR4b3M7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0QmFsYW5jZSgpOiBQcm9taXNlPEJhbGFuY2U+IHtcblx0XHRpZiAodGhpcy5fYWNjb3VudHMubGVuZ3RoID4gMCkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKFxuXHRcdFx0XHR0aGlzLl9hY2NvdW50cy5tYXAoYXN5bmMgKGFjYzogSUFjY291bnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBiYWxhbmNlID0gYXdhaXQgYWNjLmdldEJhbGFuY2UoKTtcblx0XHRcdFx0XHRyZXR1cm4gYmFsYW5jZTtcblx0XHRcdFx0fSksXG5cdFx0XHQpLnRoZW4oKGJhbGFuY2VzOiBBcnJheTxCYWxhbmNlPikgPT4ge1xuXHRcdFx0XHRyZXR1cm4gYmFsYW5jZXMucmVkdWNlKFxuXHRcdFx0XHRcdChwcmV2LCBjdXJyKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRsb2NrZWQ6IHByZXYubG9ja2VkICsgY3Vyci5sb2NrZWQsXG5cdFx0XHRcdFx0XHRcdHN0YWtlZDogcHJldi5zdGFrZWQgKyBjdXJyLnN0YWtlZCxcblx0XHRcdFx0XHRcdFx0dW5sb2NrZWQ6IHByZXYudW5sb2NrZWQgKyBjdXJyLnVubG9ja2VkLFxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHsgbG9ja2VkOiAwbiwgc3Rha2VkOiAwbiwgdW5sb2NrZWQ6IDBuIH0sXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuY29pbmJhc2UuZ2V0QmFsYW5jZSgpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXREZWxlZ2F0ZWVzKG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlciwgbGVmdEpvaW4gPSB0cnVlKTogUHJvbWlzZTxBcnJheTxTdGFrZUVudHJ5Pj4ge1xuXHRcdGNvbnN0IHJlY29yZHM6IEFycmF5PFN0YWtlRW50cnk+ID0gW107XG5cdFx0cmVjb3Jkcy5wdXNoKC4uLihhd2FpdCB0aGlzLmNvaW5iYXNlLmdldERlbGVnYXRlZXMob3JkZXIpKSk7XG5cdFx0YXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHR0aGlzLl9hY2NvdW50cy5tYXAoKGFjY291bnQpID0+XG5cdFx0XHRcdGFjY291bnQuZ2V0RGVsZWdhdGVlcyhvcmRlciwgbGVmdEpvaW4pLnRoZW4oKGVudHJpZXMpID0+IHJlY29yZHMucHVzaCguLi5lbnRyaWVzKSksXG5cdFx0XHQpLFxuXHRcdCk7XG5cdFx0aWYgKG9yZGVyKSB7XG5cdFx0XHRjb25zdCByZXZlcnNlID0gb3JkZXI/LnJldmVyc2UgPyArMSA6IC0xO1xuXHRcdFx0cmV0dXJuIHJlY29yZHMuc29ydCgoYSwgYikgPT4ge1xuXHRcdFx0XHRzd2l0Y2ggKG9yZGVyLmJ5KSB7XG5cdFx0XHRcdFx0Y2FzZSBTdGFrZXNPcmRlckJ5LkNvaW5zOlxuXHRcdFx0XHRcdFx0cmV0dXJuIChhLnZhbHVlLmNvaW5zIDwgYi52YWx1ZS5jb2lucyA/IDEgOiBhLnZhbHVlLmNvaW5zID4gYi52YWx1ZS5jb2lucyA/IC0xIDogMCkgKiByZXZlcnNlO1xuXHRcdFx0XHRcdGNhc2UgU3Rha2VzT3JkZXJCeS5NaW5pbmc6XG5cdFx0XHRcdFx0XHRyZXR1cm4gKGIudmFsdWUuZXBvY2hzLm1pbmluZyAtIGEudmFsdWUuZXBvY2hzLm1pbmluZykgKiByZXZlcnNlO1xuXHRcdFx0XHRcdGNhc2UgU3Rha2VzT3JkZXJCeS5XaXRuZXNzaW5nOlxuXHRcdFx0XHRcdFx0cmV0dXJuIChiLnZhbHVlLmVwb2Nocy53aXRuZXNzaW5nIC0gYS52YWx1ZS5lcG9jaHMud2l0bmVzc2luZykgKiByZXZlcnNlO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm4gKGIudmFsdWUubm9uY2UgLSBhLnZhbHVlLm5vbmNlKSAqIHJldmVyc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVjb3Jkcztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhyZWxvYWQ/OiBib29sZWFuKTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xuXHRcdHJldHVybiBQcm9taXNlLmFsbCh0aGlzLmFjY291bnRzLm1hcCgoYWNjb3VudCkgPT4gYWNjb3VudC5nZXRVdHhvcyhyZWxvYWQpKSkudGhlbihcblx0XHRcdGFzeW5jICh1dHhvc3M6IEFycmF5PEFycmF5PFV0eG8+PikgPT4ge1xuXHRcdFx0XHQvLyB1dHhvc3MucHVzaChhd2FpdCB0aGlzLmNvaW5iYXNlLmdldFV0eG9zKHJlbG9hZCkpXG5cdFx0XHRcdHJldHVybiB1dHhvc3MuZmxhdCgpO1xuXHRcdFx0fSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xuXHRcdHZhbHVlPzogQ29pbnM7XG5cdFx0cmVsb2FkPzogYm9vbGVhbjtcblx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0fSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKS50aGVuKCh1dHhvcykgPT5cblx0XHRcdHV0aWxzLnNlbGVjdFV0eG9zKHtcblx0XHRcdFx0dXR4b3MsXG5cdFx0XHRcdHZhbHVlOiBzcGVjcz8udmFsdWUsXG5cdFx0XHRcdHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdC8vIC0tLSBJV2FsbGV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgZGVyaXZlQWNjb3VudHMobGltaXQ6IG51bWJlcik6IEFycmF5PElBY2NvdW50PiB7XG5cdFx0aWYgKGxpbWl0ID4gdGhpcy5fYWNjb3VudHMubGVuZ3RoKSB7XG5cdFx0XHRjb25zdCBzdGFydEluZGV4ID0gdGhpcy5fYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbdGhpcy5hY2NvdW50cy5sZW5ndGggLSAxXS5pbmRleCArIDEgOiAwO1xuXHRcdFx0bGltaXQgPSBsaW1pdCAtIHRoaXMuX2FjY291bnRzLmxlbmd0aDtcblx0XHRcdGZvciAobGV0IGl4ID0gMDsgaXggPCBsaW1pdDsgaXgrKykge1xuXHRcdFx0XHR0aGlzLl9hY2NvdW50cy5wdXNoKG5ldyBBY2NvdW50KHRoaXMucm9vdCwgdGhpcy5wcm92aWRlciwgc3RhcnRJbmRleCArIGl4LCB0aGlzLnN0cmF0ZWd5KSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9hY2NvdW50cztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBleHBsb3JlQWNjb3VudHMobGltaXQgPSAxLCBnYXAgPSBERUZBVUxUX0dBUCk6IFByb21pc2U8QXJyYXk8SUFjY291bnQ+PiB7XG5cdFx0aWYgKGxpbWl0ID09PSAwIHx8IGxpbWl0ID4gdGhpcy5hY2NvdW50cy5sZW5ndGgpIHtcblx0XHRcdGNvbnN0IGxhc3RJbmRleCA9ICh4OiBBcnJheTxJQWNjb3VudD4pID0+IE51bWJlcih4Lmxlbmd0aCA+IDAgPyB4W3gubGVuZ3RoIC0gMV0uaW5kZXggKyAxIDogMCk7XG5cdFx0XHRjb25zdCBzdGFydEluZGV4ID0gbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpO1xuXHRcdFx0Zm9yIChsZXQgaW5kZXggPSBzdGFydEluZGV4OyBpbmRleCA8IGxhc3RJbmRleCh0aGlzLmFjY291bnRzKSArIE51bWJlcihnYXApOyBpbmRleCsrKSB7XG5cdFx0XHRcdGNvbnN0IGFjY291bnQgPSBuZXcgQWNjb3VudCh0aGlzLnJvb3QsIHRoaXMucHJvdmlkZXIsIGluZGV4LCB0aGlzLnN0cmF0ZWd5KTtcblx0XHRcdFx0aWYgKHV0aWxzLnRvdGFsQ29pbnMoYXdhaXQgYWNjb3VudC5nZXRCYWxhbmNlKCkpLnBlZHJvcyA+IDBuKSB7XG5cdFx0XHRcdFx0dGhpcy5hY2NvdW50cy5wdXNoKGFjY291bnQpO1xuXHRcdFx0XHRcdGlmIChsaW1pdCAmJiB0aGlzLmFjY291bnRzLmxlbmd0aCA+PSBsaW1pdCkgYnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2FjY291bnRzO1xuXHR9XG5cblx0cHVibGljIGdldEFjY291bnQocGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBnYXA/OiBudW1iZXIpOiBJQWNjb3VudCB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IGFjY291bnQgPSB0aGlzLl9hY2NvdW50cy5maW5kKChhY2NvdW50KSA9PiBhY2NvdW50LmludGVybmFsLnBraCA9PT0gcGtoIHx8IGFjY291bnQucGtoID09PSBwa2gpO1xuXHRcdGlmICghYWNjb3VudCkge1xuXHRcdFx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IChnYXAgfHwgREVGQVVMVF9HQVApOyBpbmRleCsrKSB7XG5cdFx0XHRcdGFjY291bnQgPSBuZXcgQWNjb3VudCh0aGlzLnJvb3QsIHRoaXMucHJvdmlkZXIsIGluZGV4LCB0aGlzLnN0cmF0ZWd5KTtcblx0XHRcdFx0aWYgKGFjY291bnQucGtoID09PSBwa2ggfHwgYWNjb3VudC5pbnRlcm5hbC5wa2ggPT09IHBraCkge1xuXHRcdFx0XHRcdHRoaXMuX2FjY291bnRzLnB1c2goYWNjb3VudCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFjY291bnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBhY2NvdW50O1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFwa2gpIHJldHVybiB0aGlzLmFjY291bnRzWzBdPy5nZXRTaWduZXIoKSB8fCB0aGlzLmNvaW5iYXNlLmdldFNpZ25lcihwa2gpO1xuXHRcdGNvbnN0IGFjY291bnQgPSB0aGlzLmdldEFjY291bnQocGtoLCBnYXApO1xuXHRcdHJldHVybiBhY2NvdW50Py5nZXRTaWduZXIocGtoKSB8fCB0aGlzLmNvaW5iYXNlLmdldFNpZ25lcihwa2gpO1xuXHR9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth.d.ts","sourceRoot":"","sources":["../../../../../src/lib/radon/ccdr/eth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eth.d.ts","sourceRoot":"","sources":["../../../../../src/lib/radon/ccdr/eth.ts"],"names":[],"mappings":"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"}
|