@bitgo-beta/abstract-utxo 1.6.1-alpha.424 → 1.6.1-alpha.426
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/dist/cjs/src/abstractUtxoCoin.d.ts +21 -5
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/cjs/src/abstractUtxoCoin.js +52 -26
- package/dist/cjs/src/index.d.ts +2 -2
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +3 -3
- package/dist/cjs/src/recovery/backupKeyRecovery.js +4 -4
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts +10 -0
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/crossChainRecovery.js +48 -4
- package/dist/cjs/src/transaction/decode.d.ts +11 -0
- package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
- package/dist/cjs/src/transaction/decode.js +81 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +3 -2
- package/dist/cjs/src/transaction/explainTransaction.js +3 -3
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +24 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.js +26 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +2 -2
- package/dist/cjs/src/transaction/fixedScript/index.d.ts +3 -0
- package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/index.js +18 -1
- package/dist/cjs/src/transaction/fixedScript/musig2.d.ts +4 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.js +3 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +7 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.js +78 -0
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +152 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts +30 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbt.js +174 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +22 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +129 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +5 -6
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +28 -79
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +3 -2
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/signTransaction.js +5 -2
- package/dist/cjs/src/transaction/types.d.ts +5 -0
- package/dist/cjs/src/transaction/types.d.ts.map +1 -1
- package/dist/cjs/src/transaction/types.js +5 -1
- package/dist/cjs/test/unit/recovery/crossChainRecovery.js +24 -1
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +3 -3
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -2
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.js +59 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +157 -0
- package/dist/cjs/test/unit/transaction/fixedScript/util.d.ts.map +1 -1
- package/dist/cjs/test/unit/transaction/fixedScript/util.js +2 -1
- package/dist/cjs/test/unit/transaction.js +65 -42
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.d.ts +21 -5
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/esm/abstractUtxoCoin.js +53 -27
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/recovery/backupKeyRecovery.js +2 -2
- package/dist/esm/recovery/crossChainRecovery.d.ts +10 -0
- package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/crossChainRecovery.js +46 -3
- package/dist/esm/transaction/decode.d.ts +11 -0
- package/dist/esm/transaction/decode.d.ts.map +1 -0
- package/dist/esm/transaction/decode.js +43 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/verifyTransaction.js +3 -2
- package/dist/esm/transaction/explainTransaction.js +3 -3
- package/dist/esm/transaction/fixedScript/SigningError.d.ts +24 -0
- package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/SigningError.js +21 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +1 -1
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +1 -1
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/explainTransaction.js +2 -2
- package/dist/esm/transaction/fixedScript/index.d.ts +3 -0
- package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/index.js +4 -1
- package/dist/esm/transaction/fixedScript/musig2.d.ts +4 -0
- package/dist/esm/transaction/fixedScript/musig2.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/musig2.js +2 -0
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts +7 -0
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/replayProtection.js +39 -0
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +112 -0
- package/dist/esm/transaction/fixedScript/signPsbt.d.ts +30 -0
- package/dist/esm/transaction/fixedScript/signPsbt.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signPsbt.js +134 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +22 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +122 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +5 -6
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.js +28 -79
- package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/verifyTransaction.js +3 -2
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/signTransaction.js +5 -2
- package/dist/esm/transaction/types.d.ts +5 -0
- package/dist/esm/transaction/types.d.ts.map +1 -1
- package/dist/esm/transaction/types.js +4 -2
- package/package.json +13 -13
- package/dist/cjs/src/replayProtection.d.ts +0 -5
- package/dist/cjs/src/replayProtection.d.ts.map +0 -1
- package/dist/cjs/src/replayProtection.js +0 -58
- package/dist/cjs/src/sign.d.ts +0 -54
- package/dist/cjs/src/sign.d.ts.map +0 -1
- package/dist/cjs/src/sign.js +0 -205
- package/dist/esm/replayProtection.d.ts +0 -5
- package/dist/esm/replayProtection.d.ts.map +0 -1
- package/dist/esm/replayProtection.js +0 -20
- package/dist/esm/sign.d.ts +0 -54
- package/dist/esm/sign.d.ts.map +0 -1
- package/dist/esm/sign.js +0 -162
|
@@ -280,4 +280,27 @@ describe(`Cross-Chain Recovery getWallet`, async function () {
|
|
|
280
280
|
}
|
|
281
281
|
});
|
|
282
282
|
});
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyxpQ0FBa0M7QUFDbEMsNkJBQThCO0FBQzlCLDhEQUFnRDtBQUVoRCxtREFBK0M7QUFDL0MsNkNBQStCO0FBRS9CLHNDQU9zQjtBQUN0QixrQ0FXaUI7QUFDakIsaURBQThDO0FBQzlDLHFEQUFrRTtBQUNsRSxpREFBa0U7QUFFbEUsaUNBQXdEO0FBSXhELFNBQVMsUUFBUSxDQUFDLENBQWlCO0lBQ2pDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQXNCLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQztJQUM5RixPQUFPO1FBQ0wsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLFFBQVEsRUFBRSxDQUFDO2FBQ3BELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixFQUFFLEVBQUUsUUFBUTtZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QyxDQUFDO2FBQ0QsT0FBTyxFQUFFO1FBQ1osR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFD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QUNwRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsZUFBUyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtnQkFDM0UsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgc2hvdWxkID0gcmVxdWlyZSgnc2hvdWxkJyk7XG5pbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZ2V0U2VlZCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RVdHhvQ29pbixcbiAgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkLFxuICBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZCxcbiAgZ2V0V2FsbGV0LFxuICBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3ZlcmllcyxcbiAgZ2VuZXJhdGVBZGRyZXNzLFxufSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHtcbiAgZ2V0Rml4dHVyZSxcbiAga2V5Y2hhaW5zQmFzZTU4LFxuICBLZXljaGFpbkJhc2U1OCxcbiAgbW9ja1Vuc3BlbnQsXG4gIHNob3VsZEVxdWFsSlNPTixcbiAgdXR4b0NvaW5zLFxuICB0cmFuc2FjdGlvbkhleFRvT2JqLFxuICBnZXREZWZhdWx0V2FsbGV0S2V5cyxcbiAgZGVmYXVsdEJpdEdvLFxuICBnZXRVdHhvQ29pbixcbn0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBub2NrQml0R28gfSBmcm9tICcuLi91dGlsL25vY2tCaXRHbyc7XG5pbXBvcnQgeyBjcmVhdGVGdWxsU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi91dGlsL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyIH0gZnJvbSAnLi4vdXRpbC9rZXljaGFpbnMnO1xuXG5pbXBvcnQgeyBNb2NrQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXIgfSBmcm9tICcuL21vY2snO1xuXG50eXBlIFdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8VE51bWJlcj47XG5cbmZ1bmN0aW9uIGdldEtleUlkKGs6IEtleWNoYWluQmFzZTU4KTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFNlZWQoay5wdWIpLnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuZnVuY3Rpb24gbm9ja1dhbGxldChjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRJZDogc3RyaW5nLCB3YWxsZXRLZXlzOiBUcmlwbGU8S2V5Y2hhaW5CYXNlNTg+KTogbm9jay5TY29wZVtdIHtcbiAgcmV0dXJuIFtcbiAgICBub2NrQml0R28oKVxuICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7d2FsbGV0SWR9YClcbiAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgaWQ6IHdhbGxldElkLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGxhYmVsOiAnY3Jvc3NDaGFpblJlY292ZXJ5JyxcbiAgICAgICAga2V5czogd2FsbGV0S2V5cy5tYXAoKGspID0+IGdldEtleUlkKGspKSxcbiAgICAgIH0pXG4gICAgICAucGVyc2lzdCgpLFxuICAgIC4uLndhbGxldEtleXMubWFwKChrKSA9PlxuICAgICAgbm9ja0JpdEdvKClcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7Z2V0S2V5SWQoayl9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgaylcbiAgICAgICAgLnBlcnNpc3QoKVxuICAgICksXG4gIF07XG59XG5cbnR5cGUgQWRkcmVzcyA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gbm9ja1dhbGxldEFkZHJlc3MoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0SWQ6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IG5vY2suU2NvcGUge1xuICByZXR1cm4gbm9ja0JpdEdvKClcbiAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH0vYWRkcmVzcy8ke2FkZHJlc3MuYWRkcmVzc31gKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGFkZHJlc3M6IGFkZHJlc3MuYWRkcmVzcyxcbiAgICAgIGNoYWluOiBhZGRyZXNzLmNoYWluLFxuICAgICAgaW5kZXg6IGFkZHJlc3MuaW5kZXgsXG4gICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICB3YWxsZXQ6IHdhbGxldElkLFxuICAgIH0pXG4gICAgLnBlcnNpc3QoKTtcbn1cblxuLyoqXG4gKiBTZXR1cCB0ZXN0IGZvciBjcm9zcy1jaGFpbiByZWNvdmVyeS5cbiAqXG4gKiBVc2VycyBjYW4gcmVjZWl2ZSBkZXBvc2l0cyBvbiB3YWxsZXQgYWRkcmVzc2VzIHRoYXQgYXJlIG9uIGEgZGlmZmVyZW50IGNoYWluLlxuICpcbiAqIEZvciBpbnN0YW5jZSwgYSB1c2VyIGNhbiByZWNlaXZlIGxpdGVjb2luIG9uIGEgYml0Y29pbiB3YWxsZXQuXG4gKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGxpdGVjb2luIGJsb2NrY2hhaW4gaGFzIGEgdHJhbnNhY3Rpb24gd2l0aCBvdXRwdXRzIHRoYXQgYXJlIHNwZW5kYWJsZVxuICogd2l0aCBrZXlzIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgZm9yIGEgQml0R28gQlRDIHdhbGxldC5cbiAqIEluIHRoaXMgZXhhbXBsZSwgTFRDIGlzIHRoZSBcInNvdXJjZSBjb2luXCIgYW5kIEJUQyBpcyB0aGUgXCJyZWNvdmVyeSBjb2luXCJcbiAqIEluIGNhc2VzIGxpa2UgdGhlc2Ugd2UgbXVzdCB1c2UgY29uc3RydWN0IGEgdHJhbnNhY3Rpb24gZm9yIGxpdGVjb2luIG5ldHdvcmsgdXNpbmcga2V5cyBvZiB0aGVcbiAqIGJpdGNvaW4gd2FsbGV0LlxuICpcbiAqIEBwYXJhbSBzb3VyY2VDb2luIC0gdGhlIGNvaW4gdG8gY29uc3RydWN0IHRoZSB0cmFuc2FjdGlvbiBmb3JcbiAqIEBwYXJhbSByZWNvdmVyeUNvaW4gLSB0aGUgY29pbiB0aGUgcmVjZWl2aW5nIHdhbGxldCB3YXMgc2V0IHVwIGZvclxuICovXG5mdW5jdGlvbiBydW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gIGRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBbc291cmNlQ29pbj0ke3NvdXJjZUNvaW4uZ2V0Q2hhaW4oKX0gcmVjb3ZlcnlDb2luPSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB3YWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbiAgICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgICAvLyB0aGUgYWRkcmVzcyB0aGUgYWNjaWRlbnRhbCBkZXBvc2l0IHdlbnQgdG8sIGluIGJvdGggc291cmNlQ29pbiBhbmQgYWRkcmVzc0NvaW4gZm9ybWF0c1xuICAgIGNvbnN0IFtkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4sIGRlcG9zaXRBZGRyZXNzUmVjb3ZlcnlDb2luXSA9IFtzb3VyY2VDb2luLCByZWNvdmVyeUNvaW5dLm1hcCgoY29pbikgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGdlbmVyYXRlQWRkcmVzcyhjb2luLm5ldHdvcmssIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMCB9KSxcbiAgICAgIGNoYWluOiAwLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNoYWluID0gMDtcbiAgICBjb25zdCBpbmRleCA9IDE7XG4gICAgLy8gdGhlIGFkZHJlc3Mgd2hlcmUgd2Ugd2FudCB0byByZWNvdmVyIG91ciBmdW5kcyB0b1xuICAgIGNvbnN0IHJlY292ZXJ5QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgIGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCBub2Nrczogbm9jay5TY29wZVtdID0gW107XG5cbiAgICBsZXQgZGVwb3NpdFR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPjtcblxuICAgIGZ1bmN0aW9uIGdldERlcG9zaXRVbnNwZW50cygpOiB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBtb2NrVW5zcGVudDxUTnVtYmVyPihcbiAgICAgICAgICBzb3VyY2VDb2luLm5ldHdvcmssXG4gICAgICAgICAgd2FsbGV0S2V5cyxcbiAgICAgICAgICAncDJzaCcsXG4gICAgICAgICAgMCxcbiAgICAgICAgICAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IEJpZ0ludCgnMTA5OTk5OTk4MDAwMDAwMDEnKSA6IDFlOCkgYXMgVE51bWJlclxuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZUZ1bGxTaWduZWRUcmFuc2FjdGlvbjxUTnVtYmVyPihcbiAgICAgICAgc291cmNlQ29pbi5uZXR3b3JrLFxuICAgICAgICBnZXREZXBvc2l0VW5zcGVudHMoKSxcbiAgICAgICAgZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgIGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyKClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYmVmb3JlKCdwcmVwYXJlIGRlcG9zaXQgdHgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBkZXBvc2l0VHggPSBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGdldFJlY292ZXJ5VW5zcGVudHMoKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgICAgYWRkcmVzczogZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgICAgY2hhaW46IGNoYWluLFxuICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICB2YWx1ZTogZGVwb3NpdFR4Lm91dHNbMF0udmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGJlZm9yZSgnc2V0dXAgbm9ja3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBub2Nrcy5wdXNoKC4uLm5vY2tXYWxsZXQocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBrZXljaGFpbnNCYXNlNTgpKTtcbiAgICAgIG5vY2tzLnB1c2gobm9ja1dhbGxldEFkZHJlc3MocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBkZXBvc2l0QWRkcmVzc1JlY292ZXJ5Q29pbikpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MuZm9yRWFjaCgobikgPT4gbi5kb25lKCkpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9jay5jbGVhbkFsbCgpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHRlc3RNYXRjaEZpeHR1cmUoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBnZXRSZWNvdmVyeVJlc3VsdDogKCkgPT4gQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+IHwgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj5cbiAgICApIHtcbiAgICAgIGl0KGBzaG91bGQgbWF0Y2ggZml4dHVyZSAoJHtuYW1lfSlgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlY292ZXJ5ID0gZ2V0UmVjb3ZlcnlSZXN1bHQoKTtcbiAgICAgICAgbGV0IHJlY292ZXJ5T2JqID0ge1xuICAgICAgICAgIC4uLnJlY292ZXJ5LFxuICAgICAgICAgIHR4OiB0cmFuc2FjdGlvbkhleFRvT2JqKHJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZywgc291cmNlQ29pbi5uZXR3b3JrLCBzb3VyY2VDb2luLmFtb3VudFR5cGUpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50Jykge1xuICAgICAgICAgIHJlY292ZXJ5T2JqID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHJlY292ZXJ5T2JqLCAoaywgdikgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHNob3VsZEVxdWFsSlNPTihcbiAgICAgICAgICByZWNvdmVyeU9iaixcbiAgICAgICAgICBhd2FpdCBnZXRGaXh0dXJlKHNvdXJjZUNvaW4sIGByZWNvdmVyeS9jcm9zc0NoYWluUmVjb3ZlcnktJHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX0tJHtuYW1lfWAsIHJlY292ZXJ5T2JqKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHR4OiBzdHJpbmcgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPikge1xuICAgICAgaWYgKHR5cGVvZiB0eCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyPihCdWZmZXIuZnJvbSh0eCwgJ2hleCcpLCBzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgICAgICBhbW91bnRUeXBlOiBzb3VyY2VDb2luLmFtb3VudFR5cGUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgdW5zcGVudHMgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5zLmxlbmd0aCwgdW5zcGVudHMubGVuZ3RoKTtcbiAgICAgIHR4Lmlucy5mb3JFYWNoKChpbnB1dCwgaSkgPT4ge1xuICAgICAgICBhc3NlcnQub2sodHlwZW9mIHR4ICE9PSAnc3RyaW5nJyk7XG4gICAgICAgIHV0eG9saWIuYml0Z29cbiAgICAgICAgICAudmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlcj4odHgsIGksIGdldFJlY292ZXJ5VW5zcGVudHMoKSwgd2FsbGV0S2V5cylcbiAgICAgICAgICAuc2hvdWxkLmVxbChbdHJ1ZSwgZmFsc2UsIGZhbHNlXSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRlc3Qgc2lnbmVkIGNyb3NzIGNoYWluIHJlY292ZXJ5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIgPSBzaW5vblxuICAgICAgICAuc3R1YihBYnN0cmFjdFV0eG9Db2luLnByb3RvdHlwZSwgJ2dldFJlY292ZXJ5UHJvdmlkZXInKVxuICAgICAgICAucmV0dXJucyhuZXcgTW9ja0Nyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyPFROdW1iZXI+KHNvdXJjZUNvaW4sIGdldERlcG9zaXRVbnNwZW50cygpLCBkZXBvc2l0VHgpKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHguZ2V0SWQoKSxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHhwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+O1xuICAgICAgc2hvdWxkLmVxdWFsKGdldFJlY292ZXJ5UHJvdmlkZXJTdHViLmNhbGxDb3VudCwgMSk7XG5cbiAgICAgIHRlc3RNYXRjaEZpeHR1cmUoJ3NpZ25lZCcsICgpID0+IHNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIHZhbGlkIHNpZ25hdHVyZXMgZm9yIHNpZ25lZCByZWNvdmVyeScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHNpZ25lZFJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGVzdCB1bnNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IE1vY2tDcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBnZXREZXBvc2l0VW5zcGVudHMoKSwgZGVwb3NpdFR4KSk7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJlY292ZXJ5Q29pbixcbiAgICAgICAgdHhpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgIHJlY292ZXJ5QWRkcmVzcyxcbiAgICAgICAgd2FsbGV0OiByZWNvdmVyeVdhbGxldElkLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVuc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHNpZ25lZDogZmFsc2UsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj47XG4gICAgICBzaG91bGQuZXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgdGVzdE1hdGNoRml4dHVyZSgndW5zaWduZWQnLCAoKSA9PiB1bnNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBiZSBzaWduYWJsZSBmb3IgdW5zaWduZWQgcmVjb3ZlcnknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgc291cmNlQ29pbi5zaWduVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgICAgICAgIHR4UHJlYnVpbGQ6IHVuc2lnbmVkUmVjb3ZlcnksXG4gICAgICAgICAgcHJ2OiBrZXljaGFpbnNCYXNlNThbMF0ucHJ2LFxuICAgICAgICAgIHB1YnM6IGtleWNoYWluc0Jhc2U1OC5tYXAoKGspID0+IGsucHViKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICAgICAgfSk7XG4gICAgICAgIGNoZWNrUmVjb3ZlcnlUcmFuc2FjdGlvblNpZ25hdHVyZSgoc2lnbmVkVHggYXMgeyB0eEhleDogc3RyaW5nIH0pLnR4SGV4KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNTdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcnkoc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcmllc1tzb3VyY2VDb2luLmdldEZhbWlseSgpXT8uaW5jbHVkZXMocmVjb3ZlcnlDb2luLmdldEZhbWlseSgpKTtcbn1cblxudXR4b0NvaW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgdXR4b0NvaW5zXG4gICAgLmZpbHRlcihcbiAgICAgIChvdGhlckNvaW4pID0+XG4gICAgICAgIGNvaW4gIT09IG90aGVyQ29pbiAmJlxuICAgICAgICBpc1N1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyeShjb2luLCBvdGhlckNvaW4pICYmXG4gICAgICAgICgodXR4b2xpYi5pc01haW5uZXQoY29pbi5uZXR3b3JrKSAmJiB1dHhvbGliLmlzTWFpbm5ldChvdGhlckNvaW4ubmV0d29yaykpIHx8XG4gICAgICAgICAgKHV0eG9saWIuaXNUZXN0bmV0KGNvaW4ubmV0d29yaykgJiYgdXR4b2xpYi5pc1Rlc3RuZXQob3RoZXJDb2luLm5ldHdvcmspKSlcbiAgICApXG4gICAgLmZvckVhY2goKG90aGVyQ29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4uYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgcnVuPGJpZ2ludD4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJ1bihjb2luLCBvdGhlckNvaW4pO1xuICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBnZXRXYWxsZXRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJpdGdvID0gZGVmYXVsdEJpdEdvO1xuICBjb25zdCByZWNvdmVyeUNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IHJlY292ZXJ5V2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuXG4gIGl0KCdzaG91bGQgc2VhcmNoIHYxIHdhbGxldHMgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA0eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNDAwLCA0MDRdO1xuXG4gICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvclJlc3BvbnNlcykge1xuICAgICAgY29uc3Qgbm9ja1YyV2FsbGV0ID0gbm9ja0JpdEdvKGJpdGdvKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9L3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YClcbiAgICAgICAgLnJlcGx5KGVycm9yKTtcbiAgICAgIGNvbnN0IG5vY2tWMVdhbGxldCA9IG5vY2tCaXRHbyhiaXRnbykuZ2V0KGAvYXBpL3YxL3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YCkucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoXG4gICAgICAgICgpID0+IGdldFdhbGxldChiaXRnbywgcmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkKSxcbiAgICAgICAgRXJyb3IoYGNvdWxkIG5vdCBnZXQgd2FsbGV0ICR7cmVjb3ZlcnlXYWxsZXRJZH0gZnJvbSB2MSBvciB2MjogQXBpUmVzcG9uc2VFcnJvcjogJHtlcnJvcn1gKVxuICAgICAgKTtcbiAgICAgIG5vY2tWMldhbGxldC5kb25lKCk7XG4gICAgICBub2NrVjFXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdjIgZW5kcG9pbnQgcmVzcG9uZHMgd2l0aCBhIDV4eCBlcnJvcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBlcnJvclJlc3BvbnNlcyA9IFs1MDBdO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksIHtcbiAgICAgICAgbmFtZTogJ0FwaVJlc3BvbnNlRXJyb3InLFxuICAgICAgICBzdGF0dXM6IDUwMCxcbiAgICAgICAgcmVzdWx0OiB7fSxcbiAgICAgICAgaW52YWxpZFRva2VuOiBmYWxzZSxcbiAgICAgICAgbmVlZHNPVFA6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
|
|
283
|
+
describe('convertLtcAddressToLegacyFormat', function () {
|
|
284
|
+
const ltcNetwork = utxolib.networks.litecoin;
|
|
285
|
+
it('should convert M... P2SH address to 3... legacy format', function () {
|
|
286
|
+
// These two addresses represent the same underlying script hash:
|
|
287
|
+
// - MNQ7zkgMsaV67rsjA3JuP59RC5wxRXpwgE is the LTC format (scriptHash 0x32)
|
|
288
|
+
// - 3GBygsGPvTdfKMbq4AKZZRu1sPMWPEsBfd is the BTC format (scriptHash 0x05)
|
|
289
|
+
const ltcAddress = 'MNQ7zkgMsaV67rsjA3JuP59RC5wxRXpwgE';
|
|
290
|
+
const expectedLegacyAddress = '3GBygsGPvTdfKMbq4AKZZRu1sPMWPEsBfd';
|
|
291
|
+
const legacyAddress = (0, src_1.convertLtcAddressToLegacyFormat)(ltcAddress, ltcNetwork);
|
|
292
|
+
assert.strictEqual(legacyAddress, expectedLegacyAddress);
|
|
293
|
+
});
|
|
294
|
+
it('should convert MD68PsdheKxcYsrVLyZRXgoSDLnB1MdVtE to legacy format', function () {
|
|
295
|
+
const address = 'MD68PsdheKxcYsrVLyZRXgoSDLnB1MdVtE';
|
|
296
|
+
const legacyAddress = (0, src_1.convertLtcAddressToLegacyFormat)(address, ltcNetwork);
|
|
297
|
+
// Should start with '3' (legacy BTC P2SH format)
|
|
298
|
+
assert.ok(legacyAddress.startsWith('3'), `Expected address to start with '3', got: ${legacyAddress}`);
|
|
299
|
+
});
|
|
300
|
+
it('should not modify bech32 addresses', function () {
|
|
301
|
+
const bech32Address = 'ltc1qgrl8zpndsklaa9swgd5vevyxmx5x63vcrl7dk4';
|
|
302
|
+
const result = (0, src_1.convertLtcAddressToLegacyFormat)(bech32Address, ltcNetwork);
|
|
303
|
+
assert.strictEqual(result, bech32Address);
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyxpQ0FBa0M7QUFDbEMsNkJBQThCO0FBQzlCLDhEQUFnRDtBQUVoRCxtREFBK0M7QUFDL0MsNkNBQStCO0FBRS9CLHNDQVFzQjtBQUN0QixrQ0FXaUI7QUFDakIsaURBQThDO0FBQzlDLHFEQUFrRTtBQUNsRSxpREFBa0U7QUFFbEUsaUNBQXdEO0FBSXhELFNBQVMsUUFBUSxDQUFDLENBQWlCO0lBQ2pDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQXNCLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQztJQUM5RixPQUFPO1FBQ0wsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLFFBQVEsRUFBRSxDQUFDO2FBQ3BELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixFQUFFLEVBQUUsUUFBUTtZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QyxDQUFDO2FBQ0QsT0FBTyxFQUFFO1FBQ1osR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsSUFBQSxxQkFBUyxHQUFFO2FBQ1IsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3BELEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBQ2IsT0FBTyxFQUFFLENBQ2I7S0FDRixDQUFDO0FBQ0osQ0FBQztBQVFELFNBQVMsaUJBQWlCLENBQUMsSUFBc0IsRUFBRSxRQUFnQixFQUFFLE9BQWdCO0lBQ25GLE9BQU8sSUFBQSxxQkFBUyxHQUFFO1NBQ2YsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLFFBQVEsWUFBWSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDL0UsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNWLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN4QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ3JCLE1BQU0sRUFBRSxRQUFRO0tBQ2pCLENBQUM7U0FDRCxPQUFPLEVBQUUsQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQVMsR0FBRyxDQUEyQyxVQUE0QixFQUFFLFlBQThCO0lBQ2pILFFBQVEsQ0FBQyxvQ0FBb0MsVUFBVSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDN0csTUFBTSxVQUFVLEdBQUcsSUFBQSwyQkFBb0IsR0FBRSxDQUFDO1FBQzFDLE1BQU0sZ0JBQWdCLEdBQUcsa0NBQWtDLENBQUM7UUFDNUQseUZBQXlGO1FBQ3pGLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RyxPQUFPLEVBQUUsSUFBQSxxQkFBZSxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsc0JBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMxRixLQUFLLEVBQUUsQ0FBQztZQUNSLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDaEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLG9EQUFvRDtRQUNwRCxNQUFNLGVBQWUsR0FBRyxJQUFBLHFCQUFlLEVBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUMxRCxTQUFTLEVBQUUsc0JBQWU7WUFDMUIsS0FBSztZQUNMLEtBQUs7U0FDTixDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBaUIsRUFBRSxDQUFDO1FBRS9CLElBQUksU0FBaUQsQ0FBQztRQUV0RCxTQUFTLGtCQUFrQjtZQUN6QixPQUFPO2dCQUNMLElBQUEsa0JBQVcsRUFDVCxVQUFVLENBQUMsT0FBTyxFQUNsQixVQUFVLEVBQ1YsTUFBTSxFQUNOLENBQUMsRUFDRCxDQUFDLFVBQVUsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFZLENBQ3BGO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxTQUFTLHFCQUFxQjtZQUM1QixPQUFPLElBQUEseUNBQTJCLEVBQ2hDLFVBQVUsQ0FBQyxPQUFPLEVBQ2xCLGtCQUFrQixFQUFFLEVBQ3BCLHdCQUF3QixDQUFDLE9BQU8sRUFDaEMsSUFBQSx5Q0FBNkIsR0FBRSxDQUNoQyxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sQ0FBQyxvQkFBb0IsRUFBRTtZQUMzQixTQUFTLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsbUJBQW1CO1lBQzFCLE9BQU87Z0JBQ0w7b0JBQ0UsRUFBRSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUU7b0JBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxPQUFPO29CQUN6QyxLQUFLLEVBQUUsS0FBSztvQkFDWixLQUFLLEVBQUUsS0FBSztvQkFDWixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO2lCQUMvQjthQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxzQkFBZSxDQUFDLENBQUMsQ0FBQztZQUMzRSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUM7WUFDSixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQztZQUNKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQztZQUNSLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsZ0JBQWdCLENBQ3ZCLElBQVksRUFDWixpQkFBZ0c7WUFFaEcsRUFBRSxDQUFDLHlCQUF5QixJQUFJLEdBQUcsRUFBRSxLQUFLO2dCQUN4QyxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLFdBQVcsR0FBRztvQkFDaEIsR0FBRyxRQUFRO29CQUNYLEVBQUUsRUFBRSxJQUFBLDBCQUFtQixFQUFDLFFBQVEsQ0FBQyxLQUFlLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDO2lCQUM3RixDQUFDO2dCQUNGLElBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDdkMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNuQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDOzRCQUMxQixPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDdEIsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLE9BQU8sQ0FBQyxDQUFDO3dCQUNYLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztnQkFDSixDQUFDO2dCQUNELElBQUEsc0JBQWUsRUFDYixXQUFXLEVBQ1gsTUFBTSxJQUFBLGlCQUFVLEVBQUMsVUFBVSxFQUFFLCtCQUErQixZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQzVHLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxTQUFTLGlDQUFpQyxDQUFDLEVBQW1EO1lBQzVGLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFVLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUU7b0JBQ2xHLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtpQkFDbEMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLG1CQUFtQixFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxLQUFLO3FCQUNWLDBCQUEwQixDQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxVQUFVLENBQUM7cUJBQzdFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZELE1BQU0sdUJBQXVCLEdBQUcsS0FBSztpQkFDbEMsSUFBSSxDQUFDLHNCQUFnQixDQUFDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQztpQkFDdkQsT0FBTyxDQUFDLElBQUkscUNBQThCLENBQVUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRyxNQUFNLE1BQU0sR0FBRztnQkFDYixZQUFZO2dCQUNaLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFO2dCQUN2QixlQUFlO2dCQUNmLE1BQU0sRUFBRSxnQkFBZ0I7YUFDekIsQ0FBQztZQUNGLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBTSxVQUFVLENBQUMscUJBQXFCLENBQVU7Z0JBQ3RFLEdBQUcsTUFBTTtnQkFDVCxJQUFJLEVBQUUsc0JBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO2FBQzdCLENBQUMsQ0FBc0MsQ0FBQztZQUN6QyxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVuRCxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFakQsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO2dCQUNyRCxpQ0FBaUMsQ0FBQyxjQUFjLENBQUMsS0FBZSxDQUFDLENBQUM7WUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN6RCxNQUFNLHVCQUF1QixHQUFHLEtBQUs7aUJBQ2xDLElBQUksQ0FBQyxzQkFBZ0IsQ0FBQyxTQUFTLEVBQUUscUJBQXFCLENBQUM7aUJBQ3ZELE9BQU8sQ0FBQyxJQUFJLHFDQUE4QixDQUFVLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDckcsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsWUFBWTtnQkFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtnQkFDdkIsZUFBZTtnQkFDZixNQUFNLEVBQUUsZ0JBQWdCO2FBQ3pCLENBQUM7WUFDRixNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxVQUFVLENBQUMscUJBQXFCLENBQVU7Z0JBQ3hFLEdBQUcsTUFBTTtnQkFDVCxNQUFNLEVBQUUsS0FBSzthQUNkLENBQUMsQ0FBd0MsQ0FBQztZQUMzQyxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVuRCxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUVyRCxFQUFFLENBQUMsMENBQTBDLEVBQUUsS0FBSztnQkFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxVQUFVLENBQUMsZUFBZSxDQUFVO29CQUN6RCxVQUFVLEVBQUUsZ0JBQWdCO29CQUM1QixHQUFHLEVBQUUsc0JBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO29CQUMzQixJQUFJLEVBQUUsc0JBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQW1CO2lCQUMxRCxDQUFDLENBQUM7Z0JBQ0gsaUNBQWlDLENBQUUsUUFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FBQyxVQUE0QixFQUFFLFlBQThCO0lBQ2pHLE9BQU8sbUNBQTZCLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRCxnQkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ3pCLGdCQUFTO1NBQ04sTUFBTSxDQUNMLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixJQUFJLEtBQUssU0FBUztRQUNsQiw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4RSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDL0U7U0FDQSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFTLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsZ0NBQWdDLEVBQUUsS0FBSztJQUM5QyxNQUFNLEtBQUssR0FBRyxtQkFBWSxDQUFDO0lBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUEsa0JBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxNQUFNLGdCQUFnQixHQUFHLGtDQUFrQyxDQUFDO0lBRTVELEVBQUUsQ0FBQyx1RUFBdUUsRUFBRSxLQUFLO1FBQy9FLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxDLEtBQUssTUFBTSxLQUFLLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBQSxxQkFBUyxFQUFDLEtBQUssQ0FBQztpQkFDbEMsR0FBRyxDQUFDLFdBQVcsWUFBWSxDQUFDLFFBQVEsRUFBRSxXQUFXLGdCQUFnQixFQUFFLENBQUM7aUJBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixNQUFNLFlBQVksR0FBRyxJQUFBLHFCQUFTLEVBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQixnQkFBZ0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdGLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FDbEIsR0FBRyxFQUFFLENBQUMsSUFBQSxlQUFTLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxFQUN0RCxLQUFLLENBQUMsd0JBQXdCLGdCQUFnQixxQ0FBcUMsS0FBSyxFQUFFLENBQUMsQ0FDNUYsQ0FBQztZQUNGLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG9FQUFvRSxFQUFFLEtBQUs7UUFDNUUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUEscUJBQVMsRUFBQyxLQUFLLENBQUM7aUJBQ2xDLEdBQUcsQ0FBQyxXQUFXLFlBQVksQ0FBQyxRQUFRLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUNwRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsZUFBUyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtnQkFDM0UsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxpQ0FBaUMsRUFBRTtJQUMxQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUU3QyxFQUFFLENBQUMsd0RBQXdELEVBQUU7UUFDM0QsaUVBQWlFO1FBQ2pFLDJFQUEyRTtRQUMzRSwyRUFBMkU7UUFDM0UsTUFBTSxVQUFVLEdBQUcsb0NBQW9DLENBQUM7UUFDeEQsTUFBTSxxQkFBcUIsR0FBRyxvQ0FBb0MsQ0FBQztRQUVuRSxNQUFNLGFBQWEsR0FBRyxJQUFBLHFDQUErQixFQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RSxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG9FQUFvRSxFQUFFO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLElBQUEscUNBQStCLEVBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNFLGlEQUFpRDtRQUNqRCxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsNENBQTRDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0NBQW9DLEVBQUU7UUFDdkMsTUFBTSxhQUFhLEdBQUcsNkNBQTZDLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQ0FBK0IsRUFBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgc2hvdWxkID0gcmVxdWlyZSgnc2hvdWxkJyk7XG5pbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZ2V0U2VlZCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RVdHhvQ29pbixcbiAgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkLFxuICBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZCxcbiAgZ2V0V2FsbGV0LFxuICBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3ZlcmllcyxcbiAgZ2VuZXJhdGVBZGRyZXNzLFxuICBjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0LFxufSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHtcbiAgZ2V0Rml4dHVyZSxcbiAga2V5Y2hhaW5zQmFzZTU4LFxuICBLZXljaGFpbkJhc2U1OCxcbiAgbW9ja1Vuc3BlbnQsXG4gIHNob3VsZEVxdWFsSlNPTixcbiAgdXR4b0NvaW5zLFxuICB0cmFuc2FjdGlvbkhleFRvT2JqLFxuICBnZXREZWZhdWx0V2FsbGV0S2V5cyxcbiAgZGVmYXVsdEJpdEdvLFxuICBnZXRVdHhvQ29pbixcbn0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBub2NrQml0R28gfSBmcm9tICcuLi91dGlsL25vY2tCaXRHbyc7XG5pbXBvcnQgeyBjcmVhdGVGdWxsU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi91dGlsL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyIH0gZnJvbSAnLi4vdXRpbC9rZXljaGFpbnMnO1xuXG5pbXBvcnQgeyBNb2NrQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXIgfSBmcm9tICcuL21vY2snO1xuXG50eXBlIFdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8VE51bWJlcj47XG5cbmZ1bmN0aW9uIGdldEtleUlkKGs6IEtleWNoYWluQmFzZTU4KTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFNlZWQoay5wdWIpLnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuZnVuY3Rpb24gbm9ja1dhbGxldChjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRJZDogc3RyaW5nLCB3YWxsZXRLZXlzOiBUcmlwbGU8S2V5Y2hhaW5CYXNlNTg+KTogbm9jay5TY29wZVtdIHtcbiAgcmV0dXJuIFtcbiAgICBub2NrQml0R28oKVxuICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7d2FsbGV0SWR9YClcbiAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgaWQ6IHdhbGxldElkLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGxhYmVsOiAnY3Jvc3NDaGFpblJlY292ZXJ5JyxcbiAgICAgICAga2V5czogd2FsbGV0S2V5cy5tYXAoKGspID0+IGdldEtleUlkKGspKSxcbiAgICAgIH0pXG4gICAgICAucGVyc2lzdCgpLFxuICAgIC4uLndhbGxldEtleXMubWFwKChrKSA9PlxuICAgICAgbm9ja0JpdEdvKClcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7Z2V0S2V5SWQoayl9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgaylcbiAgICAgICAgLnBlcnNpc3QoKVxuICAgICksXG4gIF07XG59XG5cbnR5cGUgQWRkcmVzcyA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gbm9ja1dhbGxldEFkZHJlc3MoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0SWQ6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IG5vY2suU2NvcGUge1xuICByZXR1cm4gbm9ja0JpdEdvKClcbiAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH0vYWRkcmVzcy8ke2FkZHJlc3MuYWRkcmVzc31gKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGFkZHJlc3M6IGFkZHJlc3MuYWRkcmVzcyxcbiAgICAgIGNoYWluOiBhZGRyZXNzLmNoYWluLFxuICAgICAgaW5kZXg6IGFkZHJlc3MuaW5kZXgsXG4gICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICB3YWxsZXQ6IHdhbGxldElkLFxuICAgIH0pXG4gICAgLnBlcnNpc3QoKTtcbn1cblxuLyoqXG4gKiBTZXR1cCB0ZXN0IGZvciBjcm9zcy1jaGFpbiByZWNvdmVyeS5cbiAqXG4gKiBVc2VycyBjYW4gcmVjZWl2ZSBkZXBvc2l0cyBvbiB3YWxsZXQgYWRkcmVzc2VzIHRoYXQgYXJlIG9uIGEgZGlmZmVyZW50IGNoYWluLlxuICpcbiAqIEZvciBpbnN0YW5jZSwgYSB1c2VyIGNhbiByZWNlaXZlIGxpdGVjb2luIG9uIGEgYml0Y29pbiB3YWxsZXQuXG4gKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGxpdGVjb2luIGJsb2NrY2hhaW4gaGFzIGEgdHJhbnNhY3Rpb24gd2l0aCBvdXRwdXRzIHRoYXQgYXJlIHNwZW5kYWJsZVxuICogd2l0aCBrZXlzIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgZm9yIGEgQml0R28gQlRDIHdhbGxldC5cbiAqIEluIHRoaXMgZXhhbXBsZSwgTFRDIGlzIHRoZSBcInNvdXJjZSBjb2luXCIgYW5kIEJUQyBpcyB0aGUgXCJyZWNvdmVyeSBjb2luXCJcbiAqIEluIGNhc2VzIGxpa2UgdGhlc2Ugd2UgbXVzdCB1c2UgY29uc3RydWN0IGEgdHJhbnNhY3Rpb24gZm9yIGxpdGVjb2luIG5ldHdvcmsgdXNpbmcga2V5cyBvZiB0aGVcbiAqIGJpdGNvaW4gd2FsbGV0LlxuICpcbiAqIEBwYXJhbSBzb3VyY2VDb2luIC0gdGhlIGNvaW4gdG8gY29uc3RydWN0IHRoZSB0cmFuc2FjdGlvbiBmb3JcbiAqIEBwYXJhbSByZWNvdmVyeUNvaW4gLSB0aGUgY29pbiB0aGUgcmVjZWl2aW5nIHdhbGxldCB3YXMgc2V0IHVwIGZvclxuICovXG5mdW5jdGlvbiBydW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gIGRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBbc291cmNlQ29pbj0ke3NvdXJjZUNvaW4uZ2V0Q2hhaW4oKX0gcmVjb3ZlcnlDb2luPSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB3YWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbiAgICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgICAvLyB0aGUgYWRkcmVzcyB0aGUgYWNjaWRlbnRhbCBkZXBvc2l0IHdlbnQgdG8sIGluIGJvdGggc291cmNlQ29pbiBhbmQgYWRkcmVzc0NvaW4gZm9ybWF0c1xuICAgIGNvbnN0IFtkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4sIGRlcG9zaXRBZGRyZXNzUmVjb3ZlcnlDb2luXSA9IFtzb3VyY2VDb2luLCByZWNvdmVyeUNvaW5dLm1hcCgoY29pbikgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGdlbmVyYXRlQWRkcmVzcyhjb2luLm5ldHdvcmssIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMCB9KSxcbiAgICAgIGNoYWluOiAwLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNoYWluID0gMDtcbiAgICBjb25zdCBpbmRleCA9IDE7XG4gICAgLy8gdGhlIGFkZHJlc3Mgd2hlcmUgd2Ugd2FudCB0byByZWNvdmVyIG91ciBmdW5kcyB0b1xuICAgIGNvbnN0IHJlY292ZXJ5QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgIGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCBub2Nrczogbm9jay5TY29wZVtdID0gW107XG5cbiAgICBsZXQgZGVwb3NpdFR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPjtcblxuICAgIGZ1bmN0aW9uIGdldERlcG9zaXRVbnNwZW50cygpOiB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBtb2NrVW5zcGVudDxUTnVtYmVyPihcbiAgICAgICAgICBzb3VyY2VDb2luLm5ldHdvcmssXG4gICAgICAgICAgd2FsbGV0S2V5cyxcbiAgICAgICAgICAncDJzaCcsXG4gICAgICAgICAgMCxcbiAgICAgICAgICAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IEJpZ0ludCgnMTA5OTk5OTk4MDAwMDAwMDEnKSA6IDFlOCkgYXMgVE51bWJlclxuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZUZ1bGxTaWduZWRUcmFuc2FjdGlvbjxUTnVtYmVyPihcbiAgICAgICAgc291cmNlQ29pbi5uZXR3b3JrLFxuICAgICAgICBnZXREZXBvc2l0VW5zcGVudHMoKSxcbiAgICAgICAgZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgIGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyKClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYmVmb3JlKCdwcmVwYXJlIGRlcG9zaXQgdHgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBkZXBvc2l0VHggPSBnZXREZXBvc2l0VHJhbnNhY3Rpb24oKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGdldFJlY292ZXJ5VW5zcGVudHMoKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgICAgYWRkcmVzczogZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsXG4gICAgICAgICAgY2hhaW46IGNoYWluLFxuICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICB2YWx1ZTogZGVwb3NpdFR4Lm91dHNbMF0udmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGJlZm9yZSgnc2V0dXAgbm9ja3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBub2Nrcy5wdXNoKC4uLm5vY2tXYWxsZXQocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBrZXljaGFpbnNCYXNlNTgpKTtcbiAgICAgIG5vY2tzLnB1c2gobm9ja1dhbGxldEFkZHJlc3MocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBkZXBvc2l0QWRkcmVzc1JlY292ZXJ5Q29pbikpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MuZm9yRWFjaCgobikgPT4gbi5kb25lKCkpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9jay5jbGVhbkFsbCgpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHRlc3RNYXRjaEZpeHR1cmUoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBnZXRSZWNvdmVyeVJlc3VsdDogKCkgPT4gQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+IHwgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj5cbiAgICApIHtcbiAgICAgIGl0KGBzaG91bGQgbWF0Y2ggZml4dHVyZSAoJHtuYW1lfSlgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlY292ZXJ5ID0gZ2V0UmVjb3ZlcnlSZXN1bHQoKTtcbiAgICAgICAgbGV0IHJlY292ZXJ5T2JqID0ge1xuICAgICAgICAgIC4uLnJlY292ZXJ5LFxuICAgICAgICAgIHR4OiB0cmFuc2FjdGlvbkhleFRvT2JqKHJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZywgc291cmNlQ29pbi5uZXR3b3JrLCBzb3VyY2VDb2luLmFtb3VudFR5cGUpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50Jykge1xuICAgICAgICAgIHJlY292ZXJ5T2JqID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHJlY292ZXJ5T2JqLCAoaywgdikgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHNob3VsZEVxdWFsSlNPTihcbiAgICAgICAgICByZWNvdmVyeU9iaixcbiAgICAgICAgICBhd2FpdCBnZXRGaXh0dXJlKHNvdXJjZUNvaW4sIGByZWNvdmVyeS9jcm9zc0NoYWluUmVjb3ZlcnktJHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX0tJHtuYW1lfWAsIHJlY292ZXJ5T2JqKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHR4OiBzdHJpbmcgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPikge1xuICAgICAgaWYgKHR5cGVvZiB0eCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyPihCdWZmZXIuZnJvbSh0eCwgJ2hleCcpLCBzb3VyY2VDb2luLm5ldHdvcmssIHtcbiAgICAgICAgICBhbW91bnRUeXBlOiBzb3VyY2VDb2luLmFtb3VudFR5cGUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgdW5zcGVudHMgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5zLmxlbmd0aCwgdW5zcGVudHMubGVuZ3RoKTtcbiAgICAgIHR4Lmlucy5mb3JFYWNoKChpbnB1dCwgaSkgPT4ge1xuICAgICAgICBhc3NlcnQub2sodHlwZW9mIHR4ICE9PSAnc3RyaW5nJyk7XG4gICAgICAgIHV0eG9saWIuYml0Z29cbiAgICAgICAgICAudmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlcj4odHgsIGksIGdldFJlY292ZXJ5VW5zcGVudHMoKSwgd2FsbGV0S2V5cylcbiAgICAgICAgICAuc2hvdWxkLmVxbChbdHJ1ZSwgZmFsc2UsIGZhbHNlXSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRlc3Qgc2lnbmVkIGNyb3NzIGNoYWluIHJlY292ZXJ5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIgPSBzaW5vblxuICAgICAgICAuc3R1YihBYnN0cmFjdFV0eG9Db2luLnByb3RvdHlwZSwgJ2dldFJlY292ZXJ5UHJvdmlkZXInKVxuICAgICAgICAucmV0dXJucyhuZXcgTW9ja0Nyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyPFROdW1iZXI+KHNvdXJjZUNvaW4sIGdldERlcG9zaXRVbnNwZW50cygpLCBkZXBvc2l0VHgpKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHguZ2V0SWQoKSxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHhwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+O1xuICAgICAgc2hvdWxkLmVxdWFsKGdldFJlY292ZXJ5UHJvdmlkZXJTdHViLmNhbGxDb3VudCwgMSk7XG5cbiAgICAgIHRlc3RNYXRjaEZpeHR1cmUoJ3NpZ25lZCcsICgpID0+IHNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIHZhbGlkIHNpZ25hdHVyZXMgZm9yIHNpZ25lZCByZWNvdmVyeScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2hlY2tSZWNvdmVyeVRyYW5zYWN0aW9uU2lnbmF0dXJlKHNpZ25lZFJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGVzdCB1bnNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IE1vY2tDcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBnZXREZXBvc2l0VW5zcGVudHMoKSwgZGVwb3NpdFR4KSk7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJlY292ZXJ5Q29pbixcbiAgICAgICAgdHhpZDogZGVwb3NpdFR4LmdldElkKCksXG4gICAgICAgIHJlY292ZXJ5QWRkcmVzcyxcbiAgICAgICAgd2FsbGV0OiByZWNvdmVyeVdhbGxldElkLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVuc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHNpZ25lZDogZmFsc2UsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj47XG4gICAgICBzaG91bGQuZXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgdGVzdE1hdGNoRml4dHVyZSgndW5zaWduZWQnLCAoKSA9PiB1bnNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgaXQoJ3Nob3VsZCBiZSBzaWduYWJsZSBmb3IgdW5zaWduZWQgcmVjb3ZlcnknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgc291cmNlQ29pbi5zaWduVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgICAgICAgIHR4UHJlYnVpbGQ6IHVuc2lnbmVkUmVjb3ZlcnksXG4gICAgICAgICAgcHJ2OiBrZXljaGFpbnNCYXNlNThbMF0ucHJ2LFxuICAgICAgICAgIHB1YnM6IGtleWNoYWluc0Jhc2U1OC5tYXAoKGspID0+IGsucHViKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICAgICAgfSk7XG4gICAgICAgIGNoZWNrUmVjb3ZlcnlUcmFuc2FjdGlvblNpZ25hdHVyZSgoc2lnbmVkVHggYXMgeyB0eEhleDogc3RyaW5nIH0pLnR4SGV4KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNTdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcnkoc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3Zlcmllc1tzb3VyY2VDb2luLmdldEZhbWlseSgpXT8uaW5jbHVkZXMocmVjb3ZlcnlDb2luLmdldEZhbWlseSgpKTtcbn1cblxudXR4b0NvaW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgdXR4b0NvaW5zXG4gICAgLmZpbHRlcihcbiAgICAgIChvdGhlckNvaW4pID0+XG4gICAgICAgIGNvaW4gIT09IG90aGVyQ29pbiAmJlxuICAgICAgICBpc1N1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyeShjb2luLCBvdGhlckNvaW4pICYmXG4gICAgICAgICgodXR4b2xpYi5pc01haW5uZXQoY29pbi5uZXR3b3JrKSAmJiB1dHhvbGliLmlzTWFpbm5ldChvdGhlckNvaW4ubmV0d29yaykpIHx8XG4gICAgICAgICAgKHV0eG9saWIuaXNUZXN0bmV0KGNvaW4ubmV0d29yaykgJiYgdXR4b2xpYi5pc1Rlc3RuZXQob3RoZXJDb2luLm5ldHdvcmspKSlcbiAgICApXG4gICAgLmZvckVhY2goKG90aGVyQ29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4uYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgcnVuPGJpZ2ludD4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJ1bihjb2luLCBvdGhlckNvaW4pO1xuICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBnZXRXYWxsZXRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJpdGdvID0gZGVmYXVsdEJpdEdvO1xuICBjb25zdCByZWNvdmVyeUNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IHJlY292ZXJ5V2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuXG4gIGl0KCdzaG91bGQgc2VhcmNoIHYxIHdhbGxldHMgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA0eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNDAwLCA0MDRdO1xuXG4gICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvclJlc3BvbnNlcykge1xuICAgICAgY29uc3Qgbm9ja1YyV2FsbGV0ID0gbm9ja0JpdEdvKGJpdGdvKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9L3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YClcbiAgICAgICAgLnJlcGx5KGVycm9yKTtcbiAgICAgIGNvbnN0IG5vY2tWMVdhbGxldCA9IG5vY2tCaXRHbyhiaXRnbykuZ2V0KGAvYXBpL3YxL3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YCkucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoXG4gICAgICAgICgpID0+IGdldFdhbGxldChiaXRnbywgcmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkKSxcbiAgICAgICAgRXJyb3IoYGNvdWxkIG5vdCBnZXQgd2FsbGV0ICR7cmVjb3ZlcnlXYWxsZXRJZH0gZnJvbSB2MSBvciB2MjogQXBpUmVzcG9uc2VFcnJvcjogJHtlcnJvcn1gKVxuICAgICAgKTtcbiAgICAgIG5vY2tWMldhbGxldC5kb25lKCk7XG4gICAgICBub2NrVjFXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdjIgZW5kcG9pbnQgcmVzcG9uZHMgd2l0aCBhIDV4eCBlcnJvcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBlcnJvclJlc3BvbnNlcyA9IFs1MDBdO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksIHtcbiAgICAgICAgbmFtZTogJ0FwaVJlc3BvbnNlRXJyb3InLFxuICAgICAgICBzdGF0dXM6IDUwMCxcbiAgICAgICAgcmVzdWx0OiB7fSxcbiAgICAgICAgaW52YWxpZFRva2VuOiBmYWxzZSxcbiAgICAgICAgbmVlZHNPVFA6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2NvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGx0Y05ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzLmxpdGVjb2luO1xuXG4gIGl0KCdzaG91bGQgY29udmVydCBNLi4uIFAyU0ggYWRkcmVzcyB0byAzLi4uIGxlZ2FjeSBmb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVGhlc2UgdHdvIGFkZHJlc3NlcyByZXByZXNlbnQgdGhlIHNhbWUgdW5kZXJseWluZyBzY3JpcHQgaGFzaDpcbiAgICAvLyAtIE1OUTd6a2dNc2FWNjdyc2pBM0p1UDU5UkM1d3hSWHB3Z0UgaXMgdGhlIExUQyBmb3JtYXQgKHNjcmlwdEhhc2ggMHgzMilcbiAgICAvLyAtIDNHQnlnc0dQdlRkZktNYnE0QUtaWlJ1MXNQTVdQRXNCZmQgaXMgdGhlIEJUQyBmb3JtYXQgKHNjcmlwdEhhc2ggMHgwNSlcbiAgICBjb25zdCBsdGNBZGRyZXNzID0gJ01OUTd6a2dNc2FWNjdyc2pBM0p1UDU5UkM1d3hSWHB3Z0UnO1xuICAgIGNvbnN0IGV4cGVjdGVkTGVnYWN5QWRkcmVzcyA9ICczR0J5Z3NHUHZUZGZLTWJxNEFLWlpSdTFzUE1XUEVzQmZkJztcblxuICAgIGNvbnN0IGxlZ2FjeUFkZHJlc3MgPSBjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0KGx0Y0FkZHJlc3MsIGx0Y05ldHdvcmspO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChsZWdhY3lBZGRyZXNzLCBleHBlY3RlZExlZ2FjeUFkZHJlc3MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvbnZlcnQgTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSB0byBsZWdhY3kgZm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSAnTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSc7XG4gICAgY29uc3QgbGVnYWN5QWRkcmVzcyA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQoYWRkcmVzcywgbHRjTmV0d29yayk7XG5cbiAgICAvLyBTaG91bGQgc3RhcnQgd2l0aCAnMycgKGxlZ2FjeSBCVEMgUDJTSCBmb3JtYXQpXG4gICAgYXNzZXJ0Lm9rKGxlZ2FjeUFkZHJlc3Muc3RhcnRzV2l0aCgnMycpLCBgRXhwZWN0ZWQgYWRkcmVzcyB0byBzdGFydCB3aXRoICczJywgZ290OiAke2xlZ2FjeUFkZHJlc3N9YCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IG1vZGlmeSBiZWNoMzIgYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJlY2gzMkFkZHJlc3MgPSAnbHRjMXFncmw4enBuZHNrbGFhOXN3Z2Q1dmV2eXhteDV4NjN2Y3JsN2RrNCc7XG4gICAgY29uc3QgcmVzdWx0ID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChiZWNoMzJBZGRyZXNzLCBsdGNOZXR3b3JrKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LCBiZWNoMzJBZGRyZXNzKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -89,7 +89,7 @@ function describeTransactionWith(acidTest) {
|
|
|
89
89
|
}
|
|
90
90
|
const wasmExplanation = (0, fixedScript_1.explainPsbtWasm)(wasmPsbt, walletXpubs, {
|
|
91
91
|
replayProtection: {
|
|
92
|
-
|
|
92
|
+
publicKeys: [acidTest.getReplayProtectionPublicKey()],
|
|
93
93
|
},
|
|
94
94
|
});
|
|
95
95
|
for (const key of Object.keys(refExplanation)) {
|
|
@@ -115,7 +115,7 @@ function describeTransactionWith(acidTest) {
|
|
|
115
115
|
it('returns custom change outputs when parameter is set', function () {
|
|
116
116
|
const wasmExplanation = (0, fixedScript_1.explainPsbtWasm)(wasmPsbt, walletXpubs, {
|
|
117
117
|
replayProtection: {
|
|
118
|
-
|
|
118
|
+
publicKeys: [acidTest.getReplayProtectionPublicKey()],
|
|
119
119
|
},
|
|
120
120
|
customChangeWalletXpubs,
|
|
121
121
|
});
|
|
@@ -129,4 +129,4 @@ function describeTransactionWith(acidTest) {
|
|
|
129
129
|
describe('explainPsbt(Wasm)', function () {
|
|
130
130
|
utxo_lib_1.testutil.AcidTest.suite().forEach((test) => describeTransactionWith(test));
|
|
131
131
|
});
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvZXhwbGFpblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBd0M7QUFFeEMsOERBQWdEO0FBQ2hELG1EQUFnRDtBQUNoRCxnREFBNkQ7QUFHN0QseUVBQXVGO0FBRXZGLGlDQUE0QztBQUU1QyxTQUFTLHVCQUF1QixDQUFDLFFBQTJCO0lBQzFELFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUMzQixJQUFJLElBQTRCLENBQUM7UUFDakMsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksV0FBMkIsQ0FBQztRQUNoQyxJQUFJLHVCQUFtRCxDQUFDO1FBQ3hELElBQUksUUFBcUMsQ0FBQztRQUMxQyxJQUFJLGNBQXNDLENBQUM7UUFDM0MsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzdCLGNBQWMsR0FBRyxJQUFBLHlCQUFXLEVBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUN0RixNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztZQUNILFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0QsSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BCLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUs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QyxlQUFlLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0RSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsUUFBUSxDQUFDLG1CQUFtQixFQUFFO0lBQzVCLG1CQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyB0ZXN0dXRpbCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCBUcmlwbGUgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHR5cGUgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBleHBsYWluUHNidCwgZXhwbGFpblBzYnRXYXNtIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0JztcblxuaW1wb3J0IHsgaGFzV2FzbVV0eG9TdXBwb3J0IH0gZnJvbSAnLi91dGlsJztcblxuZnVuY3Rpb24gZGVzY3JpYmVUcmFuc2FjdGlvbldpdGgoYWNpZFRlc3Q6IHRlc3R1dGlsLkFjaWRUZXN0KSB7XG4gIGRlc2NyaWJlKGAke2FjaWRUZXN0Lm5hbWV9YCwgZnVuY3Rpb24gKCkge1xuICAgIGxldCBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuICAgIGxldCBwc2J0Qnl0ZXM6IEJ1ZmZlcjtcbiAgICBsZXQgd2FsbGV0WHB1YnM6IFRyaXBsZTxzdHJpbmc+O1xuICAgIGxldCBjdXN0b21DaGFuZ2VXYWxsZXRYcHViczogVHJpcGxlPHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHdhc21Qc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG4gICAgbGV0IHJlZkV4cGxhbmF0aW9uOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uO1xuICAgIGJlZm9yZSgncHJlcGFyZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBzYnQgPSBhY2lkVGVzdC5jcmVhdGVQc2J0KCk7XG4gICAgICByZWZFeHBsYW5hdGlvbiA9IGV4cGxhaW5Qc2J0KHBzYnQsIHsgcHViczogYWNpZFRlc3Qucm9vdFdhbGxldEtleXMgfSwgYWNpZFRlc3QubmV0d29yaywge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHBzYnRCeXRlcyA9IHBzYnQudG9CdWZmZXIoKTtcbiAgICAgIGNvbnN0IG5ldHdvcmtOYW1lID0gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShhY2lkVGVzdC5uZXR3b3JrKTtcbiAgICAgIGFzc2VydChuZXR3b3JrTmFtZSk7XG4gICAgICB3YWxsZXRYcHVicyA9IGFjaWRUZXN0LnJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPjtcbiAgICAgIGN1c3RvbUNoYW5nZVdhbGxldFhwdWJzID0gYWNpZFRlc3Qub3RoZXJXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPjtcbiAgICAgIGlmIChoYXNXYXNtVXR4b1N1cHBvcnQoYWNpZFRlc3QubmV0d29yaykpIHtcbiAgICAgICAgd2FzbVBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKHBzYnRCeXRlcywgbmV0d29ya05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYXRjaCB0aGUgZXhwZWN0ZWQgdmFsdWVzIGZvciBleHBsYWluUHNidCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIG5vdGU6IGBvdXRwdXRzYCBtZWFucyBleHRlcm5hbCBvdXRwdXRzIGhlcmVcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZWZFeHBsYW5hdGlvbi5vdXRwdXRzLmxlbmd0aCwgMyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVmRXhwbGFuYXRpb24uY2hhbmdlT3V0cHV0cy5sZW5ndGgsIGFjaWRUZXN0Lm91dHB1dHMubGVuZ3RoIC0gMyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVmRXhwbGFuYXRpb24ub3V0cHV0QW1vdW50LCAnMTgwMCcpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlZkV4cGxhbmF0aW9uLmNoYW5nZU91dHB1dHMubGVuZ3RoLCBhY2lkVGVzdC5vdXRwdXRzLmxlbmd0aCAtIDMpO1xuICAgICAgcmVmRXhwbGFuYXRpb24uY2hhbmdlT3V0cHV0cy5mb3JFYWNoKChjaGFuZ2UpID0+IHtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoYW5nZS5hbW91bnQsICc5MDAnKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZiBjaGFuZ2UuYWRkcmVzcywgJ3N0cmluZycpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIHNob3VsZCBzdXBwb3J0IGN1c3RvbSBjaGFuZ2Ugb3V0cHV0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnQoXG4gICAgICAgIHBzYnQsXG4gICAgICAgIHsgcHViczogYWNpZFRlc3Qucm9vdFdhbGxldEtleXMsIGN1c3RvbUNoYW5nZVB1YnM6IGFjaWRUZXN0Lm90aGVyV2FsbGV0S2V5cyB9LFxuICAgICAgICBhY2lkVGVzdC5uZXR3b3JrLFxuICAgICAgICB7IHN0cmljdDogdHJ1ZSB9XG4gICAgICApO1xuICAgICAgYXNzZXJ0Lm9rKGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHMpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uLmNoYW5nZU91dHB1dHMubGVuZ3RoLCByZWZFeHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzLmxlbmd0aCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VzdG9tQ2hhbmdlRXhwbGFuYXRpb24ub3V0cHV0cy5sZW5ndGgsIHJlZkV4cGxhbmF0aW9uLm91dHB1dHMubGVuZ3RoIC0gMSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VzdG9tQ2hhbmdlRXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHNbMF0uYW1vdW50LCAnOTAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1hdGNoIGV4cGxhaW5Qc2J0V2FzbScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghaGFzV2FzbVV0eG9TdXBwb3J0KGFjaWRUZXN0Lm5ldHdvcmspKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNraXAoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd2FzbUV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnRXYXNtKHdhc21Qc2J0LCB3YWxsZXRYcHVicywge1xuICAgICAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICAgICAgb3V0cHV0U2NyaXB0czogW2FjaWRUZXN0LmdldFJlcGxheVByb3RlY3Rpb25PdXRwdXRTY3JpcHQoKV0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVmRXhwbGFuYXRpb24pKSB7XG4gICAgICAgIGNvbnN0IHJlZlZhbHVlID0gcmVmRXhwbGFuYXRpb25ba2V5XTtcbiAgICAgICAgY29uc3Qgd2FzbVZhbHVlID0gd2FzbUV4cGxhbmF0aW9uW2tleV07XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgY2FzZSAnZGlzcGxheU9yZGVyJzpcbiAgICAgICAgICBjYXNlICdpbnB1dFNpZ25hdHVyZXMnOlxuICAgICAgICAgIGNhc2UgJ3NpZ25hdHVyZXMnOlxuICAgICAgICAgICAgLy8gdGhlc2UgYXJlIGRlcHJlY2F0ZWQgZmllbGRzIHRoYXQgd2Ugd2FudCB0byBnZXQgcmlkIG9mXG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdhc21WYWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdhc21WYWx1ZSwgcmVmVmFsdWUsIGBtaXNtYXRjaCBmb3Iga2V5ICR7a2V5fWApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhY2lkVGVzdC5uZXR3b3JrICE9PSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBleHRlbmRlZCB0ZXN0IHN1aXRlIGZvciBiaXRjb2luXG5cbiAgICBpdCgncmV0dXJucyBjdXN0b20gY2hhbmdlIG91dHB1dHMgd2hlbiBwYXJhbWV0ZXIgaXMgc2V0JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgd2FzbUV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnRXYXNtKHdhc21Qc2J0LCB3YWxsZXRYcHVicywge1xuICAgICAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICAgICAgb3V0cHV0U2NyaXB0czogW2FjaWRUZXN0LmdldFJlcGxheVByb3RlY3Rpb25PdXRwdXRTY3JpcHQoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbUNoYW5nZVdhbGxldFhwdWJzLFxuICAgICAgfSk7XG4gICAgICBhc3NlcnQub2sod2FzbUV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHMpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3YXNtRXhwbGFuYXRpb24ub3V0cHV0cy5sZW5ndGgsIDIpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3YXNtRXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3YXNtRXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0c1swXS5hbW91bnQsICc5MDAnKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmRlc2NyaWJlKCdleHBsYWluUHNidChXYXNtKScsIGZ1bmN0aW9uICgpIHtcbiAgdGVzdHV0aWwuQWNpZFRlc3Quc3VpdGUoKS5mb3JFYWNoKCh0ZXN0KSA9PiBkZXNjcmliZVRyYW5zYWN0aW9uV2l0aCh0ZXN0KSk7XG59KTtcbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvZXhwbGFpblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBd0M7QUFFeEMsOERBQWdEO0FBQ2hELG1EQUFnRDtBQUNoRCxnREFBNkQ7QUFHN0QseUVBQXVGO0FBRXZGLGlDQUE0QztBQUU1QyxTQUFTLHVCQUF1QixDQUFDLFFBQTJCO0lBQzFELFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUMzQixJQUFJLElBQTRCLENBQUM7UUFDakMsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksV0FBMkIsQ0FBQztRQUNoQyxJQUFJLHVCQUFtRCxDQUFDO1FBQ3hELElBQUksUUFBcUMsQ0FBQztRQUMxQyxJQUFJLGNBQXNDLENBQUM7UUFDM0MsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzdCLGNBQWMsR0FBRyxJQUFBLHlCQUFXLEVBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUN0RixNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztZQUNILFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0QsSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BCLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUs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QyxlQUFlLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0RSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsUUFBUSxDQUFDLG1CQUFtQixFQUFFO0lBQzVCLG1CQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyB0ZXN0dXRpbCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCBUcmlwbGUgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHR5cGUgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBleHBsYWluUHNidCwgZXhwbGFpblBzYnRXYXNtIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0JztcblxuaW1wb3J0IHsgaGFzV2FzbVV0eG9TdXBwb3J0IH0gZnJvbSAnLi91dGlsJztcblxuZnVuY3Rpb24gZGVzY3JpYmVUcmFuc2FjdGlvbldpdGgoYWNpZFRlc3Q6IHRlc3R1dGlsLkFjaWRUZXN0KSB7XG4gIGRlc2NyaWJlKGAke2FjaWRUZXN0Lm5hbWV9YCwgZnVuY3Rpb24gKCkge1xuICAgIGxldCBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuICAgIGxldCBwc2J0Qnl0ZXM6IEJ1ZmZlcjtcbiAgICBsZXQgd2FsbGV0WHB1YnM6IFRyaXBsZTxzdHJpbmc+O1xuICAgIGxldCBjdXN0b21DaGFuZ2VXYWxsZXRYcHViczogVHJpcGxlPHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHdhc21Qc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG4gICAgbGV0IHJlZkV4cGxhbmF0aW9uOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uO1xuICAgIGJlZm9yZSgncHJlcGFyZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBzYnQgPSBhY2lkVGVzdC5jcmVhdGVQc2J0KCk7XG4gICAgICByZWZFeHBsYW5hdGlvbiA9IGV4cGxhaW5Qc2J0KHBzYnQsIHsgcHViczogYWNpZFRlc3Qucm9vdFdhbGxldEtleXMgfSwgYWNpZFRlc3QubmV0d29yaywge1xuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHBzYnRCeXRlcyA9IHBzYnQudG9CdWZmZXIoKTtcbiAgICAgIGNvbnN0IG5ldHdvcmtOYW1lID0gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShhY2lkVGVzdC5uZXR3b3JrKTtcbiAgICAgIGFzc2VydChuZXR3b3JrTmFtZSk7XG4gICAgICB3YWxsZXRYcHVicyA9IGFjaWRUZXN0LnJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPjtcbiAgICAgIGN1c3RvbUNoYW5nZVdhbGxldFhwdWJzID0gYWNpZFRlc3Qub3RoZXJXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPjtcbiAgICAgIGlmIChoYXNXYXNtVXR4b1N1cHBvcnQoYWNpZFRlc3QubmV0d29yaykpIHtcbiAgICAgICAgd2FzbVBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKHBzYnRCeXRlcywgbmV0d29ya05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYXRjaCB0aGUgZXhwZWN0ZWQgdmFsdWVzIGZvciBleHBsYWluUHNidCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIG5vdGU6IGBvdXRwdXRzYCBtZWFucyBleHRlcm5hbCBvdXRwdXRzIGhlcmVcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZWZFeHBsYW5hdGlvbi5vdXRwdXRzLmxlbmd0aCwgMyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVmRXhwbGFuYXRpb24uY2hhbmdlT3V0cHV0cy5sZW5ndGgsIGFjaWRUZXN0Lm91dHB1dHMubGVuZ3RoIC0gMyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVmRXhwbGFuYXRpb24ub3V0cHV0QW1vdW50LCAnMTgwMCcpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlZkV4cGxhbmF0aW9uLmNoYW5nZU91dHB1dHMubGVuZ3RoLCBhY2lkVGVzdC5vdXRwdXRzLmxlbmd0aCAtIDMpO1xuICAgICAgcmVmRXhwbGFuYXRpb24uY2hhbmdlT3V0cHV0cy5mb3JFYWNoKChjaGFuZ2UpID0+IHtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNoYW5nZS5hbW91bnQsICc5MDAnKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZiBjaGFuZ2UuYWRkcmVzcywgJ3N0cmluZycpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIHNob3VsZCBzdXBwb3J0IGN1c3RvbSBjaGFuZ2Ugb3V0cHV0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnQoXG4gICAgICAgIHBzYnQsXG4gICAgICAgIHsgcHViczogYWNpZFRlc3Qucm9vdFdhbGxldEtleXMsIGN1c3RvbUNoYW5nZVB1YnM6IGFjaWRUZXN0Lm90aGVyV2FsbGV0S2V5cyB9LFxuICAgICAgICBhY2lkVGVzdC5uZXR3b3JrLFxuICAgICAgICB7IHN0cmljdDogdHJ1ZSB9XG4gICAgICApO1xuICAgICAgYXNzZXJ0Lm9rKGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHMpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uLmNoYW5nZU91dHB1dHMubGVuZ3RoLCByZWZFeHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzLmxlbmd0aCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VzdG9tQ2hhbmdlRXhwbGFuYXRpb24ub3V0cHV0cy5sZW5ndGgsIHJlZkV4cGxhbmF0aW9uLm91dHB1dHMubGVuZ3RoIC0gMSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY3VzdG9tQ2hhbmdlRXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGN1c3RvbUNoYW5nZUV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHNbMF0uYW1vdW50LCAnOTAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG1hdGNoIGV4cGxhaW5Qc2J0V2FzbScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghaGFzV2FzbVV0eG9TdXBwb3J0KGFjaWRUZXN0Lm5ldHdvcmspKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNraXAoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd2FzbUV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnRXYXNtKHdhc21Qc2J0LCB3YWxsZXRYcHVicywge1xuICAgICAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICAgICAgcHVibGljS2V5czogW2FjaWRUZXN0LmdldFJlcGxheVByb3RlY3Rpb25QdWJsaWNLZXkoKV0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVmRXhwbGFuYXRpb24pKSB7XG4gICAgICAgIGNvbnN0IHJlZlZhbHVlID0gcmVmRXhwbGFuYXRpb25ba2V5XTtcbiAgICAgICAgY29uc3Qgd2FzbVZhbHVlID0gd2FzbUV4cGxhbmF0aW9uW2tleV07XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgY2FzZSAnZGlzcGxheU9yZGVyJzpcbiAgICAgICAgICBjYXNlICdpbnB1dFNpZ25hdHVyZXMnOlxuICAgICAgICAgIGNhc2UgJ3NpZ25hdHVyZXMnOlxuICAgICAgICAgICAgLy8gdGhlc2UgYXJlIGRlcHJlY2F0ZWQgZmllbGRzIHRoYXQgd2Ugd2FudCB0byBnZXQgcmlkIG9mXG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdhc21WYWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdhc21WYWx1ZSwgcmVmVmFsdWUsIGBtaXNtYXRjaCBmb3Iga2V5ICR7a2V5fWApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhY2lkVGVzdC5uZXR3b3JrICE9PSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBleHRlbmRlZCB0ZXN0IHN1aXRlIGZvciBiaXRjb2luXG5cbiAgICBpdCgncmV0dXJucyBjdXN0b20gY2hhbmdlIG91dHB1dHMgd2hlbiBwYXJhbWV0ZXIgaXMgc2V0JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgd2FzbUV4cGxhbmF0aW9uID0gZXhwbGFpblBzYnRXYXNtKHdhc21Qc2J0LCB3YWxsZXRYcHVicywge1xuICAgICAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICAgICAgcHVibGljS2V5czogW2FjaWRUZXN0LmdldFJlcGxheVByb3RlY3Rpb25QdWJsaWNLZXkoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbUNoYW5nZVdhbGxldFhwdWJzLFxuICAgICAgfSk7XG4gICAgICBhc3NlcnQub2sod2FzbUV4cGxhbmF0aW9uLmN1c3RvbUNoYW5nZU91dHB1dHMpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3YXNtRXhwbGFuYXRpb24ub3V0cHV0cy5sZW5ndGgsIDIpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3YXNtRXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3YXNtRXhwbGFuYXRpb24uY3VzdG9tQ2hhbmdlT3V0cHV0c1swXS5hbW91bnQsICc5MDAnKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmRlc2NyaWJlKCdleHBsYWluUHNidChXYXNtKScsIGZ1bmN0aW9uICgpIHtcbiAgdGVzdHV0aWwuQWNpZFRlc3Quc3VpdGUoKS5mb3JFYWNoKCh0ZXN0KSA9PiBkZXNjcmliZVRyYW5zYWN0aW9uV2l0aCh0ZXN0KSk7XG59KTtcbiJdfQ==
|
|
@@ -120,7 +120,7 @@ function describeParseTransactionWith(acidTest, label, backend, { txParams, exte
|
|
|
120
120
|
const wasmPsbt = wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(psbt.toBuffer(), utxolib.getNetworkName(acidTest.network));
|
|
121
121
|
explanation = (0, fixedScript_1.explainPsbtWasm)(wasmPsbt, acidTest.rootWalletKeys.triple.map((k) => k.neutered().toBase58()), {
|
|
122
122
|
replayProtection: {
|
|
123
|
-
|
|
123
|
+
publicKeys: [acidTest.getReplayProtectionPublicKey()],
|
|
124
124
|
},
|
|
125
125
|
});
|
|
126
126
|
}
|
|
@@ -285,4 +285,4 @@ function describeTransaction(backend, filter = () => true) {
|
|
|
285
285
|
}
|
|
286
286
|
describeTransaction('utxolib');
|
|
287
287
|
describeTransaction('wasm', (test) => (0, util_2.hasWasmUtxoSupport)(test.network));
|
|
288
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VQc2J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3BhcnNlUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUF3QztBQUV4Qyw2Q0FBK0I7QUFDL0IsOERBQWdEO0FBQ2hELG1EQUFrRztBQUNsRyxnREFBcUQ7QUFFckQsK0ZBQTRGO0FBRzVGLHFDQUF5QztBQUN6Qyx5RUFBd0c7QUFLeEcsaURBQTREO0FBRzVELGlDQUE0QztBQUU1QyxTQUFTLDBCQUEwQixDQUNqQyxXQUFtQyxFQUNuQyxFQUFFLDJCQUEyQixFQUE0QztJQUt6RSxpRkFBaUY7SUFDakYsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLElBQUksZUFBZSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUV0RyxJQUFJLGFBQWlDLENBQUM7SUFDdEMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1FBQ2hDLGdEQUFnRDtRQUNoRCxFQUFFO1FBQ0YsMEVBQTBFO1FBQzFFLHNEQUFzRDtRQUN0RCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsYUFBYSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDdkMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU87UUFDTCxVQUFVLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQyxvRUFBb0U7WUFDcEUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFRO1lBQ3hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7UUFDSCxhQUFhO0tBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLElBQTRCO0lBQ3pELElBQUksQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxTQUFTLENBQUM7WUFDckYsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDakMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDakYsS0FBSztnQkFDTCxLQUFLO2FBQ04sQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDekQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sQ0FBQyxDQUFDO0lBQ1YsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLDRCQUE0QixDQUNuQyxRQUFtQyxFQUNuQyxLQUFhLEVBQ2IsT0FBMkIsRUFDM0IsRUFDRSxRQUFRLEVBQ1IsMkJBQTJCLEdBQUcsS0FBSyxFQUNuQyxtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ25DLFFBQVEsR0FBRyxNQUFNLEdBY2xCO0lBRUQsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtRQUNwQyxJQUFJLG9CQUErQyxDQUFDO1FBQ3BELElBQUksSUFBb0MsQ0FBQztRQUN6QyxJQUFJLFVBQThDLENBQUM7UUFDbkQsSUFBSSxzQkFBdUMsQ0FBQztRQUU1QyxNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUs7WUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkQsSUFBSSxHQUFHLElBQUEsa0JBQVcsRUFBQyxRQUFRLENBQUMsQ0FBQztZQUU3Qiw4QkFBOEI7WUFDOUIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFMUIsSUFBSSxXQUFtQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDMUIsV0FBVyxHQUFHLElBQUEseUJBQVcsRUFBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUU7d0JBQ25GLE1BQU0sRUFBRSxJQUFJO3FCQUNiLENBQUMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLElBQUksT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUM5QixNQUFNLFFBQVEsR0FBRyw2QkFBaUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUNwRCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFFLENBQzFDLENBQUM7b0JBQ0YsV0FBVyxHQUFHLElBQUEsNkJBQWUsRUFDM0IsUUFBUSxFQUNSLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFtQixFQUNwRjt3QkFDRSxnQkFBZ0IsRUFBRTs0QkFDaEIsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDLCtCQUErQixFQUFFLENBQUM7eUJBQzVEO3FCQUNGLENBQ0YsQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDakQsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2hGLDJEQUEyRDtnQkFDM0QsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9DLFdBQVcsR0FBRyxJQUFBLDZCQUFlLEVBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBRUQscUJBQXFCO1lBQ3JCLElBQUksZ0JBQWdCLENBQUM7WUFDckIsSUFBSSxRQUFRLEtBQUssc0JBQXNCLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNsRSxnQkFBZ0IsR0FBRywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7WUFDOUYsQ0FBQztpQkFBTSxJQUFJLFVBQVUsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDbEMseURBQXlEO2dCQUN6RCxnQkFBZ0IsR0FBRztvQkFDakIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BGLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1lBQzlCLENBQUM7WUFFRCxJQUFJLDJCQUEyQixFQUFFLENBQUM7Z0JBQ2hDLGdCQUFnQixDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQztZQUNyRCxDQUFDO1lBRUQscUJBQXFCO1lBQ3JCLFVBQVUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQU0sQ0FBQyxDQUFDO1lBQzlDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDeEMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDekMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFM0MsbUNBQW1DO1lBQ25DLElBQUksVUFBVSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25DLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3BHLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUNqQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQzFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTt3QkFDMUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixrRUFBa0U7cUJBQ25FLENBQUMsQ0FBQztpQkFDSixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsaUVBQWlFO1lBQ2pFLDJEQUEyRDtZQUMzRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sWUFBWSxHQUF3QjtnQkFDeEMsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO29CQUNwRCxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtvQkFDdEQsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7aUJBQ3REO2FBQ0YsQ0FBQztZQUVGLGlGQUFpRjtZQUNqRixzQkFBc0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV0RixJQUFJLFVBQXVDLENBQUM7WUFDNUMsSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3hCLFVBQVUsR0FBRztvQkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtpQkFDcEIsQ0FBQztZQUNKLENBQUM7aUJBQU0sSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLFVBQVUsR0FBRztvQkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRTtpQkFDcEMsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFFRCxvQkFBb0IsR0FBRyxNQUFNLElBQUEsbUNBQWdCLEVBQUMsSUFBSSxFQUFFO2dCQUNsRCxNQUFNLEVBQUUsVUFBbUM7Z0JBQzNDLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFVBQVU7Z0JBQ1YsWUFBWTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNmLElBQUksc0JBQXNCLEVBQUUsQ0FBQztnQkFDM0Isc0JBQXNCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGdEQUFnRCxFQUFFO1lBQ25ELGdCQUFNLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEMsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUMsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkJBQTZCLEVBQUU7WUFDaEMsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLGdCQUFNLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNoRixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx3REFBd0QsRUFBRTtZQUMzRCxrR0FBa0c7WUFDbEcsa0hBQWtIO1lBQ2xILE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDekQsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUNoRSxNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMvRixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFdkMsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1lBQy9ELGdCQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxlQUFlLEVBQUUsWUFBWSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFDeEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUU7WUFDdEUsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLDJCQUEyQixDQUFDLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztZQUNsSCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQUMsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3BILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBMkIsRUFDM0IsU0FBdUQsR0FBRyxFQUFFLENBQUMsSUFBSTtJQUVqRSxRQUFRLENBQUMscUJBQXFCLE9BQU8sR0FBRyxFQUFFO1FBQ3hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTthQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDO2FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEIsK0RBQStEO1lBQy9ELDRCQUE0QixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO2dCQUNyRCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxtQ0FBbUMsRUFBRSxLQUFLO2dCQUMxQyxtQ0FBbUMsRUFBRSxFQUFFO2FBQ3hDLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QyxPQUFPO1lBQ1QsQ0FBQztZQUNELGtDQUFrQztZQUVsQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtnQkFDcEQsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLG1DQUFtQyxFQUFFLEtBQUs7Z0JBQzFDLG1DQUFtQyxFQUFFLEVBQUU7YUFDeEMsQ0FBQyxDQUFDO1lBRUgsNEJBQTRCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRTtnQkFDOUQsUUFBUSxFQUFFO29CQUNSLFVBQVUsRUFBRSxFQUFFO2lCQUNmO2dCQUNELG1DQUFtQyxFQUFFLEVBQUU7Z0JBQ3ZDLG1DQUFtQyxFQUFFLEtBQUs7YUFDM0MsQ0FBQyxDQUFDO1lBRUgsNEJBQTRCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7Z0JBQ2pELFFBQVEsRUFBRTtvQkFDUixRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQzFCO2dCQUNELG1DQUFtQyxFQUFFLEtBQUs7Z0JBQzFDLG1DQUFtQyxFQUFFLEVBQUU7YUFDeEMsQ0FBQyxDQUFDO1lBRUgsNEJBQTRCLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFLE9BQU8sRUFBRTtnQkFDeEUsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsMkJBQTJCLEVBQUUsSUFBSTtnQkFDakMsbUNBQW1DLEVBQUUsS0FBSztnQkFDMUMsbUNBQW1DLEVBQUUsRUFBRTthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9CLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBa0IsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0ICogYXMgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBXYWxsZXQsIFZlcmlmaWNhdGlvbk9wdGlvbnMsIElUcmFuc2FjdGlvblJlY2lwaWVudCwgVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgcGFyc2VUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9wYXJzZVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFBhcnNlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3R5cGVzJztcbmltcG9ydCB7IFV0eG9XYWxsZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvd2FsbGV0JztcbmltcG9ydCB7IGdldFV0eG9Db2luIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgeyBleHBsYWluTGVnYWN5VHgsIGV4cGxhaW5Qc2J0LCBleHBsYWluUHNidFdhc20gfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQnO1xuaW1wb3J0IHR5cGUge1xuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBDaGFuZ2VBZGRyZXNzSW5mbyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBnZXRDaGFpbkZyb21OZXR3b3JrIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25hbWVzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUHJlYnVpbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYWJzdHJhY3RVdHhvQ29pbic7XG5cbmltcG9ydCB7IGhhc1dhc21VdHhvU3VwcG9ydCB9IGZyb20gJy4vdXRpbCc7XG5cbmZ1bmN0aW9uIGdldFR4UGFyYW1zRnJvbUV4cGxhbmF0aW9uKFxuICBleHBsYW5hdGlvbjogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgeyBleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3MgfTogeyBleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3M6IGJvb2xlYW4gfVxuKToge1xuICByZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgY2hhbmdlQWRkcmVzcz86IHN0cmluZztcbn0ge1xuICAvLyBUaGUgZXh0ZXJuYWwgb3V0cHV0cyBhcmUgdGhlIG9uZXMgdGhhdCBhcmUgaW4gb3V0cHV0cyBidXQgbm90IGluIGNoYW5nZU91dHB1dHNcbiAgY29uc3QgY2hhbmdlQWRkcmVzc2VzID0gbmV3IFNldChleHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzLm1hcCgobykgPT4gby5hZGRyZXNzKSk7XG4gIGxldCBleHRlcm5hbE91dHB1dHMgPSBleHBsYW5hdGlvbi5vdXRwdXRzLmZpbHRlcigobykgPT4gby5hZGRyZXNzICYmICFjaGFuZ2VBZGRyZXNzZXMuaGFzKG8uYWRkcmVzcykpO1xuXG4gIGxldCBjaGFuZ2VBZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmIChleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3MpIHtcbiAgICAvLyBjb252ZXJ0IGFuIGV4dGVybmFsIG91dHB1dCB0byBhIGNoYW5nZSBvdXRwdXRcbiAgICAvL1xuICAgIC8vIGluIGNvbWJpbmF0aW9uIHdpdGggYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MsIHRoaXMgYWxsb3dzIGFuIGV4dGVybmFsXG4gICAgLy8gb3V0cHV0IG9uIHRoZSB0cmFuc2FjdGlvbiB3aXRob3V0IGEgc2l6ZSBjb25zdHJhaW50XG4gICAgY29uc3QgZXh0ZXJuYWxPdXRwdXQgPSBleHRlcm5hbE91dHB1dHNbMF07XG4gICAgaWYgKCFleHRlcm5hbE91dHB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBleHRlcm5hbCBvdXRwdXQgZm91bmQnKTtcbiAgICB9XG4gICAgY2hhbmdlQWRkcmVzcyA9IGV4dGVybmFsT3V0cHV0LmFkZHJlc3M7XG4gICAgZXh0ZXJuYWxPdXRwdXRzID0gZXh0ZXJuYWxPdXRwdXRzLnNsaWNlKDEpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZWNpcGllbnRzOiBleHRlcm5hbE91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MhLFxuICAgICAgYW1vdW50OiBvdXRwdXQuYW1vdW50LFxuICAgIH0pKSxcbiAgICBjaGFuZ2VBZGRyZXNzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDaGFuZ2VJbmZvRnJvbVBzYnQocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCk6IENoYW5nZUFkZHJlc3NJbmZvW10gfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmZpbmRJbnRlcm5hbE91dHB1dEluZGljZXMocHNidCkubWFwKChpKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBwc2J0LmRhdGEub3V0cHV0c1tpXTtcbiAgICAgIGNvbnN0IGRlcml2YXRpb25zID0gb3V0cHV0LmJpcDMyRGVyaXZhdGlvbiA/PyBvdXRwdXQudGFwQmlwMzJEZXJpdmF0aW9uID8/IHVuZGVmaW5lZDtcbiAgICAgIGlmICghZGVyaXZhdGlvbnMgfHwgZGVyaXZhdGlvbnMubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgMyBkZXJpdmF0aW9uIHBhdGhzJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXRoID0gZGVyaXZhdGlvbnNbMF0ucGF0aDtcbiAgICAgIGNvbnN0IHsgY2hhaW4sIGluZGV4IH0gPSB1dHhvbGliLmJpdGdvLmdldENoYWluQW5kSW5kZXhGcm9tUGF0aChwYXRoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3M6IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHBzYnQudHhPdXRwdXRzW2ldLnNjcmlwdCwgcHNidC5uZXR3b3JrKSxcbiAgICAgICAgY2hhaW4sXG4gICAgICAgIGluZGV4LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlIGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5FcnJvck5vTXVsdGlTaWdJbnB1dEZvdW5kKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlUGFyc2VUcmFuc2FjdGlvbldpdGgoXG4gIGFjaWRUZXN0OiB1dHhvbGliLnRlc3R1dGlsLkFjaWRUZXN0LFxuICBsYWJlbDogc3RyaW5nLFxuICBiYWNrZW5kOiAndXR4b2xpYicgfCAnd2FzbScsXG4gIHtcbiAgICB0eFBhcmFtcyxcbiAgICBleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3MgPSBmYWxzZSxcbiAgICBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCxcbiAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCxcbiAgICB0eEZvcm1hdCA9ICdwc2J0JyxcbiAgfToge1xuICAgIHR4UGFyYW1zOlxuICAgICAgfCB7XG4gICAgICAgICAgcmVjaXBpZW50czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIHJiZlR4SWRzOiBzdHJpbmdbXTtcbiAgICAgICAgfVxuICAgICAgfCAnaW5mZXJGcm9tRXhwbGFuYXRpb24nO1xuICAgIGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzcz86IGJvb2xlYW47XG4gICAgZXhwZWN0ZWRFeHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IGJpZ2ludDtcbiAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogYmlnaW50O1xuICAgIHR4Rm9ybWF0PzogJ3BzYnQnIHwgJ2xlZ2FjeSc7XG4gIH1cbikge1xuICBkZXNjcmliZShgJHthY2lkVGVzdC5uYW1lfS8ke2xhYmVsfWAsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgcmVmUGFyc2VkVHJhbnNhY3Rpb246IFBhcnNlZFRyYW5zYWN0aW9uPGJpZ2ludD47XG4gICAgbGV0IGNvaW46IFJldHVyblR5cGU8dHlwZW9mIGdldFV0eG9Db2luPjtcbiAgICBsZXQgbW9ja1dhbGxldDogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8V2FsbGV0PjtcbiAgICBsZXQgc3R1YkV4cGxhaW5UcmFuc2FjdGlvbjogc2lub24uU2lub25TdHViO1xuXG4gICAgYmVmb3JlKCdwcmVwYXJlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29pbk5hbWUgPSBnZXRDaGFpbkZyb21OZXR3b3JrKGFjaWRUZXN0Lm5ldHdvcmspO1xuICAgICAgY29pbiA9IGdldFV0eG9Db2luKGNvaW5OYW1lKTtcblxuICAgICAgLy8gQ3JlYXRlIFBTQlQgYW5kIGV4cGxhbmF0aW9uXG4gICAgICBjb25zdCBwc2J0ID0gYWNpZFRlc3QuY3JlYXRlUHNidCgpO1xuICAgICAgY29uc3QgdHggPSBwc2J0LmdldFVuc2lnbmVkVHgoKTtcbiAgICAgIGNvbnN0IHR4SGFzaCA9IHR4LmdldElkKCk7XG5cbiAgICAgIGxldCBleHBsYW5hdGlvbjogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjtcbiAgICAgIGlmICh0eEZvcm1hdCA9PT0gJ3BzYnQnKSB7XG4gICAgICAgIGlmIChiYWNrZW5kID09PSAndXR4b2xpYicpIHtcbiAgICAgICAgICBleHBsYW5hdGlvbiA9IGV4cGxhaW5Qc2J0KHBzYnQsIHsgcHViczogYWNpZFRlc3Qucm9vdFdhbGxldEtleXMgfSwgYWNpZFRlc3QubmV0d29yaywge1xuICAgICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGJhY2tlbmQgPT09ICd3YXNtJykge1xuICAgICAgICAgIGNvbnN0IHdhc21Qc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmZyb21CeXRlcyhcbiAgICAgICAgICAgIHBzYnQudG9CdWZmZXIoKSxcbiAgICAgICAgICAgIHV0eG9saWIuZ2V0TmV0d29ya05hbWUoYWNpZFRlc3QubmV0d29yaykhXG4gICAgICAgICAgKTtcbiAgICAgICAgICBleHBsYW5hdGlvbiA9IGV4cGxhaW5Qc2J0V2FzbShcbiAgICAgICAgICAgIHdhc21Qc2J0LFxuICAgICAgICAgICAgYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpIGFzIFRyaXBsZTxzdHJpbmc+LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgb3V0cHV0U2NyaXB0czogW2FjaWRUZXN0LmdldFJlcGxheVByb3RlY3Rpb25PdXRwdXRTY3JpcHQoKV0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmFja2VuZDogJHtiYWNrZW5kfWApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR4Rm9ybWF0ID09PSAnbGVnYWN5Jykge1xuICAgICAgICBjb25zdCBwdWJzID0gYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICAgICAgICAvLyBFeHRyYWN0IGNoYW5nZSBpbmZvIGZyb20gUFNCVCB0byBwYXNzIHRvIGV4cGxhaW5MZWdhY3lUeFxuICAgICAgICBjb25zdCBjaGFuZ2VJbmZvID0gZ2V0Q2hhbmdlSW5mb0Zyb21Qc2J0KHBzYnQpO1xuICAgICAgICBleHBsYW5hdGlvbiA9IGV4cGxhaW5MZWdhY3lUeCh0eCwgeyBwdWJzLCBjaGFuZ2VJbmZvIH0sIGFjaWRUZXN0Lm5ldHdvcmspO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR4Rm9ybWF0OiAke3R4Rm9ybWF0fWApO1xuICAgICAgfVxuXG4gICAgICAvLyBEZXRlcm1pbmUgdHhQYXJhbXNcbiAgICAgIGxldCByZXNvbHZlZFR4UGFyYW1zO1xuICAgICAgaWYgKHR4UGFyYW1zID09PSAnaW5mZXJGcm9tRXhwbGFuYXRpb24nIHx8IHR4UGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzb2x2ZWRUeFBhcmFtcyA9IGdldFR4UGFyYW1zRnJvbUV4cGxhbmF0aW9uKGV4cGxhbmF0aW9uLCB7IGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzcyB9KTtcbiAgICAgIH0gZWxzZSBpZiAoJ3JiZlR4SWRzJyBpbiB0eFBhcmFtcykge1xuICAgICAgICAvLyBSZXBsYWNlIHBsYWNlaG9sZGVyIHR4SGFzaCB3aXRoIGFjdHVhbCBjb21wdXRlZCB0eEhhc2hcbiAgICAgICAgcmVzb2x2ZWRUeFBhcmFtcyA9IHtcbiAgICAgICAgICByYmZUeElkczogdHhQYXJhbXMucmJmVHhJZHMubWFwKChoYXNoKSA9PiAoaGFzaCA9PT0gJ1BMQUNFSE9MREVSJyA/IHR4SGFzaCA6IGhhc2gpKSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmVkVHhQYXJhbXMgPSB0eFBhcmFtcztcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzcykge1xuICAgICAgICByZXNvbHZlZFR4UGFyYW1zLmFsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ3JlYXRlIG1vY2sgd2FsbGV0XG4gICAgICBtb2NrV2FsbGV0ID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKFdhbGxldCk7XG4gICAgICBtb2NrV2FsbGV0LmlkLnJldHVybnMoJ3Rlc3Qtd2FsbGV0LWlkJyk7XG4gICAgICBtb2NrV2FsbGV0LmNvaW4ucmV0dXJucyhjb2luLmdldENoYWluKCkpO1xuICAgICAgbW9ja1dhbGxldC5jb2luU3BlY2lmaWMucmV0dXJucyh1bmRlZmluZWQpO1xuXG4gICAgICAvLyBNb2NrIGdldFRyYW5zYWN0aW9uIGZvciBSQkYgY2FzZVxuICAgICAgaWYgKCdyYmZUeElkcycgaW4gcmVzb2x2ZWRUeFBhcmFtcykge1xuICAgICAgICBjb25zdCByYmZUeFBhcmFtcyA9IGdldFR4UGFyYW1zRnJvbUV4cGxhbmF0aW9uKGV4cGxhbmF0aW9uLCB7IGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzczogZmFsc2UgfSk7XG4gICAgICAgIG1vY2tXYWxsZXQuZ2V0VHJhbnNhY3Rpb24ucmVzb2x2ZXMoe1xuICAgICAgICAgIG91dHB1dHM6IHJiZlR4UGFyYW1zLnJlY2lwaWVudHMubWFwKChyKSA9PiAoe1xuICAgICAgICAgICAgdmFsdWVTdHJpbmc6IHR5cGVvZiByLmFtb3VudCA9PT0gJ3N0cmluZycgPyByLmFtb3VudCA6IHIuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgICBhZGRyZXNzOiByLmFkZHJlc3MsXG4gICAgICAgICAgICAvLyB3YWxsZXQgZmllbGQgaXMgdW5kZWZpbmVkIGZvciBleHRlcm5hbCBvdXRwdXRzIChub3Qgc2VsZi1zZW5kcylcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBNb2NrIHZlcmlmaWNhdGlvbiBvcHRpb25zIHdpdGgga2V5Y2hhaW5zIHRvIGRpc2FibGUgbmV0d29ya2luZ1xuICAgICAgLy8gVXNlIHRoZSBzYW1lIGtleWNoYWlucyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhlIFBTQlRcbiAgICAgIGNvbnN0IHB1YnMgPSBhY2lkVGVzdC5yb290V2FsbGV0S2V5cy50cmlwbGUubWFwKChrKSA9PiBrLm5ldXRlcmVkKCkudG9CYXNlNTgoKSk7XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb246IFZlcmlmaWNhdGlvbk9wdGlvbnMgPSB7XG4gICAgICAgIGRpc2FibGVOZXR3b3JraW5nOiB0cnVlLFxuICAgICAgICBrZXljaGFpbnM6IHtcbiAgICAgICAgICB1c2VyOiB7IGlkOiAnMCcsIHB1YjogcHVic1swXSwgdHlwZTogJ2luZGVwZW5kZW50JyB9LFxuICAgICAgICAgIGJhY2t1cDogeyBpZDogJzEnLCBwdWI6IHB1YnNbMV0sIHR5cGU6ICdpbmRlcGVuZGVudCcgfSxcbiAgICAgICAgICBiaXRnbzogeyBpZDogJzInLCBwdWI6IHB1YnNbMl0sIHR5cGU6ICdpbmRlcGVuZGVudCcgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIC8vIFN0dWIgZXhwbGFpblRyYW5zYWN0aW9uIHRvIHJldHVybiB0aGUgZXhwbGFuYXRpb24gd2l0aG91dCBtYWtpbmcgbmV0d29yayBjYWxsc1xuICAgICAgc3R1YkV4cGxhaW5UcmFuc2FjdGlvbiA9IHNpbm9uLnN0dWIoY29pbiwgJ2V4cGxhaW5UcmFuc2FjdGlvbicpLnJlc29sdmVzKGV4cGxhbmF0aW9uKTtcblxuICAgICAgbGV0IHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ8YmlnaW50PjtcbiAgICAgIGlmICh0eEZvcm1hdCA9PT0gJ3BzYnQnKSB7XG4gICAgICAgIHR4UHJlYnVpbGQgPSB7XG4gICAgICAgICAgdHhIZXg6IHBzYnQudG9IZXgoKSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAodHhGb3JtYXQgPT09ICdsZWdhY3knKSB7XG4gICAgICAgIHR4UHJlYnVpbGQgPSB7XG4gICAgICAgICAgdHhIZXg6IHBzYnQuZ2V0VW5zaWduZWRUeCgpLnRvSGV4KCksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHhGb3JtYXQ6ICR7dHhGb3JtYXR9YCk7XG4gICAgICB9XG5cbiAgICAgIHJlZlBhcnNlZFRyYW5zYWN0aW9uID0gYXdhaXQgcGFyc2VUcmFuc2FjdGlvbihjb2luLCB7XG4gICAgICAgIHdhbGxldDogbW9ja1dhbGxldCBhcyB1bmtub3duIGFzIFV0eG9XYWxsZXQsXG4gICAgICAgIHR4UGFyYW1zOiByZXNvbHZlZFR4UGFyYW1zLFxuICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGFmdGVyKCdjbGVhbnVwJywgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHN0dWJFeHBsYWluVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgc3R1YkV4cGxhaW5UcmFuc2FjdGlvbi5yZXN0b3JlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBhcnNlIHRyYW5zYWN0aW9uIHdpdGhvdXQgbmV0d29yayBjYWxscycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydC5vayhyZWZQYXJzZWRUcmFuc2FjdGlvbik7XG4gICAgICBhc3NlcnQub2socmVmUGFyc2VkVHJhbnNhY3Rpb24ua2V5Y2hhaW5zKTtcbiAgICAgIGFzc2VydC5vayhyZWZQYXJzZWRUcmFuc2FjdGlvbi5vdXRwdXRzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGF2ZSB2YWxpZCBrZXljaGFpbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhc3NlcnQub2socmVmUGFyc2VkVHJhbnNhY3Rpb24ua2V5Y2hhaW5zLnVzZXIpO1xuICAgICAgYXNzZXJ0Lm9rKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy5iYWNrdXApO1xuICAgICAgYXNzZXJ0Lm9rKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy5iaXRnbyk7XG4gICAgICBjb25zdCBwdWJzID0gYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy51c2VyLnB1YiwgcHVic1swXSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVmUGFyc2VkVHJhbnNhY3Rpb24ua2V5Y2hhaW5zLmJhY2t1cC5wdWIsIHB1YnNbMV0pO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy5iaXRnby5wdWIsIHB1YnNbMl0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYXZlIG91dHB1dHMgY2xhc3NpZmllZCBhcyBpbnRlcm5hbCBvciBleHRlcm5hbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFNpbmNlIHdlIGRpZG4ndCBzcGVjaWZ5IGFueSByZWNpcGllbnRzLCBvdXRwdXRzIHdpbGwgYmUgY2xhc3NpZmllZCBiYXNlZCBvbiB3aGV0aGVyIHRoZXkgY2FuIGJlXG4gICAgICAvLyB2ZXJpZmllZCBhcyB3YWxsZXQgYWRkcmVzc2VzLiBTb21lIG1heSBiZSBleHRlcm5hbCBpZiBhZGRyZXNzIHZlcmlmaWNhdGlvbiBmYWlscyB3aXRob3V0IGEgcHJvcGVyIHdhbGxldCBzZXR1cC5cbiAgICAgIGNvbnN0IHRvdGFsT3V0cHV0cyA9IHJlZlBhcnNlZFRyYW5zYWN0aW9uLm91dHB1dHMubGVuZ3RoO1xuICAgICAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IHJlZlBhcnNlZFRyYW5zYWN0aW9uLmNoYW5nZU91dHB1dHMubGVuZ3RoO1xuICAgICAgY29uc3QgZXh0ZXJuYWxPdXRwdXRzID0gcmVmUGFyc2VkVHJhbnNhY3Rpb24ub3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uZXh0ZXJuYWwgPT09IHRydWUpLmxlbmd0aDtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHRlcm5hbE91dHB1dHMsIDMpO1xuXG4gICAgICBhc3NlcnQub2sodG90YWxPdXRwdXRzID4gMCwgJ3Nob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBvdXRwdXQnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGFuZ2VPdXRwdXRzICsgZXh0ZXJuYWxPdXRwdXRzLCB0b3RhbE91dHB1dHMsICdhbGwgb3V0cHV0cyBzaG91bGQgYmUgY2xhc3NpZmllZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYXZlIGV4cGVjdGVkIGV4cGxpY2l0IGFuZCBpbXBsaWNpdCBleHRlcm5hbCBzcGVuZCBhbW91bnRzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJpZ0ludChyZWZQYXJzZWRUcmFuc2FjdGlvbi5leHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQpLCBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQmlnSW50KHJlZlBhcnNlZFRyYW5zYWN0aW9uLmltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCksIGV4cGVjdGVkSW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVHJhbnNhY3Rpb24oXG4gIGJhY2tlbmQ6ICd1dHhvbGliJyB8ICd3YXNtJyxcbiAgZmlsdGVyOiAodGVzdDogdXR4b2xpYi50ZXN0dXRpbC5BY2lkVGVzdCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbikge1xuICBkZXNjcmliZShgcGFyc2VUcmFuc2FjdGlvbiAoJHtiYWNrZW5kfSlgLCBmdW5jdGlvbiAoKSB7XG4gICAgdXR4b2xpYi50ZXN0dXRpbC5BY2lkVGVzdC5zdWl0ZSgpXG4gICAgICAuZmlsdGVyKGZpbHRlcilcbiAgICAgIC5mb3JFYWNoKCh0ZXN0KSA9PiB7XG4gICAgICAgIC8vIERlZmF1bHQgY2FzZTogcHNidCBmb3JtYXQsIGluZmVyIHJlY2lwaWVudHMgZnJvbSBleHBsYW5hdGlvblxuICAgICAgICBkZXNjcmliZVBhcnNlVHJhbnNhY3Rpb25XaXRoKHRlc3QsICdkZWZhdWx0JywgYmFja2VuZCwge1xuICAgICAgICAgIHR4UGFyYW1zOiAnaW5mZXJGcm9tRXhwbGFuYXRpb24nLFxuICAgICAgICAgIGV4cGVjdGVkRXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiAxODAwbixcbiAgICAgICAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMG4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0ZXN0Lm5ldHdvcmsgIT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBleHRlbmRlZCB0ZXN0IHN1aXRlIGZvciBiaXRjb2luXG5cbiAgICAgICAgZGVzY3JpYmVQYXJzZVRyYW5zYWN0aW9uV2l0aCh0ZXN0LCAnbGVnYWN5JywgYmFja2VuZCwge1xuICAgICAgICAgIHR4Rm9ybWF0OiAnbGVnYWN5JyxcbiAgICAgICAgICB0eFBhcmFtczogJ2luZmVyRnJvbUV4cGxhbmF0aW9uJyxcbiAgICAgICAgICBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMTgwMG4sXG4gICAgICAgICAgZXhwZWN0ZWRJbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IDBuLFxuICAgICAgICB9KTtcblxuICAgICAgICBkZXNjcmliZVBhcnNlVHJhbnNhY3Rpb25XaXRoKHRlc3QsICdlbXB0eSByZWNpcGllbnRzJywgYmFja2VuZCwge1xuICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICByZWNpcGllbnRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4cGVjdGVkRXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiAwbixcbiAgICAgICAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMTgwMG4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlc2NyaWJlUGFyc2VUcmFuc2FjdGlvbldpdGgodGVzdCwgJ3JiZicsIGJhY2tlbmQsIHtcbiAgICAgICAgICB0eFBhcmFtczoge1xuICAgICAgICAgICAgcmJmVHhJZHM6IFsnUExBQ0VIT0xERVInXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4cGVjdGVkRXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiAxODAwbixcbiAgICAgICAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMG4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlc2NyaWJlUGFyc2VUcmFuc2FjdGlvbldpdGgodGVzdCwgJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzJywgYmFja2VuZCwge1xuICAgICAgICAgIHR4UGFyYW1zOiAnaW5mZXJGcm9tRXhwbGFuYXRpb24nLFxuICAgICAgICAgIGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzczogdHJ1ZSxcbiAgICAgICAgICBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMTgwMG4sXG4gICAgICAgICAgZXhwZWN0ZWRJbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IDBuLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9KTtcbn1cblxuZGVzY3JpYmVUcmFuc2FjdGlvbigndXR4b2xpYicpO1xuZGVzY3JpYmVUcmFuc2FjdGlvbignd2FzbScsICh0ZXN0KSA9PiBoYXNXYXNtVXR4b1N1cHBvcnQodGVzdC5uZXR3b3JrKSk7XG4iXX0=
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VQc2J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3BhcnNlUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUF3QztBQUV4Qyw2Q0FBK0I7QUFDL0IsOERBQWdEO0FBQ2hELG1EQUFrRztBQUNsRyxnREFBcUQ7QUFFckQsK0ZBQTRGO0FBRzVGLHFDQUF5QztBQUN6Qyx5RUFBd0c7QUFLeEcsaURBQTREO0FBRzVELGlDQUE0QztBQUU1QyxTQUFTLDBCQUEwQixDQUNqQyxXQUFtQyxFQUNuQyxFQUFFLDJCQUEyQixFQUE0QztJQUt6RSxpRkFBaUY7SUFDakYsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLElBQUksZUFBZSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUV0RyxJQUFJLGFBQWlDLENBQUM7SUFDdEMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1FBQ2hDLGdEQUFnRDtRQUNoRCxFQUFFO1FBQ0YsMEVBQTBFO1FBQzFFLHNEQUFzRDtRQUN0RCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsYUFBYSxH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O0FBQ0wsQ0FBQztBQUVELG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9CLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBa0IsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0ICogYXMgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBXYWxsZXQsIFZlcmlmaWNhdGlvbk9wdGlvbnMsIElUcmFuc2FjdGlvblJlY2lwaWVudCwgVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgcGFyc2VUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9wYXJzZVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFBhcnNlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3R5cGVzJztcbmltcG9ydCB7IFV0eG9XYWxsZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvd2FsbGV0JztcbmltcG9ydCB7IGdldFV0eG9Db2luIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgeyBleHBsYWluTGVnYWN5VHgsIGV4cGxhaW5Qc2J0LCBleHBsYWluUHNidFdhc20gfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQnO1xuaW1wb3J0IHR5cGUge1xuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBDaGFuZ2VBZGRyZXNzSW5mbyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBnZXRDaGFpbkZyb21OZXR3b3JrIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25hbWVzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUHJlYnVpbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYWJzdHJhY3RVdHhvQ29pbic7XG5cbmltcG9ydCB7IGhhc1dhc21VdHhvU3VwcG9ydCB9IGZyb20gJy4vdXRpbCc7XG5cbmZ1bmN0aW9uIGdldFR4UGFyYW1zRnJvbUV4cGxhbmF0aW9uKFxuICBleHBsYW5hdGlvbjogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgeyBleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3MgfTogeyBleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3M6IGJvb2xlYW4gfVxuKToge1xuICByZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgY2hhbmdlQWRkcmVzcz86IHN0cmluZztcbn0ge1xuICAvLyBUaGUgZXh0ZXJuYWwgb3V0cHV0cyBhcmUgdGhlIG9uZXMgdGhhdCBhcmUgaW4gb3V0cHV0cyBidXQgbm90IGluIGNoYW5nZU91dHB1dHNcbiAgY29uc3QgY2hhbmdlQWRkcmVzc2VzID0gbmV3IFNldChleHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzLm1hcCgobykgPT4gby5hZGRyZXNzKSk7XG4gIGxldCBleHRlcm5hbE91dHB1dHMgPSBleHBsYW5hdGlvbi5vdXRwdXRzLmZpbHRlcigobykgPT4gby5hZGRyZXNzICYmICFjaGFuZ2VBZGRyZXNzZXMuaGFzKG8uYWRkcmVzcykpO1xuXG4gIGxldCBjaGFuZ2VBZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmIChleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3MpIHtcbiAgICAvLyBjb252ZXJ0IGFuIGV4dGVybmFsIG91dHB1dCB0byBhIGNoYW5nZSBvdXRwdXRcbiAgICAvL1xuICAgIC8vIGluIGNvbWJpbmF0aW9uIHdpdGggYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MsIHRoaXMgYWxsb3dzIGFuIGV4dGVybmFsXG4gICAgLy8gb3V0cHV0IG9uIHRoZSB0cmFuc2FjdGlvbiB3aXRob3V0IGEgc2l6ZSBjb25zdHJhaW50XG4gICAgY29uc3QgZXh0ZXJuYWxPdXRwdXQgPSBleHRlcm5hbE91dHB1dHNbMF07XG4gICAgaWYgKCFleHRlcm5hbE91dHB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBleHRlcm5hbCBvdXRwdXQgZm91bmQnKTtcbiAgICB9XG4gICAgY2hhbmdlQWRkcmVzcyA9IGV4dGVybmFsT3V0cHV0LmFkZHJlc3M7XG4gICAgZXh0ZXJuYWxPdXRwdXRzID0gZXh0ZXJuYWxPdXRwdXRzLnNsaWNlKDEpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZWNpcGllbnRzOiBleHRlcm5hbE91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MhLFxuICAgICAgYW1vdW50OiBvdXRwdXQuYW1vdW50LFxuICAgIH0pKSxcbiAgICBjaGFuZ2VBZGRyZXNzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDaGFuZ2VJbmZvRnJvbVBzYnQocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCk6IENoYW5nZUFkZHJlc3NJbmZvW10gfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmZpbmRJbnRlcm5hbE91dHB1dEluZGljZXMocHNidCkubWFwKChpKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBwc2J0LmRhdGEub3V0cHV0c1tpXTtcbiAgICAgIGNvbnN0IGRlcml2YXRpb25zID0gb3V0cHV0LmJpcDMyRGVyaXZhdGlvbiA/PyBvdXRwdXQudGFwQmlwMzJEZXJpdmF0aW9uID8/IHVuZGVmaW5lZDtcbiAgICAgIGlmICghZGVyaXZhdGlvbnMgfHwgZGVyaXZhdGlvbnMubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgMyBkZXJpdmF0aW9uIHBhdGhzJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXRoID0gZGVyaXZhdGlvbnNbMF0ucGF0aDtcbiAgICAgIGNvbnN0IHsgY2hhaW4sIGluZGV4IH0gPSB1dHhvbGliLmJpdGdvLmdldENoYWluQW5kSW5kZXhGcm9tUGF0aChwYXRoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3M6IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHBzYnQudHhPdXRwdXRzW2ldLnNjcmlwdCwgcHNidC5uZXR3b3JrKSxcbiAgICAgICAgY2hhaW4sXG4gICAgICAgIGluZGV4LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlIGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5FcnJvck5vTXVsdGlTaWdJbnB1dEZvdW5kKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlUGFyc2VUcmFuc2FjdGlvbldpdGgoXG4gIGFjaWRUZXN0OiB1dHhvbGliLnRlc3R1dGlsLkFjaWRUZXN0LFxuICBsYWJlbDogc3RyaW5nLFxuICBiYWNrZW5kOiAndXR4b2xpYicgfCAnd2FzbScsXG4gIHtcbiAgICB0eFBhcmFtcyxcbiAgICBleHRlcm5hbEN1c3RvbUNoYW5nZUFkZHJlc3MgPSBmYWxzZSxcbiAgICBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCxcbiAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCxcbiAgICB0eEZvcm1hdCA9ICdwc2J0JyxcbiAgfToge1xuICAgIHR4UGFyYW1zOlxuICAgICAgfCB7XG4gICAgICAgICAgcmVjaXBpZW50czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIHJiZlR4SWRzOiBzdHJpbmdbXTtcbiAgICAgICAgfVxuICAgICAgfCAnaW5mZXJGcm9tRXhwbGFuYXRpb24nO1xuICAgIGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzcz86IGJvb2xlYW47XG4gICAgZXhwZWN0ZWRFeHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IGJpZ2ludDtcbiAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogYmlnaW50O1xuICAgIHR4Rm9ybWF0PzogJ3BzYnQnIHwgJ2xlZ2FjeSc7XG4gIH1cbikge1xuICBkZXNjcmliZShgJHthY2lkVGVzdC5uYW1lfS8ke2xhYmVsfWAsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgcmVmUGFyc2VkVHJhbnNhY3Rpb246IFBhcnNlZFRyYW5zYWN0aW9uPGJpZ2ludD47XG4gICAgbGV0IGNvaW46IFJldHVyblR5cGU8dHlwZW9mIGdldFV0eG9Db2luPjtcbiAgICBsZXQgbW9ja1dhbGxldDogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8V2FsbGV0PjtcbiAgICBsZXQgc3R1YkV4cGxhaW5UcmFuc2FjdGlvbjogc2lub24uU2lub25TdHViO1xuXG4gICAgYmVmb3JlKCdwcmVwYXJlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29pbk5hbWUgPSBnZXRDaGFpbkZyb21OZXR3b3JrKGFjaWRUZXN0Lm5ldHdvcmspO1xuICAgICAgY29pbiA9IGdldFV0eG9Db2luKGNvaW5OYW1lKTtcblxuICAgICAgLy8gQ3JlYXRlIFBTQlQgYW5kIGV4cGxhbmF0aW9uXG4gICAgICBjb25zdCBwc2J0ID0gYWNpZFRlc3QuY3JlYXRlUHNidCgpO1xuICAgICAgY29uc3QgdHggPSBwc2J0LmdldFVuc2lnbmVkVHgoKTtcbiAgICAgIGNvbnN0IHR4SGFzaCA9IHR4LmdldElkKCk7XG5cbiAgICAgIGxldCBleHBsYW5hdGlvbjogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjtcbiAgICAgIGlmICh0eEZvcm1hdCA9PT0gJ3BzYnQnKSB7XG4gICAgICAgIGlmIChiYWNrZW5kID09PSAndXR4b2xpYicpIHtcbiAgICAgICAgICBleHBsYW5hdGlvbiA9IGV4cGxhaW5Qc2J0KHBzYnQsIHsgcHViczogYWNpZFRlc3Qucm9vdFdhbGxldEtleXMgfSwgYWNpZFRlc3QubmV0d29yaywge1xuICAgICAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGJhY2tlbmQgPT09ICd3YXNtJykge1xuICAgICAgICAgIGNvbnN0IHdhc21Qc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmZyb21CeXRlcyhcbiAgICAgICAgICAgIHBzYnQudG9CdWZmZXIoKSxcbiAgICAgICAgICAgIHV0eG9saWIuZ2V0TmV0d29ya05hbWUoYWNpZFRlc3QubmV0d29yaykhXG4gICAgICAgICAgKTtcbiAgICAgICAgICBleHBsYW5hdGlvbiA9IGV4cGxhaW5Qc2J0V2FzbShcbiAgICAgICAgICAgIHdhc21Qc2J0LFxuICAgICAgICAgICAgYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpIGFzIFRyaXBsZTxzdHJpbmc+LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgcHVibGljS2V5czogW2FjaWRUZXN0LmdldFJlcGxheVByb3RlY3Rpb25QdWJsaWNLZXkoKV0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmFja2VuZDogJHtiYWNrZW5kfWApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR4Rm9ybWF0ID09PSAnbGVnYWN5Jykge1xuICAgICAgICBjb25zdCBwdWJzID0gYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICAgICAgICAvLyBFeHRyYWN0IGNoYW5nZSBpbmZvIGZyb20gUFNCVCB0byBwYXNzIHRvIGV4cGxhaW5MZWdhY3lUeFxuICAgICAgICBjb25zdCBjaGFuZ2VJbmZvID0gZ2V0Q2hhbmdlSW5mb0Zyb21Qc2J0KHBzYnQpO1xuICAgICAgICBleHBsYW5hdGlvbiA9IGV4cGxhaW5MZWdhY3lUeCh0eCwgeyBwdWJzLCBjaGFuZ2VJbmZvIH0sIGFjaWRUZXN0Lm5ldHdvcmspO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR4Rm9ybWF0OiAke3R4Rm9ybWF0fWApO1xuICAgICAgfVxuXG4gICAgICAvLyBEZXRlcm1pbmUgdHhQYXJhbXNcbiAgICAgIGxldCByZXNvbHZlZFR4UGFyYW1zO1xuICAgICAgaWYgKHR4UGFyYW1zID09PSAnaW5mZXJGcm9tRXhwbGFuYXRpb24nIHx8IHR4UGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzb2x2ZWRUeFBhcmFtcyA9IGdldFR4UGFyYW1zRnJvbUV4cGxhbmF0aW9uKGV4cGxhbmF0aW9uLCB7IGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzcyB9KTtcbiAgICAgIH0gZWxzZSBpZiAoJ3JiZlR4SWRzJyBpbiB0eFBhcmFtcykge1xuICAgICAgICAvLyBSZXBsYWNlIHBsYWNlaG9sZGVyIHR4SGFzaCB3aXRoIGFjdHVhbCBjb21wdXRlZCB0eEhhc2hcbiAgICAgICAgcmVzb2x2ZWRUeFBhcmFtcyA9IHtcbiAgICAgICAgICByYmZUeElkczogdHhQYXJhbXMucmJmVHhJZHMubWFwKChoYXNoKSA9PiAoaGFzaCA9PT0gJ1BMQUNFSE9MREVSJyA/IHR4SGFzaCA6IGhhc2gpKSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmVkVHhQYXJhbXMgPSB0eFBhcmFtcztcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzcykge1xuICAgICAgICByZXNvbHZlZFR4UGFyYW1zLmFsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ3JlYXRlIG1vY2sgd2FsbGV0XG4gICAgICBtb2NrV2FsbGV0ID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKFdhbGxldCk7XG4gICAgICBtb2NrV2FsbGV0LmlkLnJldHVybnMoJ3Rlc3Qtd2FsbGV0LWlkJyk7XG4gICAgICBtb2NrV2FsbGV0LmNvaW4ucmV0dXJucyhjb2luLmdldENoYWluKCkpO1xuICAgICAgbW9ja1dhbGxldC5jb2luU3BlY2lmaWMucmV0dXJucyh1bmRlZmluZWQpO1xuXG4gICAgICAvLyBNb2NrIGdldFRyYW5zYWN0aW9uIGZvciBSQkYgY2FzZVxuICAgICAgaWYgKCdyYmZUeElkcycgaW4gcmVzb2x2ZWRUeFBhcmFtcykge1xuICAgICAgICBjb25zdCByYmZUeFBhcmFtcyA9IGdldFR4UGFyYW1zRnJvbUV4cGxhbmF0aW9uKGV4cGxhbmF0aW9uLCB7IGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzczogZmFsc2UgfSk7XG4gICAgICAgIG1vY2tXYWxsZXQuZ2V0VHJhbnNhY3Rpb24ucmVzb2x2ZXMoe1xuICAgICAgICAgIG91dHB1dHM6IHJiZlR4UGFyYW1zLnJlY2lwaWVudHMubWFwKChyKSA9PiAoe1xuICAgICAgICAgICAgdmFsdWVTdHJpbmc6IHR5cGVvZiByLmFtb3VudCA9PT0gJ3N0cmluZycgPyByLmFtb3VudCA6IHIuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgICBhZGRyZXNzOiByLmFkZHJlc3MsXG4gICAgICAgICAgICAvLyB3YWxsZXQgZmllbGQgaXMgdW5kZWZpbmVkIGZvciBleHRlcm5hbCBvdXRwdXRzIChub3Qgc2VsZi1zZW5kcylcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBNb2NrIHZlcmlmaWNhdGlvbiBvcHRpb25zIHdpdGgga2V5Y2hhaW5zIHRvIGRpc2FibGUgbmV0d29ya2luZ1xuICAgICAgLy8gVXNlIHRoZSBzYW1lIGtleWNoYWlucyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhlIFBTQlRcbiAgICAgIGNvbnN0IHB1YnMgPSBhY2lkVGVzdC5yb290V2FsbGV0S2V5cy50cmlwbGUubWFwKChrKSA9PiBrLm5ldXRlcmVkKCkudG9CYXNlNTgoKSk7XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb246IFZlcmlmaWNhdGlvbk9wdGlvbnMgPSB7XG4gICAgICAgIGRpc2FibGVOZXR3b3JraW5nOiB0cnVlLFxuICAgICAgICBrZXljaGFpbnM6IHtcbiAgICAgICAgICB1c2VyOiB7IGlkOiAnMCcsIHB1YjogcHVic1swXSwgdHlwZTogJ2luZGVwZW5kZW50JyB9LFxuICAgICAgICAgIGJhY2t1cDogeyBpZDogJzEnLCBwdWI6IHB1YnNbMV0sIHR5cGU6ICdpbmRlcGVuZGVudCcgfSxcbiAgICAgICAgICBiaXRnbzogeyBpZDogJzInLCBwdWI6IHB1YnNbMl0sIHR5cGU6ICdpbmRlcGVuZGVudCcgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIC8vIFN0dWIgZXhwbGFpblRyYW5zYWN0aW9uIHRvIHJldHVybiB0aGUgZXhwbGFuYXRpb24gd2l0aG91dCBtYWtpbmcgbmV0d29yayBjYWxsc1xuICAgICAgc3R1YkV4cGxhaW5UcmFuc2FjdGlvbiA9IHNpbm9uLnN0dWIoY29pbiwgJ2V4cGxhaW5UcmFuc2FjdGlvbicpLnJlc29sdmVzKGV4cGxhbmF0aW9uKTtcblxuICAgICAgbGV0IHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ8YmlnaW50PjtcbiAgICAgIGlmICh0eEZvcm1hdCA9PT0gJ3BzYnQnKSB7XG4gICAgICAgIHR4UHJlYnVpbGQgPSB7XG4gICAgICAgICAgdHhIZXg6IHBzYnQudG9IZXgoKSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAodHhGb3JtYXQgPT09ICdsZWdhY3knKSB7XG4gICAgICAgIHR4UHJlYnVpbGQgPSB7XG4gICAgICAgICAgdHhIZXg6IHBzYnQuZ2V0VW5zaWduZWRUeCgpLnRvSGV4KCksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHhGb3JtYXQ6ICR7dHhGb3JtYXR9YCk7XG4gICAgICB9XG5cbiAgICAgIHJlZlBhcnNlZFRyYW5zYWN0aW9uID0gYXdhaXQgcGFyc2VUcmFuc2FjdGlvbihjb2luLCB7XG4gICAgICAgIHdhbGxldDogbW9ja1dhbGxldCBhcyB1bmtub3duIGFzIFV0eG9XYWxsZXQsXG4gICAgICAgIHR4UGFyYW1zOiByZXNvbHZlZFR4UGFyYW1zLFxuICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGFmdGVyKCdjbGVhbnVwJywgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHN0dWJFeHBsYWluVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgc3R1YkV4cGxhaW5UcmFuc2FjdGlvbi5yZXN0b3JlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBhcnNlIHRyYW5zYWN0aW9uIHdpdGhvdXQgbmV0d29yayBjYWxscycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydC5vayhyZWZQYXJzZWRUcmFuc2FjdGlvbik7XG4gICAgICBhc3NlcnQub2socmVmUGFyc2VkVHJhbnNhY3Rpb24ua2V5Y2hhaW5zKTtcbiAgICAgIGFzc2VydC5vayhyZWZQYXJzZWRUcmFuc2FjdGlvbi5vdXRwdXRzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGF2ZSB2YWxpZCBrZXljaGFpbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhc3NlcnQub2socmVmUGFyc2VkVHJhbnNhY3Rpb24ua2V5Y2hhaW5zLnVzZXIpO1xuICAgICAgYXNzZXJ0Lm9rKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy5iYWNrdXApO1xuICAgICAgYXNzZXJ0Lm9rKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy5iaXRnbyk7XG4gICAgICBjb25zdCBwdWJzID0gYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy51c2VyLnB1YiwgcHVic1swXSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVmUGFyc2VkVHJhbnNhY3Rpb24ua2V5Y2hhaW5zLmJhY2t1cC5wdWIsIHB1YnNbMV0pO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlZlBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucy5iaXRnby5wdWIsIHB1YnNbMl0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYXZlIG91dHB1dHMgY2xhc3NpZmllZCBhcyBpbnRlcm5hbCBvciBleHRlcm5hbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFNpbmNlIHdlIGRpZG4ndCBzcGVjaWZ5IGFueSByZWNpcGllbnRzLCBvdXRwdXRzIHdpbGwgYmUgY2xhc3NpZmllZCBiYXNlZCBvbiB3aGV0aGVyIHRoZXkgY2FuIGJlXG4gICAgICAvLyB2ZXJpZmllZCBhcyB3YWxsZXQgYWRkcmVzc2VzLiBTb21lIG1heSBiZSBleHRlcm5hbCBpZiBhZGRyZXNzIHZlcmlmaWNhdGlvbiBmYWlscyB3aXRob3V0IGEgcHJvcGVyIHdhbGxldCBzZXR1cC5cbiAgICAgIGNvbnN0IHRvdGFsT3V0cHV0cyA9IHJlZlBhcnNlZFRyYW5zYWN0aW9uLm91dHB1dHMubGVuZ3RoO1xuICAgICAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IHJlZlBhcnNlZFRyYW5zYWN0aW9uLmNoYW5nZU91dHB1dHMubGVuZ3RoO1xuICAgICAgY29uc3QgZXh0ZXJuYWxPdXRwdXRzID0gcmVmUGFyc2VkVHJhbnNhY3Rpb24ub3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uZXh0ZXJuYWwgPT09IHRydWUpLmxlbmd0aDtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChleHRlcm5hbE91dHB1dHMsIDMpO1xuXG4gICAgICBhc3NlcnQub2sodG90YWxPdXRwdXRzID4gMCwgJ3Nob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBvdXRwdXQnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaGFuZ2VPdXRwdXRzICsgZXh0ZXJuYWxPdXRwdXRzLCB0b3RhbE91dHB1dHMsICdhbGwgb3V0cHV0cyBzaG91bGQgYmUgY2xhc3NpZmllZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYXZlIGV4cGVjdGVkIGV4cGxpY2l0IGFuZCBpbXBsaWNpdCBleHRlcm5hbCBzcGVuZCBhbW91bnRzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKEJpZ0ludChyZWZQYXJzZWRUcmFuc2FjdGlvbi5leHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQpLCBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoQmlnSW50KHJlZlBhcnNlZFRyYW5zYWN0aW9uLmltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCksIGV4cGVjdGVkSW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVHJhbnNhY3Rpb24oXG4gIGJhY2tlbmQ6ICd1dHhvbGliJyB8ICd3YXNtJyxcbiAgZmlsdGVyOiAodGVzdDogdXR4b2xpYi50ZXN0dXRpbC5BY2lkVGVzdCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbikge1xuICBkZXNjcmliZShgcGFyc2VUcmFuc2FjdGlvbiAoJHtiYWNrZW5kfSlgLCBmdW5jdGlvbiAoKSB7XG4gICAgdXR4b2xpYi50ZXN0dXRpbC5BY2lkVGVzdC5zdWl0ZSgpXG4gICAgICAuZmlsdGVyKGZpbHRlcilcbiAgICAgIC5mb3JFYWNoKCh0ZXN0KSA9PiB7XG4gICAgICAgIC8vIERlZmF1bHQgY2FzZTogcHNidCBmb3JtYXQsIGluZmVyIHJlY2lwaWVudHMgZnJvbSBleHBsYW5hdGlvblxuICAgICAgICBkZXNjcmliZVBhcnNlVHJhbnNhY3Rpb25XaXRoKHRlc3QsICdkZWZhdWx0JywgYmFja2VuZCwge1xuICAgICAgICAgIHR4UGFyYW1zOiAnaW5mZXJGcm9tRXhwbGFuYXRpb24nLFxuICAgICAgICAgIGV4cGVjdGVkRXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiAxODAwbixcbiAgICAgICAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMG4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0ZXN0Lm5ldHdvcmsgIT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBleHRlbmRlZCB0ZXN0IHN1aXRlIGZvciBiaXRjb2luXG5cbiAgICAgICAgZGVzY3JpYmVQYXJzZVRyYW5zYWN0aW9uV2l0aCh0ZXN0LCAnbGVnYWN5JywgYmFja2VuZCwge1xuICAgICAgICAgIHR4Rm9ybWF0OiAnbGVnYWN5JyxcbiAgICAgICAgICB0eFBhcmFtczogJ2luZmVyRnJvbUV4cGxhbmF0aW9uJyxcbiAgICAgICAgICBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMTgwMG4sXG4gICAgICAgICAgZXhwZWN0ZWRJbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IDBuLFxuICAgICAgICB9KTtcblxuICAgICAgICBkZXNjcmliZVBhcnNlVHJhbnNhY3Rpb25XaXRoKHRlc3QsICdlbXB0eSByZWNpcGllbnRzJywgYmFja2VuZCwge1xuICAgICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgICByZWNpcGllbnRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4cGVjdGVkRXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiAwbixcbiAgICAgICAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMTgwMG4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlc2NyaWJlUGFyc2VUcmFuc2FjdGlvbldpdGgodGVzdCwgJ3JiZicsIGJhY2tlbmQsIHtcbiAgICAgICAgICB0eFBhcmFtczoge1xuICAgICAgICAgICAgcmJmVHhJZHM6IFsnUExBQ0VIT0xERVInXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4cGVjdGVkRXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiAxODAwbixcbiAgICAgICAgICBleHBlY3RlZEltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMG4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlc2NyaWJlUGFyc2VUcmFuc2FjdGlvbldpdGgodGVzdCwgJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzJywgYmFja2VuZCwge1xuICAgICAgICAgIHR4UGFyYW1zOiAnaW5mZXJGcm9tRXhwbGFuYXRpb24nLFxuICAgICAgICAgIGV4dGVybmFsQ3VzdG9tQ2hhbmdlQWRkcmVzczogdHJ1ZSxcbiAgICAgICAgICBleHBlY3RlZEV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogMTgwMG4sXG4gICAgICAgICAgZXhwZWN0ZWRJbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IDBuLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9KTtcbn1cblxuZGVzY3JpYmVUcmFuc2FjdGlvbigndXR4b2xpYicpO1xuZGVzY3JpYmVUcmFuc2FjdGlvbignd2FzbScsICh0ZXN0KSA9PiBoYXNXYXNtVXR4b1N1cHBvcnQodGVzdC5uZXR3b3JrKSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayProtection.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/transaction/fixedScript/replayProtection.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
40
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
41
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
42
|
+
const replayProtection_1 = require("../../../../src/transaction/fixedScript/replayProtection");
|
|
43
|
+
function createReplayProtectionOutputScript(pubkey) {
|
|
44
|
+
const descriptor = wasm_utxo_1.Descriptor.fromString(`sh(pk(${pubkey.toString('hex')}))`, 'definite');
|
|
45
|
+
return Buffer.from(descriptor.scriptPubkey());
|
|
46
|
+
}
|
|
47
|
+
describe('replayProtection', function () {
|
|
48
|
+
it('should have scriptPubKeys that match descriptor computation', function () {
|
|
49
|
+
for (const pubkey of [replayProtection_1.pubkeyProd, replayProtection_1.pubkeyTestnet]) {
|
|
50
|
+
const network = pubkey === replayProtection_1.pubkeyProd ? utxolib.networks.bitcoincash : utxolib.networks.bitcoincashTestnet;
|
|
51
|
+
const expectedScript = createReplayProtectionOutputScript(pubkey);
|
|
52
|
+
const actualAddresses = (0, replayProtection_1.getReplayProtectionAddresses)(network);
|
|
53
|
+
strict_1.default.equal(actualAddresses.length, 1);
|
|
54
|
+
const actualScript = Buffer.from(wasm_utxo_1.utxolibCompat.toOutputScript(actualAddresses[0], network));
|
|
55
|
+
strict_1.default.deepStrictEqual(actualScript, expectedScript);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGF5UHJvdGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9yZXBsYXlQcm90ZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQXdDO0FBRXhDLDhEQUFnRDtBQUNoRCxnREFBNkQ7QUFFN0QsK0ZBSWtFO0FBRWxFLFNBQVMsa0NBQWtDLENBQUMsTUFBYztJQUN4RCxNQUFNLFVBQVUsR0FBRyxzQkFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMxRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtJQUMzQixFQUFFLENBQUMsNkRBQTZELEVBQUU7UUFDaEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxDQUFDLDZCQUFVLEVBQUUsZ0NBQWEsQ0FBQyxFQUFFLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLDZCQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1lBQzNHLE1BQU0sY0FBYyxHQUFHLGtDQUFrQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sZUFBZSxHQUFHLElBQUEsK0NBQTRCLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUFhLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVGLGdCQUFNLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yLCB1dHhvbGliQ29tcGF0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7XG4gIGdldFJlcGxheVByb3RlY3Rpb25BZGRyZXNzZXMsXG4gIHB1YmtleVByb2QsXG4gIHB1YmtleVRlc3RuZXQsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9yZXBsYXlQcm90ZWN0aW9uJztcblxuZnVuY3Rpb24gY3JlYXRlUmVwbGF5UHJvdGVjdGlvbk91dHB1dFNjcmlwdChwdWJrZXk6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIGNvbnN0IGRlc2NyaXB0b3IgPSBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYHNoKHBrKCR7cHVia2V5LnRvU3RyaW5nKCdoZXgnKX0pKWAsICdkZWZpbml0ZScpO1xuICByZXR1cm4gQnVmZmVyLmZyb20oZGVzY3JpcHRvci5zY3JpcHRQdWJrZXkoKSk7XG59XG5cbmRlc2NyaWJlKCdyZXBsYXlQcm90ZWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICBpdCgnc2hvdWxkIGhhdmUgc2NyaXB0UHViS2V5cyB0aGF0IG1hdGNoIGRlc2NyaXB0b3IgY29tcHV0YXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgZm9yIChjb25zdCBwdWJrZXkgb2YgW3B1YmtleVByb2QsIHB1YmtleVRlc3RuZXRdKSB7XG4gICAgICBjb25zdCBuZXR3b3JrID0gcHVia2V5ID09PSBwdWJrZXlQcm9kID8gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luY2FzaCA6IHV0eG9saWIubmV0d29ya3MuYml0Y29pbmNhc2hUZXN0bmV0O1xuICAgICAgY29uc3QgZXhwZWN0ZWRTY3JpcHQgPSBjcmVhdGVSZXBsYXlQcm90ZWN0aW9uT3V0cHV0U2NyaXB0KHB1YmtleSk7XG4gICAgICBjb25zdCBhY3R1YWxBZGRyZXNzZXMgPSBnZXRSZXBsYXlQcm90ZWN0aW9uQWRkcmVzc2VzKG5ldHdvcmspO1xuICAgICAgYXNzZXJ0LmVxdWFsKGFjdHVhbEFkZHJlc3Nlcy5sZW5ndGgsIDEpO1xuICAgICAgY29uc3QgYWN0dWFsU2NyaXB0ID0gQnVmZmVyLmZyb20odXR4b2xpYkNvbXBhdC50b091dHB1dFNjcmlwdChhY3R1YWxBZGRyZXNzZXNbMF0sIG5ldHdvcmspKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYWN0dWFsU2NyaXB0LCBleHBlY3RlZFNjcmlwdCk7XG4gICAgfVxuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signPsbt.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/transaction/fixedScript/signPsbt.ts"],"names":[],"mappings":""}
|