Comparing version 1.3.19 to 1.4.0
{ | ||
"name": "slopes", | ||
"version": "1.3.19", | ||
"version": "1.4.0", | ||
"description": "AVA Platform JS Library", | ||
@@ -31,5 +31,5 @@ "main": "typings/src/index.js", | ||
"@types/create-hash": "^1.2.2", | ||
"@types/jest": "^24.0.25", | ||
"@types/jest": "^24.9.1", | ||
"@types/libsodium-wrappers": "^0.7.7", | ||
"@types/node": "^12.12.24", | ||
"@types/node": "^12.12.34", | ||
"clean-webpack-plugin": "^3.0.0", | ||
@@ -41,12 +41,12 @@ "expose-loader": "^0.7.5", | ||
"jest-mock-axios": "^3.2.0", | ||
"terser-webpack-plugin": "^2.3.1", | ||
"terser-webpack-plugin": "^2.3.5", | ||
"ts-jest": "^24.2.0", | ||
"ts-loader": "^6.2.1", | ||
"ts-loader": "^6.2.2", | ||
"typedoc": "^0.15.6", | ||
"typedoc-plugin-external-module-name": "^2.2.1", | ||
"typedoc-plugin-markdown": "^2.2.14", | ||
"typescript": "^3.7.4", | ||
"webpack": "^4.41.5", | ||
"webpack-cli": "^3.3.10", | ||
"webpack-dev-server": "^3.10.1" | ||
"typedoc-plugin-markdown": "^2.2.17", | ||
"typescript": "^3.8.3", | ||
"webpack": "^4.42.1", | ||
"webpack-cli": "^3.3.11", | ||
"webpack-dev-server": "^3.10.3" | ||
}, | ||
@@ -58,5 +58,5 @@ "engines": { | ||
"dependencies": { | ||
"axios": "^0.19.1", | ||
"axios": "^0.19.2", | ||
"bn.js": "^4.11.8", | ||
"buffer": "^5.4.3", | ||
"buffer": "^5.5.0", | ||
"create-hash": "^1.2.0", | ||
@@ -66,4 +66,4 @@ "elliptic": "^6.5.2", | ||
"secp256k1": "^4.0.0", | ||
"store2": "^2.10.0" | ||
"store2": "^2.11.0" | ||
} | ||
} |
@@ -29,3 +29,3 @@ # Slopes - The AVA Platform JavaScript Library | ||
The entirety of the Slopes documentation can be found on our [XXX Fix Link XXX Slopes documentation page](https://avalabs.org/docs/slopes). | ||
The entirety of the Slopes documentation can be found on our [Slopes documentation page](https://docs.ava.network/v1.0/en/tools/slopes/). | ||
@@ -355,2 +355,2 @@ | ||
} | ||
``` | ||
``` |
@@ -183,7 +183,7 @@ /** | ||
export class AVMConstants { | ||
static SECPOUTPUTID:number = 4; | ||
static SECPINPUTID:number = 6; | ||
static SECPOUTPUTID:number = 7; | ||
static SECPINPUTID:number = 5; | ||
static CREATEASSETTX:number = 1; | ||
static BASETX:number = 0; | ||
static SECPCREDENTIAL:number = 7; | ||
static SECPCREDENTIAL:number = 9; | ||
static ASSETIDLEN:number = 32; | ||
@@ -190,0 +190,0 @@ static BLOCKCHAINIDLEN:number = 32; |
@@ -473,3 +473,3 @@ /** | ||
let n2_avm:object = { | ||
"blockchainID": "m383Jyn4z9kYmyMamjHwoExocRRV7ondsci862bbv1FSrqvH9", | ||
"blockchainID": "4ktRjsAKxgMr2aEzv9SWmrU7Xk5FniHUrVCX4P1TZSfTLZWFM", | ||
"alias": "X", | ||
@@ -480,3 +480,3 @@ "vm": "avm" | ||
let n2_platform:object = { | ||
"blockchainID": "", | ||
"blockchainID": "11111111111111111111111111111111LpoYY", | ||
"alias": "P", | ||
@@ -487,3 +487,3 @@ "vm": "platform" | ||
let n2_contracts:object = { | ||
"blockchainID": "", | ||
"blockchainID": "2mUYSXfLrDtigwbzj1LxKVsHwELghc5sisoXrzJwLqAAQHF4i", | ||
"alias": "C", | ||
@@ -494,7 +494,7 @@ "vm": "contracts" | ||
let n12345_avm:object = Object.assign({}, n2_avm); | ||
n12345_avm["blockchainID"] = "i8KtK2KwLi1o7WaVBbEKpRLPtAEYayfoptqAFYxfQgrus1g6m"; | ||
n12345_avm["blockchainID"] = "4R5p2RXDGLqaifZE4hHWH9owe34pfoBULn1DrQTWivjg8o4aH"; | ||
let n12345_platform = Object.assign({}, n2_platform); | ||
n12345_platform["blockchainID"] = "11111111111111111111111111111111LpoYY"; | ||
let n12345_contracts = Object.assign({}, n2_contracts); | ||
n12345_platform["blockchainID"] = "MTHoZAP3gGHB4cAUpFB1CuYnh3uDoMkte6FjLb9Sn5Hx8Bkvb"; | ||
n12345_platform["blockchainID"] = "tZGm6RCkeGpVETUTp11DW3UYFZmm69zfqxchpHrSF7wgy8rmw"; | ||
@@ -504,20 +504,17 @@ export class Defaults { | ||
"1": {}, //update before mainnet | ||
/* | ||
This will be set on test network. | ||
"2": { | ||
"avm": n2_avm, | ||
"X": n2_avm, | ||
"m383Jyn4z9kYmyMamjHwoExocRRV7ondsci862bbv1FSrqvH9": n2_avm, | ||
"4ktRjsAKxgMr2aEzv9SWmrU7Xk5FniHUrVCX4P1TZSfTLZWFM": n2_avm, | ||
"platform": n2_platform, | ||
"P": n2_platform, | ||
"BCID1": n2_platform, | ||
"11111111111111111111111111111111LpoYY": n2_platform, | ||
"contracts": n2_contracts, | ||
"C": n2_contracts, | ||
"BCID2": n2_contracts | ||
} | ||
*/ | ||
"2mUYSXfLrDtigwbzj1LxKVsHwELghc5sisoXrzJwLqAAQHF4i": n2_contracts | ||
}, | ||
"12345": { | ||
"avm": n12345_avm, | ||
"X": n12345_avm, | ||
"i8KtK2KwLi1o7WaVBbEKpRLPtAEYayfoptqAFYxfQgrus1g6m": n12345_avm, | ||
"4R5p2RXDGLqaifZE4hHWH9owe34pfoBULn1DrQTWivjg8o4aH": n12345_avm, | ||
"platform": n12345_platform, | ||
@@ -528,5 +525,5 @@ "P": n12345_platform, | ||
"C": n12345_contracts, | ||
"MTHoZAP3gGHB4cAUpFB1CuYnh3uDoMkte6FjLb9Sn5Hx8Bkvb": n12345_contracts | ||
"tZGm6RCkeGpVETUTp11DW3UYFZmm69zfqxchpHrSF7wgy8rmw": n12345_contracts | ||
} | ||
}; | ||
} |
@@ -23,3 +23,3 @@ import mockAxios from 'jest-mock-axios'; | ||
const networkid:number = 12345; | ||
const blockchainid:string = "i8KtK2KwLi1o7WaVBbEKpRLPtAEYayfoptqAFYxfQgrus1g6m"; | ||
const blockchainid:string = "4R5p2RXDGLqaifZE4hHWH9owe34pfoBULn1DrQTWivjg8o4aH"; | ||
const ip:string = '127.0.0.1'; | ||
@@ -362,5 +362,5 @@ const port:number = 9650; | ||
//Payment | ||
let OPUTXOstr1:string = "8snom9a21FvVHqyasGGAZKSDjQXJg7CvTvA53is6uyhBxvGbc5WVACRoyscZZ1TGpqiGHTbmMBfMq6qE8fqTBFQTsMGJhQw68T1A9WBcazbMvGv6s6DtKV66sKPXLemTK6miMYWvjcvRCH6rihj7vpDa3Ffp2Jq2QZtJ"; | ||
let OPUTXOstr2:string = "U9rFgK5jjdXmV8k5tpqeXkimzrN3o9eCCcXesyhMBBZu9MQJCDTDo5Wn5psKvzJVMJpiMbdkfDXkp7sKZddfCZdxpuDmyNy7VFka19zMW4jcz6DRQvNfA2kvJYKk96zc7uizgp3i2FYWrB8mr1sPJ8oP9Th64GQ5yHd8"; | ||
let OPUTXOstr3:string = "adUbkxszkX9FbvnyKu6UA4g7XhAmPVj6PgPhLS6dTtUfCCr7oDEEXNYqWD2q5MuKPGgEhX16V451kAEUyYhiFMPYCjsAiCM1oWKnLmeA9joFr9jDYD5AoLAsVEyM13FZPf8vuKmF6JTZdCbMCgzHYrMjnb9i3iDPN4Qg"; | ||
let OPUTXOstr1:string = bintools.avaSerialize(Buffer.from("38d1b9f1138672da6fb6c35125539276a9acc2a668d63bea6ba3c795e2edb0f5000000013e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd3558000000070000000000004dd500000000000000000000000100000001a36fd0c2dbcab311731dde7ef1514bd26fcdc74d", "hex")); | ||
let OPUTXOstr2:string = bintools.avaSerialize(Buffer.from("c3e4823571587fe2bdfc502689f5a8238b9d0ea7f3277124d16af9de0d2d9911000000003e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd355800000007000000000000001900000000000000000000000100000001e1b6b6a4bad94d2e3f20730379b9bcd6f176318e", "hex")); | ||
let OPUTXOstr3:string = bintools.avaSerialize(Buffer.from("f29dba61fda8d57a911e7f8810f935bde810d3f8d495404685bdb8d9d8545e86000000003e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd355800000007000000000000001900000000000000000000000100000001e1b6b6a4bad94d2e3f20730379b9bcd6f176318e", "hex")); | ||
@@ -367,0 +367,0 @@ let set:UTXOSet = new UTXOSet(); |
@@ -46,3 +46,3 @@ import BN from "bn.js"; | ||
let out:SecpOutput = new SecpOutput(assetIDBuff, new BN(10000), addrs, locktime, 3); | ||
expect(out.getOutputID()).toBe(4); | ||
expect(out.getOutputID()).toBe(7); | ||
expect(JSON.stringify(out.getAddresses().sort())).toStrictEqual(JSON.stringify(addrs.sort())); | ||
@@ -49,0 +49,0 @@ |
@@ -10,4 +10,4 @@ import BN from "bn.js"; | ||
describe('SecpUTXO', () => { | ||
let utxohex:string = "38d1b9f1138672da6fb6c35125539276a9acc2a668d63bea6ba3c795e2edb0f5000000013e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd3558000000040000000000004dd500000000000000000000000100000001a36fd0c2dbcab311731dde7ef1514bd26fcdc74d"; | ||
let outputhex:string = "3e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd3558000000040000000000004dd500000000000000000000000100000001a36fd0c2dbcab311731dde7ef1514bd26fcdc74d" | ||
let utxohex:string = "38d1b9f1138672da6fb6c35125539276a9acc2a668d63bea6ba3c795e2edb0f5000000013e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd3558000000070000000000004dd500000000000000000000000100000001a36fd0c2dbcab311731dde7ef1514bd26fcdc74d"; | ||
let outputhex:string = "3e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd3558000000070000000000004dd500000000000000000000000100000001a36fd0c2dbcab311731dde7ef1514bd26fcdc74d" | ||
let outputidx:string = "00000001"; | ||
@@ -24,3 +24,4 @@ let outtxid:string = "38d1b9f1138672da6fb6c35125539276a9acc2a668d63bea6ba3c795e2edb0f5"; | ||
//Payment | ||
let OPUTXOstr:string = "U9rFgK5jjdXmV8k5tpqeXkimzrN3o9eCCcXesyhMBBZu9MQJCDTDo5Wn5psKvzJVMJpiMbdkfDXkp7sKZddfCZdxpuDmyNy7VFka19zMW4jcz6DRQvNfA2kvJYKk96zc7uizgp3i2FYWrB8mr1sPJ8oP9Th64GQ5yHd8"; | ||
let OPUTXOstr:string = bintools.avaSerialize(utxobuff); | ||
//"U9rFgK5jjdXmV8k5tpqeXkimzrN3o9eCCcXesyhMBBZu9MQJCDTDo5Wn5psKvzJVMJpiMbdkfDXkp7sKZddfCZdxpuDmyNy7VFka19zMW4jcz6DRQvNfA2kvJYKk96zc7uizgp3i2FYWrB8mr1sPJ8oP9Th64GQ5yHd8"; | ||
@@ -45,3 +46,3 @@ //implies fromString and fromBuffer | ||
op.fromString(OPUTXOstr); | ||
expect(op.getOuputID()).toBe(4); | ||
expect(op.getOuputID()).toBe(7); | ||
}); | ||
@@ -136,5 +137,5 @@ | ||
let utxostrs:Array<string> = [ | ||
"8snom9a21FvVHqyasGGAZKSDjQXJg7CvTvA53is6uyhBxvGbc5WVACRoyscZZ1TGpqiGHTbmMBfMq6qE8fqTBFQTsMGJhQw68T1A9WBcazbMvGv6s6DtKV66sKPXLemTK6miMYWvjcvRCH6rihj7vpDa3Ffp2Jq2QZtJ", | ||
"U9rFgK5jjdXmV8k5tpqeXkimzrN3o9eCCcXesyhMBBZu9MQJCDTDo5Wn5psKvzJVMJpiMbdkfDXkp7sKZddfCZdxpuDmyNy7VFka19zMW4jcz6DRQvNfA2kvJYKk96zc7uizgp3i2FYWrB8mr1sPJ8oP9Th64GQ5yHd8", | ||
"adUbkxszkX9FbvnyKu6UA4g7XhAmPVj6PgPhLS6dTtUfCCr7oDEEXNYqWD2q5MuKPGgEhX16V451kAEUyYhiFMPYCjsAiCM1oWKnLmeA9joFr9jDYD5AoLAsVEyM13FZPf8vuKmF6JTZdCbMCgzHYrMjnb9i3iDPN4Qg" | ||
bintools.avaSerialize(Buffer.from("38d1b9f1138672da6fb6c35125539276a9acc2a668d63bea6ba3c795e2edb0f5000000013e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd3558000000070000000000004dd500000000000000000000000100000001a36fd0c2dbcab311731dde7ef1514bd26fcdc74d", "hex")), | ||
bintools.avaSerialize(Buffer.from("c3e4823571587fe2bdfc502689f5a8238b9d0ea7f3277124d16af9de0d2d9911000000003e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd355800000007000000000000001900000000000000000000000100000001e1b6b6a4bad94d2e3f20730379b9bcd6f176318e", "hex")), | ||
bintools.avaSerialize(Buffer.from("f29dba61fda8d57a911e7f8810f935bde810d3f8d495404685bdb8d9d8545e86000000003e07e38e2f23121be8756412c18db7246a16d26ee9936f3cba28be149cfd355800000007000000000000001900000000000000000000000100000001e1b6b6a4bad94d2e3f20730379b9bcd6f176318e", "hex")) | ||
]; | ||
@@ -324,3 +325,3 @@ let addrs:Array<Buffer> = [ | ||
//Take-or-Leave | ||
let newutxo:string = "QyaDeF2yYxzQuatMEgijoYerFBVTwomhaTGraUrCngZomXtxPT2AHaKPVGh8rwtTGKMEYS1YN3CmdZitZKL9ENHRY99uNdQHogV36v8iFCjMsD7Ygm8WWY3xVu19VzJj1anktNPL8xNEN538PFcBv5eTz87jQCsWj4i7"; | ||
let newutxo:string = bintools.avaSerialize(Buffer.from("acf88647b3fbaa9fdf4378f3a0df6a5d15d8efb018ad78f12690390e79e1687600000003acf88647b3fbaa9fdf4378f3a0df6a5d15d8efb018ad78f12690390e79e168760000000700000000000186a000000000000000000000000100000001fceda8f90fcb5d30614b99d79fc4baa293077626", "hex")); | ||
@@ -327,0 +328,0 @@ beforeEach(() => { |
@@ -182,7 +182,7 @@ "use strict"; | ||
exports.AVMConstants = AVMConstants; | ||
AVMConstants.SECPOUTPUTID = 4; | ||
AVMConstants.SECPINPUTID = 6; | ||
AVMConstants.SECPOUTPUTID = 7; | ||
AVMConstants.SECPINPUTID = 5; | ||
AVMConstants.CREATEASSETTX = 1; | ||
AVMConstants.BASETX = 0; | ||
AVMConstants.SECPCREDENTIAL = 7; | ||
AVMConstants.SECPCREDENTIAL = 9; | ||
AVMConstants.ASSETIDLEN = 32; | ||
@@ -202,2 +202,2 @@ AVMConstants.BLOCKCHAINIDLEN = 32; | ||
; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpcy9hdm0vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILG9DQUErQjtBQUMvQiw2Q0FBMkM7QUFDM0Msa0RBQXVCO0FBQ3ZCLG9FQUE0QztBQUM1Qyx1Q0FBbUU7QUFFbkU7O0dBRUc7QUFDSCxJQUFJLFFBQVEsR0FBWSxrQkFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsY0FBTTtJQWlCOUI7O09BRUc7SUFDSDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBbEJaOztXQUVHO1FBQ0gsY0FBUyxHQUFHLENBQUMsT0FBYyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDMUIsQ0FBQyxDQUFBO1FBRUQ7O1dBRUc7UUFDSCxjQUFTLEdBQUcsR0FBVSxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDLENBQUE7UUFPRyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNKO0FBekJELHdCQXlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsY0FBTTtJQUVqQzs7T0FFRztJQUNIO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBVkQsOEJBVUM7QUFFRDs7R0FFRztBQUNILE1BQWEsT0FBUSxTQUFRLGNBQU07SUF5Qy9COztPQUVHO0lBQ0g7UUFDSSxLQUFLLEVB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QWEsWUFBWTs7QUFBekIsb0NBWUM7QUFYVSx5QkFBWSxHQUFVLENBQUMsQ0FBQztBQUN4Qix3QkFBVyxHQUFVLENBQUMsQ0FBQztBQUN2QiwwQkFBYSxHQUFVLENBQUMsQ0FBQztBQUN6QixtQkFBTSxHQUFVLENBQUMsQ0FBQztBQUNsQiwyQkFBYyxHQUFVLENBQUMsQ0FBQztBQUMxQix1QkFBVSxHQUFVLEVBQUUsQ0FBQztBQUN2Qiw0QkFBZSxHQUFVLEVBQUUsQ0FBQztBQUM1Qix5QkFBWSxHQUFVLENBQUMsQ0FBQztBQUN4Qix5QkFBWSxHQUFVLEdBQUcsQ0FBQztBQUMxQiwwQkFBYSxHQUFVLEVBQUUsQ0FBQztBQUMxQixxQkFBUSxHQUFVLENBQUMsQ0FBQztBQWUvQjs7R0FFRztBQUNILFNBQWdCLE9BQU87SUFDbkIsT0FBTyxJQUFJLGVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUZELDBCQUVDO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBBVk1BUElcbiAqL1xuaW1wb3J0IHtCdWZmZXJ9IGZyb20gXCJidWZmZXIvXCI7XG5pbXBvcnQgeyBOQnl0ZXMgfSBmcm9tICcuLi8uLi91dGlscy90eXBlcyc7XG5pbXBvcnQgQk4gZnJvbSBcImJuLmpzXCI7XG5pbXBvcnQgQmluVG9vbHMgZnJvbSAnLi4vLi4vdXRpbHMvYmludG9vbHMnO1xuaW1wb3J0IHsgT3V0cHV0LCBTZWxlY3RPdXRwdXRDbGFzcywgU2VjcE91dEJhc2UgfSBmcm9tICcuL291dHB1dHMnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xubGV0IGJpbnRvb2xzOkJpblRvb2xzID0gQmluVG9vbHMuZ2V0SW5zdGFuY2UoKTtcblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyBhIFtbU2lnbmF0dXJlXV0gaW5kZXggdXNlZCBpbiBbW0lucHV0XV1cbiAqL1xuZXhwb3J0IGNsYXNzIFNpZ0lkeCBleHRlbmRzIE5CeXRlcyB7XG4gICAgc291cmNlOkJ1ZmZlcjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHNvdXJjZSBhZGRyZXNzIGZvciB0aGUgc2lnbmF0dXJlXG4gICAgICovXG4gICAgc2V0U291cmNlID0gKGFkZHJlc3M6QnVmZmVyKSA9PiB7XG4gICAgICAgIHRoaXMuc291cmNlID0gYWRkcmVzcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHNvdXJjZSBhZGRyZXNzIGZvciB0aGUgc2lnbmF0dXJlXG4gICAgICovXG4gICAgZ2V0U291cmNlID0gKCk6QnVmZmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFR5cGUgcmVwcmVzZW50aW5nIGEgW1tTaWduYXR1cmVdXSBpbmRleCB1c2VkIGluIFtbSW5wdXRdXVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgICAgIHRoaXMuYnNpemUgPSA0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTaWduYXR1cmUgZm9yIGEgW1tUeF1dXG4gKi9cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmUgZXh0ZW5kcyBOQnl0ZXMge1xuXG4gICAgLyoqXG4gICAgICogU2lnbmF0dXJlIGZvciBhIFtbVHhdXVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuYWxsb2MoNjUpO1xuICAgICAgICB0aGlzLmJzaXplID0gNjU7XG4gICAgfVxufVxuXG4vKipcbiAqIENsYXNzIGZvciByZXByZXNlbnRpbmcgYW4gYWRkcmVzcyB1c2VkIGluIFtbT3V0cHV0XV0gdHlwZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEFkZHJlc3MgZXh0ZW5kcyBOQnl0ZXMge1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGZ1bmN0aW9uIHVzZWQgdG8gc29ydCBhbiBhcnJheSBvZiBbW0FkZHJlc3NdXWVzXG4gICAgICovXG4gICAgc3RhdGljIGNvbXBhcml0b3IgPSAoKTooYTpBZGRyZXNzLCBiOkFkZHJlc3MpID0+ICgxfC0xfDApID0+IHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGE6QWRkcmVzcywgYjpBZGRyZXNzKTooMXwtMXwwKSB7IFxuICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKGEudG9CdWZmZXIoKSwgYi50b0J1ZmZlcigpKSBhcyAoMXwtMXwwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgYmFzZS01OCByZXByZXNlbnRhdGlvbiBvZiB0aGUgW1tBZGRyZXNzXV0uXG4gICAgICovXG4gICAgdG9TdHJpbmcoKTpzdHJpbmcge1xuICAgICAgICByZXR1cm4gYmludG9vbHMuYXZhU2VyaWFsaXplKHRoaXMudG9CdWZmZXIoKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRha2VzIGEgYmFzZS01OCBzdHJpbmcgY29udGFpbmluZyBhbiBbW0FkZHJlc3NdXSwgcGFyc2VzIGl0LCBwb3B1bGF0ZXMgdGhlIGNsYXNzLCBhbmQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBBZGRyZXNzIGluIGJ5dGVzLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBieXRlcyBBIGJhc2UtNTggc3RyaW5nIGNvbnRhaW5pbmcgYSByYXcgW1tBZGRyZXNzXV1cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBUaGUgbGVuZ3RoIG9mIHRoZSByYXcgW1tBZGRyZXNzXV1cbiAgICAgKi9cbiAgICBmcm9tU3RyaW5nKGFkZHI6c3RyaW5nKTpudW1iZXIge1xuICAgICAgICBsZXQgYWRkcmJ1ZmY6QnVmZmVyID0gYmludG9vbHMuYjU4VG9CdWZmZXIoYWRkcik7XG4gICAgICAgIGlmKGFkZHJidWZmLmxlbmd0aCA9PSAyNCAmJiBiaW50b29scy52YWxpZGF0ZUNoZWNrc3VtKGFkZHJidWZmKSkge1xuICAgICAgICAgICAgbGV0IG5ld2J1ZmY6QnVmZmVyID0gYmludG9vbHMuY29weUZyb20oYWRkcmJ1ZmYsIDAsYWRkcmJ1ZmYubGVuZ3RoIC0gNCk7XG4gICAgICAgICAgICBpZihuZXdidWZmLmxlbmd0aCA9PSAyMCl7XG4gICAgICAgICAgICAgICAgdGhpcy5ieXRlcyA9IG5ld2J1ZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZihhZGRyYnVmZi5sZW5ndGggPT0gMjQpe1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgLSBBZGRyZXNzLmZyb21TdHJpbmc6IGludmFsaWQgY2hlY2tzdW0gb24gYWRkcmVzc1wiKTtcbiAgICAgICAgfSBlbHNlIGlmKGFkZHJidWZmLmxlbmd0aCA9PSAyMCl7XG4gICAgICAgICAgICB0aGlzLmJ5dGVzID0gYWRkcmJ1ZmY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgLSBBZGRyZXNzLmZyb21TdHJpbmc6IGludmFsaWQgYWRkcmVzc1wiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTaXplKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xhc3MgZm9yIHJlcHJlc2VudGluZyBhbiBhZGRyZXNzIHVzZWQgaW4gW1tPdXRwdXRdXSB0eXBlc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuYWxsb2MoMjApO1xuICAgICAgICB0aGlzLmJzaXplID0gMjA7XG4gICAgfVxufVxuXG4vKipcbiAqIENsYXNzIGZvciBjcmVhdGluZyBpbml0aWFsIG91dHB1dCBzdGF0ZXMgdXNlZCBpbiBhc3NldCBjcmVhdGlvblxuICovXG5leHBvcnQgY2xhc3MgSW5pdGlhbFN0YXRlcyB7XG4gICAgcHJvdGVjdGVkIGZ4czp7W2Z4aWQ6bnVtYmVyXTpBcnJheTxPdXRwdXQ+fSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogQHBhcmFtIG91dCBUaGUgb3V0cHV0IHN0YXRlIHRvIGFkZCB0byB0aGUgY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSBmeGlkIFRoZSBGeElEIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGlzIG91dHB1dCwgZGVmYXVsdCBBVk1Db25zdGFudHMuU0VDUEZYSURcbiAgICAgKi9cbiAgICBhZGRPdXRwdXQob3V0Ok91dHB1dCwgZnhpZDpudW1iZXIgPSBBVk1Db25zdGFudHMuU0VDUEZYSUQpOnZvaWQge1xuICAgICAgICBpZighKGZ4aWQgaW4gdGhpcy5meHMpKXtcbiAgICAgICAgICAgIHRoaXMuZnhzW2Z4aWRdID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5meHNbZnhpZF0ucHVzaChvdXQpO1xuICAgIH1cblxuICAgIGZyb21CdWZmZXIoYnl0ZXM6QnVmZmVyLCBvZmZzZXQ6bnVtYmVyKTpudW1iZXIge1xuICAgICAgICBsZXQgcmVzdWx0OntbZnhpZDpudW1iZXJdOkFycmF5PE91dHB1dD59ID0ge307XG4gICAgICAgIGxldCBrbGVuOkJ1ZmZlciA9IGJpbnRvb2xzLmNvcHlGcm9tKGJ5dGVzLCBvZmZzZXQsIG9mZnNldCArIDQpO1xuICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgbGV0IGtsZW5udW06bnVtYmVyID0ga2xlbi5yZWFkVUludDMyQkUoMCk7XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBrbGVubnVtOyBpKyspe1xuICAgICAgICAgICAgbGV0IGZ4aWRidWZmOkJ1ZmZlciA9IGJpbnRvb2xzLmNvcHlGcm9tKGJ5dGVzLCBvZmZzZXQsIG9mZnNldCArIDQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7XG4gICAgICAgICAgICBsZXQgZnhpZDpudW1iZXIgPSBmeGlkYnVmZi5yZWFkVUludDMyQkUoMCk7XG4gICAgICAgICAgICByZXN1bHRbZnhpZF0gPSBbXTtcbiAgICAgICAgICAgIGxldCBzdGF0ZWxlbmJ1ZmY6QnVmZmVyID0gYmludG9vbHMuY29weUZyb20oYnl0ZXMsIG9mZnNldCwgb2Zmc2V0ICsgNCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgICAgIGxldCBzdGF0ZWxlbjpudW1iZXIgPSBzdGF0ZWxlbmJ1ZmYucmVhZFVJbnQzMkJFKDApO1xuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IHN0YXRlbGVuOyBqKyspe1xuICAgICAgICAgICAgICAgIGxldCBhYnVmZjpCdWZmZXIgPSBiaW50b29scy5jb3B5RnJvbShieXRlcywgb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBsZXQgb3V0Ok91dHB1dCA9IG5ldyBTZWNwT3V0QmFzZSgpO1xuICAgICAgICAgICAgICAgIG91dC5mcm9tQnVmZmVyKGFidWZmKVxuICAgICAgICAgICAgICAgIGxldCBvdXRidWZmOkJ1ZmZlciA9IG91dC50b0J1ZmZlcigpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSBvdXRidWZmLmxlbmd0aDtcbiAgICAgICAgICAgICAgICByZXN1bHRbZnhpZF0ucHVzaChvdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZnhzID0gcmVzdWx0O1xuICAgICAgICByZXR1cm4gb2Zmc2V0XG4gICAgfVxuXG4gICAgdG9CdWZmZXIoKTpCdWZmZXIge1xuICAgICAgICBsZXQgYnVmZjpBcnJheTxCdWZmZXI+ID0gW107XG4gICAgICAgIGxldCBrZXlzOkFycmF5PG51bWJlcj4gPSBPYmplY3Qua2V5cyh0aGlzLmZ4cykubWFwKGsgPT4gcGFyc2VJbnQoaykpLnNvcnQoKTtcbiAgICAgICAgbGV0IGtsZW46QnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICBrbGVuLndyaXRlVUludDMyQkUoa2V5cy5sZW5ndGgsIDApO1xuICAgICAgICBidWZmLnB1c2goa2xlbik7XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGxldCBmeGlkOm51bWJlciA9IGtleXNbaV07XG4gICAgICAgICAgICBsZXQgZnhpZGJ1ZmY6QnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICAgICAgZnhpZGJ1ZmYud3JpdGVVSW50MzJCRShmeGlkLCAwKTtcbiAgICAgICAgICAgIGJ1ZmYucHVzaChmeGlkYnVmZik7XG4gICAgICAgICAgICBsZXQgaW5pdGlhbFN0YXRlID0gdGhpcy5meHNbZnhpZF0uc29ydChPdXRwdXQuY29tcGFyYXRvcigpKTtcbiAgICAgICAgICAgIGxldCBzdGF0ZWxlbjpCdWZmZXIgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgICAgICAgICBzdGF0ZWxlbi53cml0ZVVJbnQzMkJFKGluaXRpYWxTdGF0ZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgYnVmZi5wdXNoKHN0YXRlbGVuKTtcbiAgICAgICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCBpbml0aWFsU3RhdGUubGVuZ3RoOyBqKyspe1xuICAgICAgICAgICAgICAgIGJ1ZmYucHVzaChpbml0aWFsU3RhdGVbal0udG9CdWZmZXIoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoYnVmZik7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCl7fVxufVxuXG5leHBvcnQgY2xhc3MgQVZNQ29uc3RhbnRzIHtcbiAgICBzdGF0aWMgU0VDUE9VVFBVVElEOm51bWJlciA9IDQ7XG4gICAgc3RhdGljIFNFQ1BJTlBVVElEOm51bWJlciA9IDY7XG4gICAgc3RhdGljIENSRUFURUFTU0VUVFg6bnVtYmVyID0gMTtcbiAgICBzdGF0aWMgQkFTRVRYOm51bWJlciA9IDA7XG4gICAgc3RhdGljIFNFQ1BDUkVERU5USUFMOm51bWJlciA9IDc7XG4gICAgc3RhdGljIEFTU0VUSURMRU46bnVtYmVyID0gMzI7XG4gICAgc3RhdGljIEJMT0NLQ0hBSU5JRExFTjpudW1iZXIgPSAzMjtcbiAgICBzdGF0aWMgU1lNQk9MTUFYTEVOOm51bWJlciA9IDQ7XG4gICAgc3RhdGljIEFTU0VUTkFNRUxFTjpudW1iZXIgPSAxMjg7XG4gICAgc3RhdGljIEFERFJFU1NMRU5HVEg6bnVtYmVyID0gMjA7XG4gICAgc3RhdGljIFNFQ1BGWElEOm51bWJlciA9IDA7XG59XG5cbi8qKlxuICogUnVsZXMgdXNlZCB3aGVuIG1lcmdpbmcgc2V0c1xuICovXG5leHBvcnQgdHlwZSBNZXJnZVJ1bGUgPSBcImludGVyc2VjdGlvblwiIC8vU2VsZiBJTlRFUlNFQ1QgTmV3IFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBcImRpZmZlcmVuY2VTZWxmXCIgLy9TZWxmIE1JTlVTIE5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBcImRpZmZlcmVuY2VOZXdcIiAvL05ldyBNSU5VUyBTZWxmXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFwic3ltRGlmZmVyZW5jZVwiIC8vZGlmZmVyZW5jZVNlbGYgVU5JT04gZGlmZmVyZW5jZU5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBcInVuaW9uXCIgLy9TZWxmIFVOSU9OIE5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBcInVuaW9uTWludXNOZXdcIiAvL3VuaW9uIE1JTlVTIGRpZmZlcmVuY2VOZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgXCJ1bmlvbk1pbnVzU2VsZlwiIC8vdW5pb24gTUlOVVMgZGlmZmVyZW5jZVNlbGZcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgXCJFUlJPUlwiOyAvL2dlbmVyYXRlIGVycm9yIGZvciB0ZXN0aW5nXG5cbi8qKlxuICogRnVuY3Rpb24gcHJvdmlkaW5nIHRoZSBjdXJyZW50IFVOSVggdGltZSB1c2luZyBhIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9ibi5qcy98Qk59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBVbml4Tm93KCk6Qk4ge1xuICAgIHJldHVybiBuZXcgQk4oTWF0aC5yb3VuZCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCkpO1xufTsiXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpcy9hdm0vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILG9DQUErQjtBQUMvQiw2Q0FBMkM7QUFDM0Msa0RBQXVCO0FBQ3ZCLG9FQUE0QztBQUM1Qyx1Q0FBbUU7QUFFbkU7O0dBRUc7QUFDSCxJQUFJLFFBQVEsR0FBWSxrQkFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsY0FBTTtJQWlCOUI7O09BRUc7SUFDSDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBbEJaOztXQUVHO1FBQ0gsY0FBUyxHQUFHLENBQUMsT0FBYyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDMUIsQ0FBQyxDQUFBO1FBRUQ7O1dBRUc7UUFDSCxjQUFTLEdBQUcsR0FBVSxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDLENBQUE7UUFPRyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNKO0FBekJELHdCQXlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsY0FBTTtJQUVqQzs7T0FFRztJQUNIO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBVkQsOEJBVUM7QUFFRDs7R0FFRztBQUNILE1BQWEsT0FBUSxTQUFRLGNBQU07SUF5Qy9COztPQUVHO0lBQ0g7UUFDSSxLQUFLLEVB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QWEsWUFBWTs7QUFBekIsb0NBWUM7QUFYVSx5QkFBWSxHQUFVLENBQUMsQ0FBQztBQUN4Qix3QkFBVyxHQUFVLENBQUMsQ0FBQztBQUN2QiwwQkFBYSxHQUFVLENBQUMsQ0FBQztBQUN6QixtQkFBTSxHQUFVLENBQUMsQ0FBQztBQUNsQiwyQkFBYyxHQUFVLENBQUMsQ0FBQztBQUMxQix1QkFBVSxHQUFVLEVBQUUsQ0FBQztBQUN2Qiw0QkFBZSxHQUFVLEVBQUUsQ0FBQztBQUM1Qix5QkFBWSxHQUFVLENBQUMsQ0FBQztBQUN4Qix5QkFBWSxHQUFVLEdBQUcsQ0FBQztBQUMxQiwwQkFBYSxHQUFVLEVBQUUsQ0FBQztBQUMxQixxQkFBUSxHQUFVLENBQUMsQ0FBQztBQWUvQjs7R0FFRztBQUNILFNBQWdCLE9BQU87SUFDbkIsT0FBTyxJQUFJLGVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUZELDBCQUVDO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBBVk1BUElcbiAqL1xuaW1wb3J0IHtCdWZmZXJ9IGZyb20gXCJidWZmZXIvXCI7XG5pbXBvcnQgeyBOQnl0ZXMgfSBmcm9tICcuLi8uLi91dGlscy90eXBlcyc7XG5pbXBvcnQgQk4gZnJvbSBcImJuLmpzXCI7XG5pbXBvcnQgQmluVG9vbHMgZnJvbSAnLi4vLi4vdXRpbHMvYmludG9vbHMnO1xuaW1wb3J0IHsgT3V0cHV0LCBTZWxlY3RPdXRwdXRDbGFzcywgU2VjcE91dEJhc2UgfSBmcm9tICcuL291dHB1dHMnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xubGV0IGJpbnRvb2xzOkJpblRvb2xzID0gQmluVG9vbHMuZ2V0SW5zdGFuY2UoKTtcblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyBhIFtbU2lnbmF0dXJlXV0gaW5kZXggdXNlZCBpbiBbW0lucHV0XV1cbiAqL1xuZXhwb3J0IGNsYXNzIFNpZ0lkeCBleHRlbmRzIE5CeXRlcyB7XG4gICAgc291cmNlOkJ1ZmZlcjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHNvdXJjZSBhZGRyZXNzIGZvciB0aGUgc2lnbmF0dXJlXG4gICAgICovXG4gICAgc2V0U291cmNlID0gKGFkZHJlc3M6QnVmZmVyKSA9PiB7XG4gICAgICAgIHRoaXMuc291cmNlID0gYWRkcmVzcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHNvdXJjZSBhZGRyZXNzIGZvciB0aGUgc2lnbmF0dXJlXG4gICAgICovXG4gICAgZ2V0U291cmNlID0gKCk6QnVmZmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFR5cGUgcmVwcmVzZW50aW5nIGEgW1tTaWduYXR1cmVdXSBpbmRleCB1c2VkIGluIFtbSW5wdXRdXVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgICAgIHRoaXMuYnNpemUgPSA0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTaWduYXR1cmUgZm9yIGEgW1tUeF1dXG4gKi9cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmUgZXh0ZW5kcyBOQnl0ZXMge1xuXG4gICAgLyoqXG4gICAgICogU2lnbmF0dXJlIGZvciBhIFtbVHhdXVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuYWxsb2MoNjUpO1xuICAgICAgICB0aGlzLmJzaXplID0gNjU7XG4gICAgfVxufVxuXG4vKipcbiAqIENsYXNzIGZvciByZXByZXNlbnRpbmcgYW4gYWRkcmVzcyB1c2VkIGluIFtbT3V0cHV0XV0gdHlwZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEFkZHJlc3MgZXh0ZW5kcyBOQnl0ZXMge1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGZ1bmN0aW9uIHVzZWQgdG8gc29ydCBhbiBhcnJheSBvZiBbW0FkZHJlc3NdXWVzXG4gICAgICovXG4gICAgc3RhdGljIGNvbXBhcml0b3IgPSAoKTooYTpBZGRyZXNzLCBiOkFkZHJlc3MpID0+ICgxfC0xfDApID0+IHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGE6QWRkcmVzcywgYjpBZGRyZXNzKTooMXwtMXwwKSB7IFxuICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKGEudG9CdWZmZXIoKSwgYi50b0J1ZmZlcigpKSBhcyAoMXwtMXwwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgYmFzZS01OCByZXByZXNlbnRhdGlvbiBvZiB0aGUgW1tBZGRyZXNzXV0uXG4gICAgICovXG4gICAgdG9TdHJpbmcoKTpzdHJpbmcge1xuICAgICAgICByZXR1cm4gYmludG9vbHMuYXZhU2VyaWFsaXplKHRoaXMudG9CdWZmZXIoKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRha2VzIGEgYmFzZS01OCBzdHJpbmcgY29udGFpbmluZyBhbiBbW0FkZHJlc3NdXSwgcGFyc2VzIGl0LCBwb3B1bGF0ZXMgdGhlIGNsYXNzLCBhbmQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBBZGRyZXNzIGluIGJ5dGVzLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBieXRlcyBBIGJhc2UtNTggc3RyaW5nIGNvbnRhaW5pbmcgYSByYXcgW1tBZGRyZXNzXV1cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBUaGUgbGVuZ3RoIG9mIHRoZSByYXcgW1tBZGRyZXNzXV1cbiAgICAgKi9cbiAgICBmcm9tU3RyaW5nKGFkZHI6c3RyaW5nKTpudW1iZXIge1xuICAgICAgICBsZXQgYWRkcmJ1ZmY6QnVmZmVyID0gYmludG9vbHMuYjU4VG9CdWZmZXIoYWRkcik7XG4gICAgICAgIGlmKGFkZHJidWZmLmxlbmd0aCA9PSAyNCAmJiBiaW50b29scy52YWxpZGF0ZUNoZWNrc3VtKGFkZHJidWZmKSkge1xuICAgICAgICAgICAgbGV0IG5ld2J1ZmY6QnVmZmVyID0gYmludG9vbHMuY29weUZyb20oYWRkcmJ1ZmYsIDAsYWRkcmJ1ZmYubGVuZ3RoIC0gNCk7XG4gICAgICAgICAgICBpZihuZXdidWZmLmxlbmd0aCA9PSAyMCl7XG4gICAgICAgICAgICAgICAgdGhpcy5ieXRlcyA9IG5ld2J1ZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZihhZGRyYnVmZi5sZW5ndGggPT0gMjQpe1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgLSBBZGRyZXNzLmZyb21TdHJpbmc6IGludmFsaWQgY2hlY2tzdW0gb24gYWRkcmVzc1wiKTtcbiAgICAgICAgfSBlbHNlIGlmKGFkZHJidWZmLmxlbmd0aCA9PSAyMCl7XG4gICAgICAgICAgICB0aGlzLmJ5dGVzID0gYWRkcmJ1ZmY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgLSBBZGRyZXNzLmZyb21TdHJpbmc6IGludmFsaWQgYWRkcmVzc1wiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTaXplKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xhc3MgZm9yIHJlcHJlc2VudGluZyBhbiBhZGRyZXNzIHVzZWQgaW4gW1tPdXRwdXRdXSB0eXBlc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuYWxsb2MoMjApO1xuICAgICAgICB0aGlzLmJzaXplID0gMjA7XG4gICAgfVxufVxuXG4vKipcbiAqIENsYXNzIGZvciBjcmVhdGluZyBpbml0aWFsIG91dHB1dCBzdGF0ZXMgdXNlZCBpbiBhc3NldCBjcmVhdGlvblxuICovXG5leHBvcnQgY2xhc3MgSW5pdGlhbFN0YXRlcyB7XG4gICAgcHJvdGVjdGVkIGZ4czp7W2Z4aWQ6bnVtYmVyXTpBcnJheTxPdXRwdXQ+fSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogQHBhcmFtIG91dCBUaGUgb3V0cHV0IHN0YXRlIHRvIGFkZCB0byB0aGUgY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSBmeGlkIFRoZSBGeElEIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGlzIG91dHB1dCwgZGVmYXVsdCBBVk1Db25zdGFudHMuU0VDUEZYSURcbiAgICAgKi9cbiAgICBhZGRPdXRwdXQob3V0Ok91dHB1dCwgZnhpZDpudW1iZXIgPSBBVk1Db25zdGFudHMuU0VDUEZYSUQpOnZvaWQge1xuICAgICAgICBpZighKGZ4aWQgaW4gdGhpcy5meHMpKXtcbiAgICAgICAgICAgIHRoaXMuZnhzW2Z4aWRdID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5meHNbZnhpZF0ucHVzaChvdXQpO1xuICAgIH1cblxuICAgIGZyb21CdWZmZXIoYnl0ZXM6QnVmZmVyLCBvZmZzZXQ6bnVtYmVyKTpudW1iZXIge1xuICAgICAgICBsZXQgcmVzdWx0OntbZnhpZDpudW1iZXJdOkFycmF5PE91dHB1dD59ID0ge307XG4gICAgICAgIGxldCBrbGVuOkJ1ZmZlciA9IGJpbnRvb2xzLmNvcHlGcm9tKGJ5dGVzLCBvZmZzZXQsIG9mZnNldCArIDQpO1xuICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgbGV0IGtsZW5udW06bnVtYmVyID0ga2xlbi5yZWFkVUludDMyQkUoMCk7XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBrbGVubnVtOyBpKyspe1xuICAgICAgICAgICAgbGV0IGZ4aWRidWZmOkJ1ZmZlciA9IGJpbnRvb2xzLmNvcHlGcm9tKGJ5dGVzLCBvZmZzZXQsIG9mZnNldCArIDQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7XG4gICAgICAgICAgICBsZXQgZnhpZDpudW1iZXIgPSBmeGlkYnVmZi5yZWFkVUludDMyQkUoMCk7XG4gICAgICAgICAgICByZXN1bHRbZnhpZF0gPSBbXTtcbiAgICAgICAgICAgIGxldCBzdGF0ZWxlbmJ1ZmY6QnVmZmVyID0gYmludG9vbHMuY29weUZyb20oYnl0ZXMsIG9mZnNldCwgb2Zmc2V0ICsgNCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgICAgIGxldCBzdGF0ZWxlbjpudW1iZXIgPSBzdGF0ZWxlbmJ1ZmYucmVhZFVJbnQzMkJFKDApO1xuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IHN0YXRlbGVuOyBqKyspe1xuICAgICAgICAgICAgICAgIGxldCBhYnVmZjpCdWZmZXIgPSBiaW50b29scy5jb3B5RnJvbShieXRlcywgb2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBsZXQgb3V0Ok91dHB1dCA9IG5ldyBTZWNwT3V0QmFzZSgpO1xuICAgICAgICAgICAgICAgIG91dC5mcm9tQnVmZmVyKGFidWZmKVxuICAgICAgICAgICAgICAgIGxldCBvdXRidWZmOkJ1ZmZlciA9IG91dC50b0J1ZmZlcigpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSBvdXRidWZmLmxlbmd0aDtcbiAgICAgICAgICAgICAgICByZXN1bHRbZnhpZF0ucHVzaChvdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZnhzID0gcmVzdWx0O1xuICAgICAgICByZXR1cm4gb2Zmc2V0XG4gICAgfVxuXG4gICAgdG9CdWZmZXIoKTpCdWZmZXIge1xuICAgICAgICBsZXQgYnVmZjpBcnJheTxCdWZmZXI+ID0gW107XG4gICAgICAgIGxldCBrZXlzOkFycmF5PG51bWJlcj4gPSBPYmplY3Qua2V5cyh0aGlzLmZ4cykubWFwKGsgPT4gcGFyc2VJbnQoaykpLnNvcnQoKTtcbiAgICAgICAgbGV0IGtsZW46QnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICBrbGVuLndyaXRlVUludDMyQkUoa2V5cy5sZW5ndGgsIDApO1xuICAgICAgICBidWZmLnB1c2goa2xlbik7XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGxldCBmeGlkOm51bWJlciA9IGtleXNbaV07XG4gICAgICAgICAgICBsZXQgZnhpZGJ1ZmY6QnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICAgICAgZnhpZGJ1ZmYud3JpdGVVSW50MzJCRShmeGlkLCAwKTtcbiAgICAgICAgICAgIGJ1ZmYucHVzaChmeGlkYnVmZik7XG4gICAgICAgICAgICBsZXQgaW5pdGlhbFN0YXRlID0gdGhpcy5meHNbZnhpZF0uc29ydChPdXRwdXQuY29tcGFyYXRvcigpKTtcbiAgICAgICAgICAgIGxldCBzdGF0ZWxlbjpCdWZmZXIgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgICAgICAgICBzdGF0ZWxlbi53cml0ZVVJbnQzMkJFKGluaXRpYWxTdGF0ZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgYnVmZi5wdXNoKHN0YXRlbGVuKTtcbiAgICAgICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCBpbml0aWFsU3RhdGUubGVuZ3RoOyBqKyspe1xuICAgICAgICAgICAgICAgIGJ1ZmYucHVzaChpbml0aWFsU3RhdGVbal0udG9CdWZmZXIoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoYnVmZik7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCl7fVxufVxuXG5leHBvcnQgY2xhc3MgQVZNQ29uc3RhbnRzIHtcbiAgICBzdGF0aWMgU0VDUE9VVFBVVElEOm51bWJlciA9IDc7XG4gICAgc3RhdGljIFNFQ1BJTlBVVElEOm51bWJlciA9IDU7XG4gICAgc3RhdGljIENSRUFURUFTU0VUVFg6bnVtYmVyID0gMTtcbiAgICBzdGF0aWMgQkFTRVRYOm51bWJlciA9IDA7XG4gICAgc3RhdGljIFNFQ1BDUkVERU5USUFMOm51bWJlciA9IDk7XG4gICAgc3RhdGljIEFTU0VUSURMRU46bnVtYmVyID0gMzI7XG4gICAgc3RhdGljIEJMT0NLQ0hBSU5JRExFTjpudW1iZXIgPSAzMjtcbiAgICBzdGF0aWMgU1lNQk9MTUFYTEVOOm51bWJlciA9IDQ7XG4gICAgc3RhdGljIEFTU0VUTkFNRUxFTjpudW1iZXIgPSAxMjg7XG4gICAgc3RhdGljIEFERFJFU1NMRU5HVEg6bnVtYmVyID0gMjA7XG4gICAgc3RhdGljIFNFQ1BGWElEOm51bWJlciA9IDA7XG59XG5cbi8qKlxuICogUnVsZXMgdXNlZCB3aGVuIG1lcmdpbmcgc2V0c1xuICovXG5leHBvcnQgdHlwZSBNZXJnZVJ1bGUgPSBcImludGVyc2VjdGlvblwiIC8vU2VsZiBJTlRFUlNFQ1QgTmV3IFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBcImRpZmZlcmVuY2VTZWxmXCIgLy9TZWxmIE1JTlVTIE5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBcImRpZmZlcmVuY2VOZXdcIiAvL05ldyBNSU5VUyBTZWxmXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFwic3ltRGlmZmVyZW5jZVwiIC8vZGlmZmVyZW5jZVNlbGYgVU5JT04gZGlmZmVyZW5jZU5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBcInVuaW9uXCIgLy9TZWxmIFVOSU9OIE5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBcInVuaW9uTWludXNOZXdcIiAvL3VuaW9uIE1JTlVTIGRpZmZlcmVuY2VOZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgXCJ1bmlvbk1pbnVzU2VsZlwiIC8vdW5pb24gTUlOVVMgZGlmZmVyZW5jZVNlbGZcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgXCJFUlJPUlwiOyAvL2dlbmVyYXRlIGVycm9yIGZvciB0ZXN0aW5nXG5cbi8qKlxuICogRnVuY3Rpb24gcHJvdmlkaW5nIHRoZSBjdXJyZW50IFVOSVggdGltZSB1c2luZyBhIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9ibi5qcy98Qk59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBVbml4Tm93KCk6Qk4ge1xuICAgIHJldHVybiBuZXcgQk4oTWF0aC5yb3VuZCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCkpO1xufTsiXX0= |
@@ -22,4 +22,3 @@ "use strict"; | ||
class DB { | ||
constructor() { | ||
} | ||
constructor() { } | ||
/** | ||
@@ -45,2 +44,2 @@ * Retrieves the database singleton. | ||
DB.store = store2_1.default; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILG9EQUEyQjtBQUczQjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBcUIsRUFBRTtJQUduQjtJQUF1QixDQUFDO0lBRXhCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFdBQVc7UUFDZCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUNkLEVBQUUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUMxQjtRQUNELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBUztRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O0FBdEJMLHFCQXdCQztBQXRCa0IsUUFBSyxHQUFHLGdCQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgVXRpbHNcbiAqL1xuaW1wb3J0IHN0b3JlIGZyb20gXCJzdG9yZTJcIjtcbmltcG9ydCB7IFN0b3JlQVBJIH0gZnJvbSBcInN0b3JlMlwiO1xuXG4vKipcbiAqIEEgY2xhc3MgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbmJ1Ym5hL3N0b3JlfCBzdG9yZTIgbW9kdWxlfVxuICogXG4gKiBUaGlzIGNsYXNzIHNob3VsZCBuZXZlciBiZSBpbnN0YW50aWF0ZWQgZGlyZWN0bHkuIEluc3RlYWQsIGludm9rZSB0aGUgXCJEQi5nZXRJbnN0YW5jZSgpXCIgc3RhdGljXG4gKiBmdW5jdGlvbiB0byBncmFiIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIGRhdGFiYXNlLlxuICogXG4gKiBgYGBqc1xuICogY29uc3QgZGIgPSBEQi5nZXRJbnN0YW5jZSgpO1xuICogY29uc3QgYmxvY2tjaGFpbmRiID0gZGIuZ2V0TmFtZXNwYWNlKFwibXljaGFpblwiKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEQiB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgIGluc3RhbmNlOkRCO1xuICAgIHByaXZhdGUgc3RhdGljIHN0b3JlID0gc3RvcmU7XG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGRhdGFiYXNlIHNpbmdsZXRvbi4gXG4gICAgICovXG4gICAgc3RhdGljIGdldEluc3RhbmNlKCk6IERCIHtcbiAgICAgICAgaWYgKCFEQi5pbnN0YW5jZSkge1xuICAgICAgICAgICAgREIuaW5zdGFuY2UgPSBuZXcgREIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gREIuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIG5hbWVzcGFjZSBmcm9tIHRoZSBkYXRhYmFzZSBzaW5nbGV0b24uXG4gICAgICogXG4gICAgICogQHBhcmFtIG5zIE5hbWVzcGFjZSB0byByZXRyaWV2ZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0TmFtZXNwYWNlKG5zOnN0cmluZyk6IFN0b3JlQVBJe1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5uYW1lc3BhY2UobnMpO1xuICAgIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILG9EQUEyQjtBQUczQjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBcUIsRUFBRTtJQUduQixnQkFBdUIsQ0FBQztJQUV4Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXO1FBQ2QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDZCxFQUFFLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7U0FDMUI7UUFDRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQVM7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDOztBQXRCTCxxQkF3QkM7QUF0QmtCLFFBQUssR0FBRyxnQkFBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIFV0aWxzXG4gKi9cbmltcG9ydCBzdG9yZSBmcm9tIFwic3RvcmUyXCI7XG5pbXBvcnQgeyBTdG9yZUFQSSB9IGZyb20gXCJzdG9yZTJcIjtcblxuLyoqXG4gKiBBIGNsYXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL25idWJuYS9zdG9yZXwgc3RvcmUyIG1vZHVsZX1cbiAqIFxuICogVGhpcyBjbGFzcyBzaG91bGQgbmV2ZXIgYmUgaW5zdGFudGlhdGVkIGRpcmVjdGx5LiBJbnN0ZWFkLCBpbnZva2UgdGhlIFwiREIuZ2V0SW5zdGFuY2UoKVwiIHN0YXRpY1xuICogZnVuY3Rpb24gdG8gZ3JhYiB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBkYXRhYmFzZS5cbiAqIFxuICogYGBganNcbiAqIGNvbnN0IGRiID0gREIuZ2V0SW5zdGFuY2UoKTtcbiAqIGNvbnN0IGJsb2NrY2hhaW5kYiA9IGRiLmdldE5hbWVzcGFjZShcIm15Y2hhaW5cIik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgREIge1xuICAgIHByaXZhdGUgc3RhdGljICBpbnN0YW5jZTpEQjtcbiAgICBwcml2YXRlIHN0YXRpYyBzdG9yZSA9IHN0b3JlO1xuICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBkYXRhYmFzZSBzaW5nbGV0b24uIFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRJbnN0YW5jZSgpOiBEQiB7XG4gICAgICAgIGlmICghREIuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIERCLmluc3RhbmNlID0gbmV3IERCKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIERCLmluc3RhbmNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBuYW1lc3BhY2UgZnJvbSB0aGUgZGF0YWJhc2Ugc2luZ2xldG9uLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBucyBOYW1lc3BhY2UgdG8gcmV0cmlldmUuXG4gICAgICovXG4gICAgc3RhdGljIGdldE5hbWVzcGFjZShuczpzdHJpbmcpOiBTdG9yZUFQSXtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUubmFtZXNwYWNlKG5zKTtcbiAgICB9XG5cbn1cbiJdfQ== |
@@ -293,13 +293,24 @@ /// <reference types="node" /> | ||
static network: { | ||
"1": {}; | ||
"12345": { | ||
"avm": object; | ||
"X": object; | ||
"i8KtK2KwLi1o7WaVBbEKpRLPtAEYayfoptqAFYxfQgrus1g6m": object; | ||
"platform": {} & object; | ||
"P": {} & object; | ||
1: {}; | ||
2: { | ||
avm: object; | ||
X: object; | ||
"4ktRjsAKxgMr2aEzv9SWmrU7Xk5FniHUrVCX4P1TZSfTLZWFM": object; | ||
platform: object; | ||
P: object; | ||
"11111111111111111111111111111111LpoYY": object; | ||
contracts: object; | ||
C: object; | ||
"2mUYSXfLrDtigwbzj1LxKVsHwELghc5sisoXrzJwLqAAQHF4i": object; | ||
}; | ||
12345: { | ||
avm: object; | ||
X: object; | ||
"4R5p2RXDGLqaifZE4hHWH9owe34pfoBULn1DrQTWivjg8o4aH": object; | ||
platform: {} & object; | ||
P: {} & object; | ||
"11111111111111111111111111111111LpoYY": {} & object; | ||
"contracts": {} & object; | ||
"C": {} & object; | ||
"MTHoZAP3gGHB4cAUpFB1CuYnh3uDoMkte6FjLb9Sn5Hx8Bkvb": {} & object; | ||
contracts: {} & object; | ||
C: {} & object; | ||
tZGm6RCkeGpVETUTp11DW3UYFZmm69zfqxchpHrSF7wgy8rmw: {} & object; | ||
}; | ||
@@ -306,0 +317,0 @@ }; |
@@ -351,3 +351,3 @@ "use strict"; | ||
let n2_avm = { | ||
"blockchainID": "m383Jyn4z9kYmyMamjHwoExocRRV7ondsci862bbv1FSrqvH9", | ||
"blockchainID": "4ktRjsAKxgMr2aEzv9SWmrU7Xk5FniHUrVCX4P1TZSfTLZWFM", | ||
"alias": "X", | ||
@@ -357,3 +357,3 @@ "vm": "avm" | ||
let n2_platform = { | ||
"blockchainID": "", | ||
"blockchainID": "11111111111111111111111111111111LpoYY", | ||
"alias": "P", | ||
@@ -363,3 +363,3 @@ "vm": "platform" | ||
let n2_contracts = { | ||
"blockchainID": "", | ||
"blockchainID": "2mUYSXfLrDtigwbzj1LxKVsHwELghc5sisoXrzJwLqAAQHF4i", | ||
"alias": "C", | ||
@@ -369,7 +369,7 @@ "vm": "contracts" | ||
let n12345_avm = Object.assign({}, n2_avm); | ||
n12345_avm["blockchainID"] = "i8KtK2KwLi1o7WaVBbEKpRLPtAEYayfoptqAFYxfQgrus1g6m"; | ||
n12345_avm["blockchainID"] = "4R5p2RXDGLqaifZE4hHWH9owe34pfoBULn1DrQTWivjg8o4aH"; | ||
let n12345_platform = Object.assign({}, n2_platform); | ||
n12345_platform["blockchainID"] = "11111111111111111111111111111111LpoYY"; | ||
let n12345_contracts = Object.assign({}, n2_contracts); | ||
n12345_platform["blockchainID"] = "MTHoZAP3gGHB4cAUpFB1CuYnh3uDoMkte6FjLb9Sn5Hx8Bkvb"; | ||
n12345_platform["blockchainID"] = "tZGm6RCkeGpVETUTp11DW3UYFZmm69zfqxchpHrSF7wgy8rmw"; | ||
class Defaults { | ||
@@ -380,20 +380,17 @@ } | ||
"1": {}, | ||
/* | ||
This will be set on test network. | ||
"2": { | ||
"avm": n2_avm, | ||
"X": n2_avm, | ||
"m383Jyn4z9kYmyMamjHwoExocRRV7ondsci862bbv1FSrqvH9": n2_avm, | ||
"4ktRjsAKxgMr2aEzv9SWmrU7Xk5FniHUrVCX4P1TZSfTLZWFM": n2_avm, | ||
"platform": n2_platform, | ||
"P": n2_platform, | ||
"BCID1": n2_platform, | ||
"11111111111111111111111111111111LpoYY": n2_platform, | ||
"contracts": n2_contracts, | ||
"C": n2_contracts, | ||
"BCID2": n2_contracts | ||
} | ||
*/ | ||
"2mUYSXfLrDtigwbzj1LxKVsHwELghc5sisoXrzJwLqAAQHF4i": n2_contracts | ||
}, | ||
"12345": { | ||
"avm": n12345_avm, | ||
"X": n12345_avm, | ||
"i8KtK2KwLi1o7WaVBbEKpRLPtAEYayfoptqAFYxfQgrus1g6m": n12345_avm, | ||
"4R5p2RXDGLqaifZE4hHWH9owe34pfoBULn1DrQTWivjg8o4aH": n12345_avm, | ||
"platform": n12345_platform, | ||
@@ -404,5 +401,5 @@ "P": n12345_platform, | ||
"C": n12345_contracts, | ||
"MTHoZAP3gGHB4cAUpFB1CuYnh3uDoMkte6FjLb9Sn5Hx8Bkvb": n12345_contracts | ||
"tZGm6RCkeGpVETUTp11DW3UYFZmm69zfqxchpHrSF7wgy8rmw": n12345_contracts | ||
} | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFJQSxvQ0FBaUM7QUFDakMsOENBQXNCO0FBRXRCLDBEQUFtQztBQUluQzs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLGtCQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtDQU0vQjtBQU5ELGtEQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFzQixPQUFPO0lBcUN6Qjs7OztPQUlHO0lBQ0gsWUFBWSxJQUFlLEVBQUUsT0FBYztRQXJDM0M7Ozs7V0FJRztRQUNILGVBQVUsR0FBRyxDQUFDLE9BQWMsRUFBRSxFQUFFO1lBQzVCLElBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBQztnQkFDbkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixJQUFJLENBQUMsRUFBRSxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEM7UUFDTCxDQUFDLENBQUE7UUFFRDs7V0FFRztRQUNILGVBQVUsR0FBRyxHQUFZLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxD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QUM7QUFFRixJQUFJLFlBQVksR0FBVTtJQUN0QixjQUFjLEVBQUUsRUFBRTtJQUNsQixPQUFPLEVBQUUsR0FBRztJQUNaLElBQUksRUFBRSxXQUFXO0NBQ3BCLENBQUE7QUFFRCxJQUFJLFVBQVUsR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsRCxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsbURBQW1ELENBQUM7QUFDakYsSUFBSSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDckQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLHVDQUF1QyxDQUFDO0FBQzFFLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDdkQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLG1EQUFtRCxDQUFDO0FBRXRGLE1BQWEsUUFBUTs7QUFBckIsNEJBNkJDO0FBNUJVLGdCQUFPLEdBQUc7SUFDYixHQUFHLEVBQUUsRUFBRTtJQUNQOzs7Ozs7Ozs7Ozs7O01BYUU7SUFDRixPQUFPLEVBQUU7UUFDTCxLQUFLLEVBQUUsVUFBVTtRQUNqQixHQUFHLEVBQUUsVUFBVTtRQUNmLG1EQUFtRCxFQUFFLFVBQVU7UUFDL0QsVUFBVSxFQUFFLGVBQWU7UUFDM0IsR0FBRyxFQUFFLGVBQWU7UUFDcEIsdUNBQXVDLEVBQUUsZUFBZTtRQUN4RCxXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLEdBQUcsRUFBRSxnQkFBZ0I7UUFDckIsbURBQW1ELEVBQUUsZ0JBQWdCO0tBQ3hFO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBVdGlsc1xuICovXG5pbXBvcnQgU2xvcGVzQ29yZSBmcm9tICcuLi9zbG9wZXMnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSBcImJ1ZmZlci9cIjtcbmltcG9ydCBEQiBmcm9tIFwiLi9kYlwiO1xuaW1wb3J0IHsgU3RvcmVBUEkgfSBmcm9tICdzdG9yZTInO1xuaW1wb3J0IEJpblRvb2xzICBmcm9tICcuL2JpbnRvb2xzJztcbmltcG9ydCB7IENsaWVudFJlcXVlc3QgfSBmcm9tIFwiaHR0cFwiO1xuaW1wb3J0IHsgQXhpb3NSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnYXhpb3MnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuY29uc3QgYmludG9vbHMgPSBCaW5Ub29scy5nZXRJbnN0YW5jZSgpO1xuXG4vKipcbiAqIFJlc3BvbnNlIGRhdGEgZm9yIEhUVFAgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0UmVzcG9uc2VEYXRhIHtcbiAgICBkYXRhOiBzdHJpbmcgfCBvYmplY3QgfCBBcnJheTxvYmplY3Q+O1xuICAgIGhlYWRlcnM6b2JqZWN0O1xuICAgIHN0YXR1czogbnVtYmVyO1xuICAgIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgICByZXF1ZXN0OkNsaWVudFJlcXVlc3QgfCBYTUxIdHRwUmVxdWVzdDtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBkZWZpbmluZyBhIGdlbmVyaWMgZW5kcG9pbnQgdGhhdCBhbGwgZW5kcG9pbnRzIG11c3QgaW1wbGVtZW50IChleHRlbmQpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVBJQmFzZSB7XG4gICAgcHJvdGVjdGVkIGNvcmU6U2xvcGVzQ29yZTtcbiAgICBwcm90ZWN0ZWQgYmFzZXVybDpzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGRiOlN0b3JlQVBJO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcGF0aCBvZiB0aGUgQVBJcyBiYXNldXJsLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBiYXNldXJsIFBhdGggb2YgdGhlIEFQSXMgYmFzZXVybCAtIGV4OiBcIi9leHQvYmMvYXZtXCJcbiAgICAgKi9cbiAgICBzZXRCYXNlVVJMID0gKGJhc2V1cmw6c3RyaW5nKSA9PiB7XG4gICAgICAgIGlmKHRoaXMuZGIgJiYgdGhpcy5iYXNldXJsICE9PSBiYXNldXJsKXtcbiAgICAgICAgICAgIGxldCBiYWNrdXAgPSB0aGlzLmRiLmdldEFsbCgpO1xuICAgICAgICAgICAgdGhpcy5kYi5jbGVhckFsbCgpO1xuICAgICAgICAgICAgdGhpcy5iYXNldXJsID0gYmFzZXVybDtcbiAgICAgICAgICAgIHRoaXMuZGIgPSBEQi5nZXROYW1lc3BhY2UoYmFzZXVybCk7XG4gICAgICAgICAgICB0aGlzLmRiLnNldEFsbChiYWNrdXAsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5iYXNldXJsID0gYmFzZXVybDtcbiAgICAgICAgICAgIHRoaXMuZGIgPSBEQi5nZXROYW1lc3BhY2UoYmFzZXVybCk7XG4gICAgICAgIH1cbiAgICB9IFxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYmFzZXVybCdzIHBhdGguIFxuICAgICAqL1xuICAgIGdldEJhc2VVUkwgPSAoKSA6IHN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2V1cmw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYmFzZXVybCdzIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGdldERCID0gKCk6U3RvcmVBUEkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY29yZSBSZWZlcmVuY2UgdG8gdGhlIFNsb3BlcyBpbnN0YW5jZSB1c2luZyB0aGlzIGJhc2V1cmxcbiAgICAgKiBAcGFyYW0gYmFzZXVybCBQYXRoIHRvIHRoZSBiYXNldXJsIC0gZXg6IFwiL2V4dC9iYy9hdm1cIlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNvcmU6U2xvcGVzQ29yZSwgYmFzZXVybDpzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb3JlID0gY29yZTtcbiAgICAgICAgdGhpcy5zZXRCYXNlVVJMKGJhc2V1cmwpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpSUENBUEkgZXh0ZW5kcyBBUElCYXNlIHtcbiAgICBwcm90ZWN0ZWQganJwY1ZlcnNpb246c3RyaW5nID0gXCIyLjBcIjtcbiAgICBwcm90ZWN0ZWQgcnBjaWQgPSAxO1xuICAgIGNhbGxNZXRob2QgPSBhc3luYyAobWV0aG9kOnN0cmluZywgcGFyYW1zPzpBcnJheTxvYmplY3Q+IHwgb2JqZWN0LCBiYXNldXJsPzpzdHJpbmcpOlByb21pc2U8UmVxdWVzdFJlc3BvbnNlRGF0YT4gPT4ge1xuICAgICAgICBsZXQgZXAgPSBiYXNldXJsID8gYmFzZXVybCA6IHRoaXMuYmFzZXVybDtcbiAgICAgICAgbGV0IHJwYzpvYmplY3QgPSB7fTtcbiAgICAgICAgcnBjW1wiaWRcIl0gPSB0aGlzLnJwY2lkO1xuICAgICAgICBycGNbXCJtZXRob2RcIl0gPSBtZXRob2Q7XG5cbiAgICAgICAgLy8gU2V0IHBhcmFtZXRlcnMgaWYgZXhpc3RzXG4gICAgICAgIGlmKHBhcmFtcyl7XG4gICAgICAgICAgICBycGNbJ3BhcmFtcyddID0gcGFyYW1zO1xuICAgICAgICB9IGVsc2UgaWYodGhpcy5qcnBjVmVyc2lvbiA9PSBcIjEuMFwiKXtcbiAgICAgICAgICAgIHJwY1tcInBhcmFtc1wiXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYodGhpcy5qcnBjVmVyc2lvbiAhPSBcIjEuMFwiKSB7XG4gICAgICAgICAgICBycGNbXCJqc29ucnBjXCJdID0gdGhpcy5qcnBjVmVyc2lvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzOm9iamVjdCA9IHtcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOFwifTtcblxuICAgICAgICBsZXQgYXhDb25mOkF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgICAgICAgIGJhc2VVUkw6dGhpcy5jb3JlLmdldFByb3RvY29sKCkrXCI6Ly9cIit0aGlzLmNvcmUuZ2V0SVAoKStcIjpcIit0aGlzLmNvcmUuZ2V0UG9ydCgpLFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb3JlLnBvc3QoZXAsIHt9LCBKU09OLnN0cmluZ2lmeShycGMpLCBoZWFkZXJzLCBheENvbmYpLnRoZW4oIChyZXNwOlJlcXVlc3RSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgICAgIGlmKHJlc3Auc3RhdHVzID49IDIwMCAmJiByZXNwLnN0YXR1cyA8IDMwMCl7XG4gICAgICAgICAgICAgICAgdGhpcy5ycGNpZCArPSAxO1xuICAgICAgICAgICAgICAgIGlmKHR5cGVvZiByZXNwLmRhdGEgPT09IFwic3RyaW5nXCIpe1xuICAgICAgICAgICAgICAgICAgICByZXNwLmRhdGEgPSBKU09OLnBhcnNlKHJlc3AuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZih0eXBlb2YgcmVzcC5kYXRhID09PSAnb2JqZWN0JyAmJiAnZXJyb3InIGluIHJlc3AuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciByZXR1cm5lZDogXCIgKyBKU09OLnN0cmluZ2lmeShyZXNwLmRhdGEpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gICBcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJwY2lkLCBhIHN0cmljdGx5LWluY3JlYXNpbmcgbnVtYmVyLCBzdGFydGluZyBmcm9tIDEsIGluZGljYXRpbmcgdGhlIG5leHQgcmVxdWVzdCBJRCB0aGF0IHdpbGwgYmUgc2VudC5cbiAgICAgKi9cbiAgICBnZXRSUENJRCA9ICgpOm51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJwY2lkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBjb3JlIFJlZmVyZW5jZSB0byB0aGUgU2xvcGVzIGluc3RhbmNlIHVzaW5nIHRoaXMgZW5kcG9pbnRcbiAgICAgKiBAcGFyYW0gYmFzZXVybCBQYXRoIG9mIHRoZSBBUElzIGJhc2V1cmwgLSBleDogXCIvZXh0L2JjL2F2bVwiXG4gICAgICogQHBhcmFtIGpycGNWZXJzaW9uIFRoZSBqcnBjIHZlcnNpb24gdG8gdXNlLCBkZWZhdWx0IFwiMi4wXCIuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY29yZTpTbG9wZXNDb3JlLCBiYXNldXJsOnN0cmluZywganJwY1ZlcnNpb246c3RyaW5nID0gXCIyLjBcIikge1xuICAgICAgICBzdXBlcihjb3JlLCBiYXNldXJsKTtcbiAgICAgICAgdGhpcy5qcnBjVmVyc2lvbiA9IGpycGNWZXJzaW9uO1xuICAgICAgICB0aGlzLnJwY2lkID0gMTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2xhc3MgZm9yIHJlcHJlc2VudGluZyBhIHByaXZhdGUgYW5kIHB1YmxpYyBrZXlwYWlyIGluIFNsb3Blcy4gXG4gKiBBbGwgQVBJcyB0aGF0IG5lZWQga2V5IHBhaXJzIHNob3VsZCBleHRlbmQgb24gdGhpcyBjbGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtleVBhaXIge1xuICAgIHByb3RlY3RlZCBwdWJrOkJ1ZmZlcjtcbiAgICBwcm90ZWN0ZWQgcHJpdms6QnVmZmVyO1xuICAgIHByb3RlY3RlZCBjaGFpbmlkOnN0cmluZyA9IFwiXCI7XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBuZXcga2V5cGFpci5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gZW50cm9weSBPcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIHByb2R1Y2Ugc2VjdXJlIGtleXNcbiAgICAgKi9cbiAgICBnZW5lcmF0ZUtleTooZW50cm9weT86QnVmZmVyKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEltcG9ydHMgYSBwcml2YXRlIGtleSBhbmQgZ2VuZXJhdGVzIHRoZSBhcHByb3ByaWF0ZSBwdWJsaWMga2V5LlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwcml2ayBBIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IHJlcHJlc2VudGluZyB0aGUgcHJpdmF0ZSBrZXkgXG4gICAgICogXG4gICAgICogQHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlXG4gICAgICovXG4gICAgaW1wb3J0S2V5Oihwcml2azpCdWZmZXIpID0+IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIG1lc3NhZ2UsIHNpZ25zIGl0LCBhbmQgcmV0dXJucyB0aGUgc2lnbmF0dXJlLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdG8gc2lnblxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gY29udGFpbmluZyB0aGUgc2lnbmF0dXJlXG4gICAgICovXG4gICAgc2lnbjoobXNnOkJ1ZmZlcikgPT4gQnVmZmVyO1xuXG4gICAgLyoqXG4gICAgICogUmVjb3ZlcnMgdGhlIHB1YmxpYyBrZXkgb2YgYSBtZXNzYWdlIHNpZ25lciBmcm9tIGEgbWVzc2FnZSBhbmQgaXRzIGFzc29jaWF0ZWQgc2lnbmF0dXJlLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdGhhdCdzIHNpZ25lZFxuICAgICAqIEBwYXJhbSBzaWcgVGhlIHNpZ25hdHVyZSB0aGF0J3Mgc2lnbmVkIG9uIHRoZSBtZXNzYWdlXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSBjb250YWluaW5nIHRoZSBwdWJsaWMga2V5IG9mIHRoZSBzaWduZXJcbiAgICAgKi9cbiAgICByZWNvdmVyOihtc2c6QnVmZmVyLCBzaWc6QnVmZmVyKSA9PiBCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGF0IHRoZSBwcml2YXRlIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3ZpZGVkIHB1YmxpYyBrZXkgcHJvZHVjZXMgdGhlIHNpZ25hdHVyZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuXG4gICAgICogXG4gICAgICogQHBhcmFtIG1zZyBUaGUgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNpZ25hdHVyZVxuICAgICAqIEBwYXJhbSBzaWcgVGhlIHNpZ25hdHVyZSBvZiB0aGUgc2lnbmVkIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcHViayBUaGUgcHVibGljIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIG1lc3NhZ2Ugc2lnbmF0dXJlXG4gICAgICogXG4gICAgICogQHJldHVybnMgVHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlXG4gICAgICovXG4gICAgdmVyaWZ5Oihtc2c6QnVmZmVyLCBzaWc6QnVmZmVyLCBwdWJrOkJ1ZmZlcikgPT4gYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIHByaXZhdGUga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gY29udGFpbmluZyB0aGUgcHJpdmF0ZSBrZXlcbiAgICAgKi9cbiAgICBnZXRQcml2YXRlS2V5ID0gKCk6QnVmZmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJpdms7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgcHVibGljIGtleS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IGNvbnRhaW5pbmcgdGhlIHB1YmxpYyBrZXlcbiAgICAgKi9cbiAgICBnZXRQdWJsaWNLZXkgPSAoKTpCdWZmZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wdWJrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByaXZhdGUga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwdWJsaWMga2V5XG4gICAgICovXG4gICAgZ2V0UHJpdmF0ZUtleVN0cmluZzooKSA9PiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwdWJsaWMga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwdWJsaWMga2V5XG4gICAgICovXG4gICAgZ2V0UHVibGljS2V5U3RyaW5nOigpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFkZHJlc3MuXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSAgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFkZHJlc3NcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzOigpID0+IEJ1ZmZlcjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFkZHJlc3MncyBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFkZHJlc3NcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzU3RyaW5nOigpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNoYWluSUQgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIFRoZSBbW0tleVBhaXJdXSdzIGNoYWluSURcbiAgICAgKi9cbiAgICBnZXRDaGFpbklEID0gKCk6c3RyaW5nID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhaW5pZFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRoZSBjaGFpbklEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY2hhaW5pZCBTdHJpbmcgZm9yIHRoZSBjaGFpbklEXG4gICAgICovXG4gICAgc2V0Q2hhaW5JRCA9IChjaGFpbmlkOnN0cmluZyk6dm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY2hhaW5pZCA9IGNoYWluaWQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoY2hhaW5pZDpzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jaGFpbmlkID0gY2hhaW5pZFxuICAgIH1cbn1cblxuLyoqXG4gKiBDbGFzcyBmb3IgcmVwcmVzZW50aW5nIGEga2V5IGNoYWluIGluIFNsb3Blcy4gXG4gKiBBbGwgZW5kcG9pbnRzIHRoYXQgbmVlZCBrZXkgY2hhaW5zIHNob3VsZCBleHRlbmQgb24gdGhpcyBjbGFzcy5cbiAqIFxuICogQHR5cGVwYXJhbSBLUENsYXNzIGV4dGVuZGluZyBbW0tleVBhaXJdXSB3aGljaCBpcyB1c2VkIGFzIHRoZSBrZXkgaW4gW1tLZXlDaGFpbl1dXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlDaGFpbjxLUENsYXNzIGV4dGVuZHMgS2V5UGFpcj4ge1xuICAgIHByb3RlY3RlZCBrZXlzOntbYWRkcmVzczogc3RyaW5nXTogS1BDbGFzc30gPSB7fTtcbiAgICBwcm90ZWN0ZWQgY2hhaW5pZDpzdHJpbmcgPSBcIlwiO1xuXG4gICAgLyoqXG4gICAgICogTWFrZXMgYSBuZXcgW1tLZXlQYWlyXV0sIHJldHVybnMgdGhlIGFkZHJlc3MuXG4gICAgICogXG4gICAgICogQHBhcmFtIGVudHJvcHkgT3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgbWF5IGJlIG5lY2Vzc2FyeSB0byBwcm9kdWNlIHNlY3VyZSBrZXlzXG4gICAgICogXG4gICAgICogQHJldHVybnMgQWRkcmVzcyBvZiB0aGUgbmV3IFtbS2V5UGFpcl1dXG4gICAgICovXG4gICAgbWFrZUtleTooZW50cm9weT86QnVmZmVyKSA9PiBCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhIHByaXZhdGUga2V5LCBtYWtlcyBhIG5ldyBbW0tleVBhaXJdXSwgcmV0dXJucyB0aGUgYWRkcmVzcy5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcHJpdmsgQSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSByZXByZXNlbnRpbmcgdGhlIHByaXZhdGUga2V5IFxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEFkZHJlc3Mgb2YgdGhlIG5ldyBbW0tleVBhaXJdXVxuICAgICAqL1xuICAgIGltcG9ydEtleToocHJpdms6QnVmZmVyKSA9PiBCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIGFycmF5IG9mIGFkZHJlc3NlcyBzdG9yZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSAgcmVwcmVzZW50YXRpb25zIG9mIHRoZSBhZGRyZXNzZXNcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzZXMgPSAoKTpBcnJheTxCdWZmZXI+ID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5rZXlzKS5tYXAoa3AgPT4ga3AuZ2V0QWRkcmVzcygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIGFycmF5IG9mIGFkZHJlc3NlcyBzdG9yZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmcgcmVwcmVzZW50YXRpb25zIG9mIHRoZSBhZGRyZXNzZXNcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzU3RyaW5ncyA9ICgpOkFycmF5PHN0cmluZz4gPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmtleXMpLm1hcChrcCA9PiBrcC5nZXRBZGRyZXNzU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgdGhlIGtleSBwYWlyIHRvIHRoZSBsaXN0IG9mIHRoZSBrZXlzIG1hbmFnZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gbmV3S2V5IEEga2V5IHBhaXIgb2YgdGhlIGFwcHJvcHJpYXRlIGNsYXNzIHRvIGJlIGFkZGVkIHRvIHRoZSBbW0tleUNoYWluXV1cbiAgICAgKi9cbiAgICBhZGRLZXkgPSAobmV3S2V5OktQQ2xhc3MpID0+IHtcbiAgICAgICAgbmV3S2V5LnNldENoYWluSUQodGhpcy5jaGFpbmlkKTtcbiAgICAgICAgdGhpcy5rZXlzW25ld0tleS5nZXRBZGRyZXNzKCkudG9TdHJpbmcoXCJoZXhcIildID0gbmV3S2V5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGtleSBwYWlyIGZyb20gdGhlIGxpc3Qgb2YgdGhleSBrZXlzIG1hbmFnZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0ga2V5IEEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gZm9yIHRoZSBhZGRyZXNzIG9yIEtQQ2xhc3MgdG8gcmVtb3ZlXG4gICAgICogXG4gICAgICogQHJldHVybnMgVGhlIGJvb2xlYW4gdHJ1ZSBpZiBhIGtleSB3YXMgcmVtb3ZlZC5cbiAgICAgKi9cbiAgICByZW1vdmVLZXkgPSAoa2V5OktQQ2xhc3MgfCBCdWZmZXIpID0+IHtcbiAgICAgICAgbGV0IGthZGRyOnN0cmluZztcbiAgICAgICAgaWYoa2V5IGluc3RhbmNlb2YgQnVmZmVyKXtcbiAgICAgICAgICAgIGthZGRyID0ga2V5LnRvU3RyaW5nKFwiaGV4XCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAga2FkZHIgPSBrZXkuZ2V0QWRkcmVzcygpLnRvU3RyaW5nKFwiaGV4XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGthZGRyIGluIHRoaXMua2V5cyl7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5rZXlzW2thZGRyXTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZXJlIGlzIGEga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvdmlkZWQgYWRkcmVzcy5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYWRkcmVzcyBUaGUgYWRkcmVzcyB0byBjaGVjayBmb3IgZXhpc3RlbmNlIGluIHRoZSBrZXlzIGRhdGFiYXNlXG4gICAgICogXG4gICAgICogQHJldHVybnMgVHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBub3QgZm91bmRcbiAgICAgKi9cbiAgICBoYXNLZXkgPSAoYWRkcmVzczpCdWZmZXIpOmJvb2xlYW4gPT4ge1xuICAgICAgICByZXR1cm4gKGFkZHJlc3MudG9TdHJpbmcoXCJoZXhcIikgaW4gdGhpcy5rZXlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBbW0tleVBhaXJdXSBsaXN0ZWQgdW5kZXIgdGhlIHByb3ZpZGVkIGFkZHJlc3NcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYWRkcmVzcyBUaGUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gb2YgdGhlIGFkZHJlc3MgdG8gcmV0cmlldmUgZnJvbSB0aGUga2V5cyBkYXRhYmFzZVxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBbW0tleVBhaXJdXSBpbiB0aGUga2V5cyBkYXRhYmFzZVxuICAgICAqL1xuICAgIGdldEtleSA9IChhZGRyZXNzOkJ1ZmZlcik6IEtQQ2xhc3MgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlzW2FkZHJlc3MudG9TdHJpbmcoXCJoZXhcIildO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNoYWluSUQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgW1tLZXlDaGFpbl1dLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIFRoZSBbW0tleUNoYWluXV0ncyBjaGFpbklEXG4gICAgICovXG4gICAgZ2V0Q2hhaW5JRCA9ICgpOnN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYWluaWRcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0aGUgY2hhaW5JRCBhc3NvY2lhdGVkIHdpdGggdGhpcyBbW0tleUNoYWluXV0gYW5kIGFsbCBhc3NvY2lhdGVkIGtleXBhaXJzLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBjaGFpbmlkIFN0cmluZyBmb3IgdGhlIGNoYWluSURcbiAgICAgKi9cbiAgICBzZXRDaGFpbklEID0gKGNoYWluaWQ6c3RyaW5nKTp2b2lkID0+IHtcbiAgICAgICAgdGhpcy5jaGFpbmlkID0gY2hhaW5pZDtcbiAgICAgICAgZm9yKGxldCBhZGRyZXNzIGluIHRoaXMua2V5cyl7XG4gICAgICAgICAgICB0aGlzLmtleXNbYWRkcmVzc10uc2V0Q2hhaW5JRChjaGFpbmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaW5zdGFuY2Ugb2YgW1tLZXlDaGFpbl1dLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNoYWluaWQ6c3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY2hhaW5pZCA9IGNoYWluaWQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIHRoYXQgaW1wbGVtZW50cyBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciBtYW5hZ2luZyBhIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IG9mIGFuIGV4YWN0IGxlbmd0aC5cbiAqIFxuICogQ3JlYXRlIGEgY2xhc3MgdGhhdCBleHRlbmRzIHRoaXMgb25lIGFuZCBvdmVycmlkZSBic2l6ZSB0byBtYWtlIGl0IHZhbGlkYXRlIGZvciBleGFjdGx5IHRoZSBjb3JyZWN0IGxlbmd0aC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5CeXRlcyB7XG4gICAgcHJvdGVjdGVkIGJ5dGVzOkJ1ZmZlcjtcbiAgICBwcm90ZWN0ZWQgYnNpemU6bnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBUaGUgZXhhY3QgbGVuZ3RoIHJlcXVpcmVtZW50IG9mIHRoaXMgY2xhc3NcbiAgICAgKi9cbiAgICBnZXRTaXplID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ic2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIGJhc2UtNTggZW5jb2RlZCBzdHJpbmcsIHZlcmlmaWVzIGl0cyBsZW5ndGgsIGFuZCBzdG9yZXMgaXQuXG4gICAgICogXG4gICAgICogQHJldHVybnMgVGhlIHNpemUgb2YgdGhlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9XG4gICAgICovXG4gICAgZnJvbVN0cmluZyhiNThzdHI6c3RyaW5nKTpudW1iZXIge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5mcm9tQnVmZmVyKGJpbnRvb2xzLmI1OFRvQnVmZmVyKGI1OHN0cikpO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxldCBlbXNnOnN0cmluZyA9IFwiRXJyb3IgLSBOQnl0ZXMuZnJvbVN0cmluZzogXCIgKyBlO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlbXNnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ic2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIFtbQnVmZmVyXV0sIHZlcmlmaWVzIGl0cyBsZW5ndGgsIGFuZCBzdG9yZXMgaXQuIFxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIFRoZSBzaXplIG9mIHRoZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfVxuICAgICAqL1xuICAgIGZyb21CdWZmZXIoYnVmZjpCdWZmZXIpOm51bWJlciB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZihidWZmLmxlbmd0aCAhPSB0aGlzLmJzaXplKXtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJ1ZmZlciBsZW5ndGggbXVzdCBiZSBleGFjdGx5IFwiICsgdGhpcy5ic2l6ZSArIFwiIGJ5dGVzLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuZnJvbShidWZmKTtcbiAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgbGV0IGVtc2c6c3RyaW5nID0gXCJFcnJvciAtIE5CeXRlcy5mcm9tQnVmZmVyOiBcIiArIGU7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVtc2cpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmJzaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHN0b3JlZCB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgc3RvcmVkIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9XG4gICAgICovXG4gICAgdG9CdWZmZXIoKTpCdWZmZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5ieXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgYmFzZS01OCBzdHJpbmcgb2YgdGhlIHN0b3JlZCB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBIGJhc2UtNTggc3RyaW5nIG9mIHRoZSBzdG9yZWQge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn1cbiAgICAgKi9cbiAgICB0b1N0cmluZygpOnN0cmluZyB7XG4gICAgICAgIHJldHVybiBiaW50b29scy5idWZmZXJUb0I1OCh0aGlzLnRvQnVmZmVyKCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIFtbTkJ5dGVzXV0uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuXG5sZXQgbjJfYXZtOm9iamVjdCA9IHtcbiAgICBcImJsb2NrY2hhaW5JRFwiOiBcIm0zODNKeW40ejlrWW15TWFtakh3b0V4b2NSUlY3b25kc2NpODYyYmJ2MUZTcnF2SDlcIixcbiAgICBcImFsaWFzXCI6IFwiWFwiLFxuICAgIFwidm1cIjogXCJhdm1cIlxufTtcblxubGV0IG4yX3BsYXRmb3JtOm9iamVjdCA9ICB7XG4gICAgXCJibG9ja2NoYWluSURcIjogXCJcIixcbiAgICBcImFsaWFzXCI6IFwiUFwiLFxuICAgIFwidm1cIjogXCJwbGF0Zm9ybVwiXG59O1xuXG5sZXQgbjJfY29udHJhY3RzOm9iamVjdCA9IHtcbiAgICBcImJsb2NrY2hhaW5JRFwiOiBcIlwiLFxuICAgIFwiYWxpYXNcIjogXCJDXCIsXG4gICAgXCJ2bVwiOiBcImNvbnRyYWN0c1wiXG59XG5cbmxldCBuMTIzNDVfYXZtOm9iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIG4yX2F2bSk7XG5uMTIzNDVfYXZtW1wiYmxvY2tjaGFpbklEXCJdID0gXCJpOEt0SzJLd0xpMW83V2FWQmJFS3BSTFB0QUVZYXlmb3B0cUFGWXhmUWdydXMxZzZtXCI7XG5sZXQgbjEyMzQ1X3BsYXRmb3JtID0gT2JqZWN0LmFzc2lnbih7fSwgbjJfcGxhdGZvcm0pO1xubjEyMzQ1X3BsYXRmb3JtW1wiYmxvY2tjaGFpbklEXCJdID0gXCIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZXCI7XG5sZXQgbjEyMzQ1X2NvbnRyYWN0cyA9IE9iamVjdC5hc3NpZ24oe30sIG4yX2NvbnRyYWN0cyk7XG5uMTIzNDVfcGxhdGZvcm1bXCJibG9ja2NoYWluSURcIl0gPSBcIk1USG9aQVAzZ0dIQjRjQVVwRkIxQ3VZbmgzdURvTWt0ZTZGakxiOVNuNUh4OEJrdmJcIjtcblxuZXhwb3J0IGNsYXNzIERlZmF1bHRzIHtcbiAgICBzdGF0aWMgbmV0d29yayA9IHtcbiAgICAgICAgXCIxXCI6IHt9LCAvL3VwZGF0ZSBiZWZvcmUgbWFpbm5ldFxuICAgICAgICAvKiBcbiAgICAgICAgVGhpcyB3aWxsIGJlIHNldCBvbiB0ZXN0IG5ldHdvcmsuXG4gICAgICAgIFwiMlwiOiB7XG4gICAgICAgICAgICBcImF2bVwiOiBuMl9hdm0sXG4gICAgICAgICAgICBcIlhcIjogbjJfYXZtLFxuICAgICAgICAgICAgXCJtMzgzSnluNHo5a1lteU1hbWpId29FeG9jUlJWN29uZHNjaTg2MmJidjFGU3Jxdkg5XCI6IG4yX2F2bSxcbiAgICAgICAgICAgIFwicGxhdGZvcm1cIjogbjJfcGxhdGZvcm0sXG4gICAgICAgICAgICBcIlBcIjogbjJfcGxhdGZvcm0sXG4gICAgICAgICAgICBcIkJDSUQxXCI6IG4yX3BsYXRmb3JtLFxuICAgICAgICAgICAgXCJjb250cmFjdHNcIjogbjJfY29udHJhY3RzLFxuICAgICAgICAgICAgXCJDXCI6IG4yX2NvbnRyYWN0cyxcbiAgICAgICAgICAgIFwiQkNJRDJcIjogbjJfY29udHJhY3RzXG4gICAgICAgIH1cbiAgICAgICAgKi9cbiAgICAgICAgXCIxMjM0NVwiOiB7XG4gICAgICAgICAgICBcImF2bVwiOiBuMTIzNDVfYXZtLFxuICAgICAgICAgICAgXCJYXCI6IG4xMjM0NV9hdm0sXG4gICAgICAgICAgICBcImk4S3RLMkt3TGkxbzdXYVZCYkVLcFJMUHRBRVlheWZvcHRxQUZZeGZRZ3J1czFnNm1cIjogbjEyMzQ1X2F2bSxcbiAgICAgICAgICAgIFwicGxhdGZvcm1cIjogbjEyMzQ1X3BsYXRmb3JtLFxuICAgICAgICAgICAgXCJQXCI6IG4xMjM0NV9wbGF0Zm9ybSxcbiAgICAgICAgICAgIFwiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWVwiOiBuMTIzNDVfcGxhdGZvcm0sXG4gICAgICAgICAgICBcImNvbnRyYWN0c1wiOiBuMTIzNDVfY29udHJhY3RzLFxuICAgICAgICAgICAgXCJDXCI6IG4xMjM0NV9jb250cmFjdHMsXG4gICAgICAgICAgICBcIk1USG9aQVAzZ0dIQjRjQVVwRkIxQ3VZbmgzdURvTWt0ZTZGakxiOVNuNUh4OEJrdmJcIjogbjEyMzQ1X2NvbnRyYWN0c1xuICAgICAgICB9XG4gICAgfTtcbn0iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFJQSxvQ0FBaUM7QUFDakMsOENBQXNCO0FBRXRCLDBEQUFtQztBQUluQzs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLGtCQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtDQU0vQjtBQU5ELGtEQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFzQixPQUFPO0lBcUN6Qjs7OztPQUlHO0lBQ0gsWUFBWSxJQUFlLEVBQUUsT0FBYztRQXJDM0M7Ozs7V0FJRztRQUNILGVBQVUsR0FBRyxDQUFDLE9BQWMsRUFBRSxFQUFFO1lBQzVCLElBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBQztnQkFDbkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUN2QixJQUFJLENBQUMsRUFBRSxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEM7UUFDTCxDQUFDLENBQUE7UUFFRDs7V0FFRztRQUNILGVBQVUsR0FBRyxHQUFZLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxD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ckIsbURBQW1ELEVBQUUsZ0JBQWdCO0tBQ3hFO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBVdGlsc1xuICovXG5pbXBvcnQgU2xvcGVzQ29yZSBmcm9tICcuLi9zbG9wZXMnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSBcImJ1ZmZlci9cIjtcbmltcG9ydCBEQiBmcm9tIFwiLi9kYlwiO1xuaW1wb3J0IHsgU3RvcmVBUEkgfSBmcm9tICdzdG9yZTInO1xuaW1wb3J0IEJpblRvb2xzICBmcm9tICcuL2JpbnRvb2xzJztcbmltcG9ydCB7IENsaWVudFJlcXVlc3QgfSBmcm9tIFwiaHR0cFwiO1xuaW1wb3J0IHsgQXhpb3NSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnYXhpb3MnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuY29uc3QgYmludG9vbHMgPSBCaW5Ub29scy5nZXRJbnN0YW5jZSgpO1xuXG4vKipcbiAqIFJlc3BvbnNlIGRhdGEgZm9yIEhUVFAgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0UmVzcG9uc2VEYXRhIHtcbiAgICBkYXRhOiBzdHJpbmcgfCBvYmplY3QgfCBBcnJheTxvYmplY3Q+O1xuICAgIGhlYWRlcnM6b2JqZWN0O1xuICAgIHN0YXR1czogbnVtYmVyO1xuICAgIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgICByZXF1ZXN0OkNsaWVudFJlcXVlc3QgfCBYTUxIdHRwUmVxdWVzdDtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBkZWZpbmluZyBhIGdlbmVyaWMgZW5kcG9pbnQgdGhhdCBhbGwgZW5kcG9pbnRzIG11c3QgaW1wbGVtZW50IChleHRlbmQpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVBJQmFzZSB7XG4gICAgcHJvdGVjdGVkIGNvcmU6U2xvcGVzQ29yZTtcbiAgICBwcm90ZWN0ZWQgYmFzZXVybDpzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGRiOlN0b3JlQVBJO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcGF0aCBvZiB0aGUgQVBJcyBiYXNldXJsLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBiYXNldXJsIFBhdGggb2YgdGhlIEFQSXMgYmFzZXVybCAtIGV4OiBcIi9leHQvYmMvYXZtXCJcbiAgICAgKi9cbiAgICBzZXRCYXNlVVJMID0gKGJhc2V1cmw6c3RyaW5nKSA9PiB7XG4gICAgICAgIGlmKHRoaXMuZGIgJiYgdGhpcy5iYXNldXJsICE9PSBiYXNldXJsKXtcbiAgICAgICAgICAgIGxldCBiYWNrdXAgPSB0aGlzLmRiLmdldEFsbCgpO1xuICAgICAgICAgICAgdGhpcy5kYi5jbGVhckFsbCgpO1xuICAgICAgICAgICAgdGhpcy5iYXNldXJsID0gYmFzZXVybDtcbiAgICAgICAgICAgIHRoaXMuZGIgPSBEQi5nZXROYW1lc3BhY2UoYmFzZXVybCk7XG4gICAgICAgICAgICB0aGlzLmRiLnNldEFsbChiYWNrdXAsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5iYXNldXJsID0gYmFzZXVybDtcbiAgICAgICAgICAgIHRoaXMuZGIgPSBEQi5nZXROYW1lc3BhY2UoYmFzZXVybCk7XG4gICAgICAgIH1cbiAgICB9IFxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYmFzZXVybCdzIHBhdGguIFxuICAgICAqL1xuICAgIGdldEJhc2VVUkwgPSAoKSA6IHN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2V1cmw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYmFzZXVybCdzIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGdldERCID0gKCk6U3RvcmVBUEkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY29yZSBSZWZlcmVuY2UgdG8gdGhlIFNsb3BlcyBpbnN0YW5jZSB1c2luZyB0aGlzIGJhc2V1cmxcbiAgICAgKiBAcGFyYW0gYmFzZXVybCBQYXRoIHRvIHRoZSBiYXNldXJsIC0gZXg6IFwiL2V4dC9iYy9hdm1cIlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNvcmU6U2xvcGVzQ29yZSwgYmFzZXVybDpzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb3JlID0gY29yZTtcbiAgICAgICAgdGhpcy5zZXRCYXNlVVJMKGJhc2V1cmwpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEpSUENBUEkgZXh0ZW5kcyBBUElCYXNlIHtcbiAgICBwcm90ZWN0ZWQganJwY1ZlcnNpb246c3RyaW5nID0gXCIyLjBcIjtcbiAgICBwcm90ZWN0ZWQgcnBjaWQgPSAxO1xuICAgIGNhbGxNZXRob2QgPSBhc3luYyAobWV0aG9kOnN0cmluZywgcGFyYW1zPzpBcnJheTxvYmplY3Q+IHwgb2JqZWN0LCBiYXNldXJsPzpzdHJpbmcpOlByb21pc2U8UmVxdWVzdFJlc3BvbnNlRGF0YT4gPT4ge1xuICAgICAgICBsZXQgZXAgPSBiYXNldXJsID8gYmFzZXVybCA6IHRoaXMuYmFzZXVybDtcbiAgICAgICAgbGV0IHJwYzpvYmplY3QgPSB7fTtcbiAgICAgICAgcnBjW1wiaWRcIl0gPSB0aGlzLnJwY2lkO1xuICAgICAgICBycGNbXCJtZXRob2RcIl0gPSBtZXRob2Q7XG5cbiAgICAgICAgLy8gU2V0IHBhcmFtZXRlcnMgaWYgZXhpc3RzXG4gICAgICAgIGlmKHBhcmFtcyl7XG4gICAgICAgICAgICBycGNbJ3BhcmFtcyddID0gcGFyYW1zO1xuICAgICAgICB9IGVsc2UgaWYodGhpcy5qcnBjVmVyc2lvbiA9PSBcIjEuMFwiKXtcbiAgICAgICAgICAgIHJwY1tcInBhcmFtc1wiXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYodGhpcy5qcnBjVmVyc2lvbiAhPSBcIjEuMFwiKSB7XG4gICAgICAgICAgICBycGNbXCJqc29ucnBjXCJdID0gdGhpcy5qcnBjVmVyc2lvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzOm9iamVjdCA9IHtcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOFwifTtcblxuICAgICAgICBsZXQgYXhDb25mOkF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgICAgICAgIGJhc2VVUkw6dGhpcy5jb3JlLmdldFByb3RvY29sKCkrXCI6Ly9cIit0aGlzLmNvcmUuZ2V0SVAoKStcIjpcIit0aGlzLmNvcmUuZ2V0UG9ydCgpLFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb3JlLnBvc3QoZXAsIHt9LCBKU09OLnN0cmluZ2lmeShycGMpLCBoZWFkZXJzLCBheENvbmYpLnRoZW4oIChyZXNwOlJlcXVlc3RSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgICAgIGlmKHJlc3Auc3RhdHVzID49IDIwMCAmJiByZXNwLnN0YXR1cyA8IDMwMCl7XG4gICAgICAgICAgICAgICAgdGhpcy5ycGNpZCArPSAxO1xuICAgICAgICAgICAgICAgIGlmKHR5cGVvZiByZXNwLmRhdGEgPT09IFwic3RyaW5nXCIpe1xuICAgICAgICAgICAgICAgICAgICByZXNwLmRhdGEgPSBKU09OLnBhcnNlKHJlc3AuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZih0eXBlb2YgcmVzcC5kYXRhID09PSAnb2JqZWN0JyAmJiAnZXJyb3InIGluIHJlc3AuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciByZXR1cm5lZDogXCIgKyBKU09OLnN0cmluZ2lmeShyZXNwLmRhdGEpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gICBcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJwY2lkLCBhIHN0cmljdGx5LWluY3JlYXNpbmcgbnVtYmVyLCBzdGFydGluZyBmcm9tIDEsIGluZGljYXRpbmcgdGhlIG5leHQgcmVxdWVzdCBJRCB0aGF0IHdpbGwgYmUgc2VudC5cbiAgICAgKi9cbiAgICBnZXRSUENJRCA9ICgpOm51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJwY2lkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBjb3JlIFJlZmVyZW5jZSB0byB0aGUgU2xvcGVzIGluc3RhbmNlIHVzaW5nIHRoaXMgZW5kcG9pbnRcbiAgICAgKiBAcGFyYW0gYmFzZXVybCBQYXRoIG9mIHRoZSBBUElzIGJhc2V1cmwgLSBleDogXCIvZXh0L2JjL2F2bVwiXG4gICAgICogQHBhcmFtIGpycGNWZXJzaW9uIFRoZSBqcnBjIHZlcnNpb24gdG8gdXNlLCBkZWZhdWx0IFwiMi4wXCIuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY29yZTpTbG9wZXNDb3JlLCBiYXNldXJsOnN0cmluZywganJwY1ZlcnNpb246c3RyaW5nID0gXCIyLjBcIikge1xuICAgICAgICBzdXBlcihjb3JlLCBiYXNldXJsKTtcbiAgICAgICAgdGhpcy5qcnBjVmVyc2lvbiA9IGpycGNWZXJzaW9uO1xuICAgICAgICB0aGlzLnJwY2lkID0gMTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2xhc3MgZm9yIHJlcHJlc2VudGluZyBhIHByaXZhdGUgYW5kIHB1YmxpYyBrZXlwYWlyIGluIFNsb3Blcy4gXG4gKiBBbGwgQVBJcyB0aGF0IG5lZWQga2V5IHBhaXJzIHNob3VsZCBleHRlbmQgb24gdGhpcyBjbGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtleVBhaXIge1xuICAgIHByb3RlY3RlZCBwdWJrOkJ1ZmZlcjtcbiAgICBwcm90ZWN0ZWQgcHJpdms6QnVmZmVyO1xuICAgIHByb3RlY3RlZCBjaGFpbmlkOnN0cmluZyA9IFwiXCI7XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBuZXcga2V5cGFpci5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gZW50cm9weSBPcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIHByb2R1Y2Ugc2VjdXJlIGtleXNcbiAgICAgKi9cbiAgICBnZW5lcmF0ZUtleTooZW50cm9weT86QnVmZmVyKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEltcG9ydHMgYSBwcml2YXRlIGtleSBhbmQgZ2VuZXJhdGVzIHRoZSBhcHByb3ByaWF0ZSBwdWJsaWMga2V5LlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBwcml2ayBBIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IHJlcHJlc2VudGluZyB0aGUgcHJpdmF0ZSBrZXkgXG4gICAgICogXG4gICAgICogQHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlXG4gICAgICovXG4gICAgaW1wb3J0S2V5Oihwcml2azpCdWZmZXIpID0+IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIG1lc3NhZ2UsIHNpZ25zIGl0LCBhbmQgcmV0dXJucyB0aGUgc2lnbmF0dXJlLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdG8gc2lnblxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gY29udGFpbmluZyB0aGUgc2lnbmF0dXJlXG4gICAgICovXG4gICAgc2lnbjoobXNnOkJ1ZmZlcikgPT4gQnVmZmVyO1xuXG4gICAgLyoqXG4gICAgICogUmVjb3ZlcnMgdGhlIHB1YmxpYyBrZXkgb2YgYSBtZXNzYWdlIHNpZ25lciBmcm9tIGEgbWVzc2FnZSBhbmQgaXRzIGFzc29jaWF0ZWQgc2lnbmF0dXJlLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdGhhdCdzIHNpZ25lZFxuICAgICAqIEBwYXJhbSBzaWcgVGhlIHNpZ25hdHVyZSB0aGF0J3Mgc2lnbmVkIG9uIHRoZSBtZXNzYWdlXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSBjb250YWluaW5nIHRoZSBwdWJsaWMga2V5IG9mIHRoZSBzaWduZXJcbiAgICAgKi9cbiAgICByZWNvdmVyOihtc2c6QnVmZmVyLCBzaWc6QnVmZmVyKSA9PiBCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGF0IHRoZSBwcml2YXRlIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3ZpZGVkIHB1YmxpYyBrZXkgcHJvZHVjZXMgdGhlIHNpZ25hdHVyZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuXG4gICAgICogXG4gICAgICogQHBhcmFtIG1zZyBUaGUgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNpZ25hdHVyZVxuICAgICAqIEBwYXJhbSBzaWcgVGhlIHNpZ25hdHVyZSBvZiB0aGUgc2lnbmVkIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcHViayBUaGUgcHVibGljIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIG1lc3NhZ2Ugc2lnbmF0dXJlXG4gICAgICogXG4gICAgICogQHJldHVybnMgVHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlXG4gICAgICovXG4gICAgdmVyaWZ5Oihtc2c6QnVmZmVyLCBzaWc6QnVmZmVyLCBwdWJrOkJ1ZmZlcikgPT4gYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIHByaXZhdGUga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gY29udGFpbmluZyB0aGUgcHJpdmF0ZSBrZXlcbiAgICAgKi9cbiAgICBnZXRQcml2YXRlS2V5ID0gKCk6QnVmZmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJpdms7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgcHVibGljIGtleS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IGNvbnRhaW5pbmcgdGhlIHB1YmxpYyBrZXlcbiAgICAgKi9cbiAgICBnZXRQdWJsaWNLZXkgPSAoKTpCdWZmZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wdWJrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByaXZhdGUga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwdWJsaWMga2V5XG4gICAgICovXG4gICAgZ2V0UHJpdmF0ZUtleVN0cmluZzooKSA9PiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwdWJsaWMga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwdWJsaWMga2V5XG4gICAgICovXG4gICAgZ2V0UHVibGljS2V5U3RyaW5nOigpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFkZHJlc3MuXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSAgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFkZHJlc3NcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzOigpID0+IEJ1ZmZlcjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFkZHJlc3MncyBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFkZHJlc3NcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzU3RyaW5nOigpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNoYWluSUQgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIFRoZSBbW0tleVBhaXJdXSdzIGNoYWluSURcbiAgICAgKi9cbiAgICBnZXRDaGFpbklEID0gKCk6c3RyaW5nID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhaW5pZFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRoZSBjaGFpbklEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY2hhaW5pZCBTdHJpbmcgZm9yIHRoZSBjaGFpbklEXG4gICAgICovXG4gICAgc2V0Q2hhaW5JRCA9IChjaGFpbmlkOnN0cmluZyk6dm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY2hhaW5pZCA9IGNoYWluaWQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoY2hhaW5pZDpzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jaGFpbmlkID0gY2hhaW5pZFxuICAgIH1cbn1cblxuLyoqXG4gKiBDbGFzcyBmb3IgcmVwcmVzZW50aW5nIGEga2V5IGNoYWluIGluIFNsb3Blcy4gXG4gKiBBbGwgZW5kcG9pbnRzIHRoYXQgbmVlZCBrZXkgY2hhaW5zIHNob3VsZCBleHRlbmQgb24gdGhpcyBjbGFzcy5cbiAqIFxuICogQHR5cGVwYXJhbSBLUENsYXNzIGV4dGVuZGluZyBbW0tleVBhaXJdXSB3aGljaCBpcyB1c2VkIGFzIHRoZSBrZXkgaW4gW1tLZXlDaGFpbl1dXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlDaGFpbjxLUENsYXNzIGV4dGVuZHMgS2V5UGFpcj4ge1xuICAgIHByb3RlY3RlZCBrZXlzOntbYWRkcmVzczogc3RyaW5nXTogS1BDbGFzc30gPSB7fTtcbiAgICBwcm90ZWN0ZWQgY2hhaW5pZDpzdHJpbmcgPSBcIlwiO1xuXG4gICAgLyoqXG4gICAgICogTWFrZXMgYSBuZXcgW1tLZXlQYWlyXV0sIHJldHVybnMgdGhlIGFkZHJlc3MuXG4gICAgICogXG4gICAgICogQHBhcmFtIGVudHJvcHkgT3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgbWF5IGJlIG5lY2Vzc2FyeSB0byBwcm9kdWNlIHNlY3VyZSBrZXlzXG4gICAgICogXG4gICAgICogQHJldHVybnMgQWRkcmVzcyBvZiB0aGUgbmV3IFtbS2V5UGFpcl1dXG4gICAgICovXG4gICAgbWFrZUtleTooZW50cm9weT86QnVmZmVyKSA9PiBCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhIHByaXZhdGUga2V5LCBtYWtlcyBhIG5ldyBbW0tleVBhaXJdXSwgcmV0dXJucyB0aGUgYWRkcmVzcy5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcHJpdmsgQSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSByZXByZXNlbnRpbmcgdGhlIHByaXZhdGUga2V5IFxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEFkZHJlc3Mgb2YgdGhlIG5ldyBbW0tleVBhaXJdXVxuICAgICAqL1xuICAgIGltcG9ydEtleToocHJpdms6QnVmZmVyKSA9PiBCdWZmZXI7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIGFycmF5IG9mIGFkZHJlc3NlcyBzdG9yZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfSAgcmVwcmVzZW50YXRpb25zIG9mIHRoZSBhZGRyZXNzZXNcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzZXMgPSAoKTpBcnJheTxCdWZmZXI+ID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5rZXlzKS5tYXAoa3AgPT4ga3AuZ2V0QWRkcmVzcygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIGFycmF5IG9mIGFkZHJlc3NlcyBzdG9yZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmcgcmVwcmVzZW50YXRpb25zIG9mIHRoZSBhZGRyZXNzZXNcbiAgICAgKi9cbiAgICBnZXRBZGRyZXNzU3RyaW5ncyA9ICgpOkFycmF5PHN0cmluZz4gPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmtleXMpLm1hcChrcCA9PiBrcC5nZXRBZGRyZXNzU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgdGhlIGtleSBwYWlyIHRvIHRoZSBsaXN0IG9mIHRoZSBrZXlzIG1hbmFnZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gbmV3S2V5IEEga2V5IHBhaXIgb2YgdGhlIGFwcHJvcHJpYXRlIGNsYXNzIHRvIGJlIGFkZGVkIHRvIHRoZSBbW0tleUNoYWluXV1cbiAgICAgKi9cbiAgICBhZGRLZXkgPSAobmV3S2V5OktQQ2xhc3MpID0+IHtcbiAgICAgICAgbmV3S2V5LnNldENoYWluSUQodGhpcy5jaGFpbmlkKTtcbiAgICAgICAgdGhpcy5rZXlzW25ld0tleS5nZXRBZGRyZXNzKCkudG9TdHJpbmcoXCJoZXhcIildID0gbmV3S2V5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGtleSBwYWlyIGZyb20gdGhlIGxpc3Qgb2YgdGhleSBrZXlzIG1hbmFnZWQgaW4gdGhlIFtbS2V5Q2hhaW5dXS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0ga2V5IEEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gZm9yIHRoZSBhZGRyZXNzIG9yIEtQQ2xhc3MgdG8gcmVtb3ZlXG4gICAgICogXG4gICAgICogQHJldHVybnMgVGhlIGJvb2xlYW4gdHJ1ZSBpZiBhIGtleSB3YXMgcmVtb3ZlZC5cbiAgICAgKi9cbiAgICByZW1vdmVLZXkgPSAoa2V5OktQQ2xhc3MgfCBCdWZmZXIpID0+IHtcbiAgICAgICAgbGV0IGthZGRyOnN0cmluZztcbiAgICAgICAgaWYoa2V5IGluc3RhbmNlb2YgQnVmZmVyKXtcbiAgICAgICAgICAgIGthZGRyID0ga2V5LnRvU3RyaW5nKFwiaGV4XCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAga2FkZHIgPSBrZXkuZ2V0QWRkcmVzcygpLnRvU3RyaW5nKFwiaGV4XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGthZGRyIGluIHRoaXMua2V5cyl7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5rZXlzW2thZGRyXTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZXJlIGlzIGEga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvdmlkZWQgYWRkcmVzcy5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYWRkcmVzcyBUaGUgYWRkcmVzcyB0byBjaGVjayBmb3IgZXhpc3RlbmNlIGluIHRoZSBrZXlzIGRhdGFiYXNlXG4gICAgICogXG4gICAgICogQHJldHVybnMgVHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBub3QgZm91bmRcbiAgICAgKi9cbiAgICBoYXNLZXkgPSAoYWRkcmVzczpCdWZmZXIpOmJvb2xlYW4gPT4ge1xuICAgICAgICByZXR1cm4gKGFkZHJlc3MudG9TdHJpbmcoXCJoZXhcIikgaW4gdGhpcy5rZXlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBbW0tleVBhaXJdXSBsaXN0ZWQgdW5kZXIgdGhlIHByb3ZpZGVkIGFkZHJlc3NcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYWRkcmVzcyBUaGUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gb2YgdGhlIGFkZHJlc3MgdG8gcmV0cmlldmUgZnJvbSB0aGUga2V5cyBkYXRhYmFzZVxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBbW0tleVBhaXJdXSBpbiB0aGUga2V5cyBkYXRhYmFzZVxuICAgICAqL1xuICAgIGdldEtleSA9IChhZGRyZXNzOkJ1ZmZlcik6IEtQQ2xhc3MgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlzW2FkZHJlc3MudG9TdHJpbmcoXCJoZXhcIildO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNoYWluSUQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgW1tLZXlDaGFpbl1dLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIFRoZSBbW0tleUNoYWluXV0ncyBjaGFpbklEXG4gICAgICovXG4gICAgZ2V0Q2hhaW5JRCA9ICgpOnN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYWluaWRcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0aGUgY2hhaW5JRCBhc3NvY2lhdGVkIHdpdGggdGhpcyBbW0tleUNoYWluXV0gYW5kIGFsbCBhc3NvY2lhdGVkIGtleXBhaXJzLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBjaGFpbmlkIFN0cmluZyBmb3IgdGhlIGNoYWluSURcbiAgICAgKi9cbiAgICBzZXRDaGFpbklEID0gKGNoYWluaWQ6c3RyaW5nKTp2b2lkID0+IHtcbiAgICAgICAgdGhpcy5jaGFpbmlkID0gY2hhaW5pZDtcbiAgICAgICAgZm9yKGxldCBhZGRyZXNzIGluIHRoaXMua2V5cyl7XG4gICAgICAgICAgICB0aGlzLmtleXNbYWRkcmVzc10uc2V0Q2hhaW5JRChjaGFpbmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaW5zdGFuY2Ugb2YgW1tLZXlDaGFpbl1dLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNoYWluaWQ6c3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY2hhaW5pZCA9IGNoYWluaWQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIHRoYXQgaW1wbGVtZW50cyBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciBtYW5hZ2luZyBhIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9IG9mIGFuIGV4YWN0IGxlbmd0aC5cbiAqIFxuICogQ3JlYXRlIGEgY2xhc3MgdGhhdCBleHRlbmRzIHRoaXMgb25lIGFuZCBvdmVycmlkZSBic2l6ZSB0byBtYWtlIGl0IHZhbGlkYXRlIGZvciBleGFjdGx5IHRoZSBjb3JyZWN0IGxlbmd0aC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5CeXRlcyB7XG4gICAgcHJvdGVjdGVkIGJ5dGVzOkJ1ZmZlcjtcbiAgICBwcm90ZWN0ZWQgYnNpemU6bnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBUaGUgZXhhY3QgbGVuZ3RoIHJlcXVpcmVtZW50IG9mIHRoaXMgY2xhc3NcbiAgICAgKi9cbiAgICBnZXRTaXplID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ic2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIGJhc2UtNTggZW5jb2RlZCBzdHJpbmcsIHZlcmlmaWVzIGl0cyBsZW5ndGgsIGFuZCBzdG9yZXMgaXQuXG4gICAgICogXG4gICAgICogQHJldHVybnMgVGhlIHNpemUgb2YgdGhlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9XG4gICAgICovXG4gICAgZnJvbVN0cmluZyhiNThzdHI6c3RyaW5nKTpudW1iZXIge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5mcm9tQnVmZmVyKGJpbnRvb2xzLmI1OFRvQnVmZmVyKGI1OHN0cikpO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxldCBlbXNnOnN0cmluZyA9IFwiRXJyb3IgLSBOQnl0ZXMuZnJvbVN0cmluZzogXCIgKyBlO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlbXNnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ic2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIFtbQnVmZmVyXV0sIHZlcmlmaWVzIGl0cyBsZW5ndGgsIGFuZCBzdG9yZXMgaXQuIFxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIFRoZSBzaXplIG9mIHRoZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfVxuICAgICAqL1xuICAgIGZyb21CdWZmZXIoYnVmZjpCdWZmZXIpOm51bWJlciB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZihidWZmLmxlbmd0aCAhPSB0aGlzLmJzaXplKXtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJ1ZmZlciBsZW5ndGggbXVzdCBiZSBleGFjdGx5IFwiICsgdGhpcy5ic2l6ZSArIFwiIGJ5dGVzLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYnl0ZXMgPSBCdWZmZXIuZnJvbShidWZmKTtcbiAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgbGV0IGVtc2c6c3RyaW5nID0gXCJFcnJvciAtIE5CeXRlcy5mcm9tQnVmZmVyOiBcIiArIGU7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVtc2cpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmJzaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHN0b3JlZCB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgc3RvcmVkIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlcnxCdWZmZXJ9XG4gICAgICovXG4gICAgdG9CdWZmZXIoKTpCdWZmZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5ieXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgYmFzZS01OCBzdHJpbmcgb2YgdGhlIHN0b3JlZCB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXJ8QnVmZmVyfS5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBBIGJhc2UtNTggc3RyaW5nIG9mIHRoZSBzdG9yZWQge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn1cbiAgICAgKi9cbiAgICB0b1N0cmluZygpOnN0cmluZyB7XG4gICAgICAgIHJldHVybiBiaW50b29scy5idWZmZXJUb0I1OCh0aGlzLnRvQnVmZmVyKCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIFtbTkJ5dGVzXV0uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuXG5sZXQgbjJfYXZtOm9iamVjdCA9IHtcbiAgICBcImJsb2NrY2hhaW5JRFwiOiBcIjRrdFJqc0FLeGdNcjJhRXp2OVNXbXJVN1hrNUZuaUhVclZDWDRQMVRaU2ZUTFpXRk1cIixcbiAgICBcImFsaWFzXCI6IFwiWFwiLFxuICAgIFwidm1cIjogXCJhdm1cIlxufTtcblxubGV0IG4yX3BsYXRmb3JtOm9iamVjdCA9ICB7XG4gICAgXCJibG9ja2NoYWluSURcIjogXCIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZXCIsXG4gICAgXCJhbGlhc1wiOiBcIlBcIixcbiAgICBcInZtXCI6IFwicGxhdGZvcm1cIlxufTtcblxubGV0IG4yX2NvbnRyYWN0czpvYmplY3QgPSB7XG4gICAgXCJibG9ja2NoYWluSURcIjogXCIybVVZU1hmTHJEdGlnd2J6ajFMeEtWc0h3RUxnaGM1c2lzb1hyekp3THFBQVFIRjRpXCIsXG4gICAgXCJhbGlhc1wiOiBcIkNcIixcbiAgICBcInZtXCI6IFwiY29udHJhY3RzXCJcbn1cblxubGV0IG4xMjM0NV9hdm06b2JqZWN0ID0gT2JqZWN0LmFzc2lnbih7fSwgbjJfYXZtKTtcbm4xMjM0NV9hdm1bXCJibG9ja2NoYWluSURcIl0gPSBcIjRSNXAyUlhER0xxYWlmWkU0aEhXSDlvd2UzNHBmb0JVTG4xRHJRVFdpdmpnOG80YUhcIjtcbmxldCBuMTIzNDVfcGxhdGZvcm0gPSBPYmplY3QuYXNzaWduKHt9LCBuMl9wbGF0Zm9ybSk7XG5uMTIzNDVfcGxhdGZvcm1bXCJibG9ja2NoYWluSURcIl0gPSBcIjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExTHBvWVlcIjtcbmxldCBuMTIzNDVfY29udHJhY3RzID0gT2JqZWN0LmFzc2lnbih7fSwgbjJfY29udHJhY3RzKTtcbm4xMjM0NV9wbGF0Zm9ybVtcImJsb2NrY2hhaW5JRFwiXSA9IFwidFpHbTZSQ2tlR3BWRVRVVHAxMURXM1VZRlptbTY5emZxeGNocEhyU0Y3d2d5OHJtd1wiO1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdHMge1xuICAgIHN0YXRpYyBuZXR3b3JrID0ge1xuICAgICAgICBcIjFcIjoge30sIC8vdXBkYXRlIGJlZm9yZSBtYWlubmV0XG4gICAgICAgIFwiMlwiOiB7XG4gICAgICAgICAgICBcImF2bVwiOiBuMl9hdm0sXG4gICAgICAgICAgICBcIlhcIjogbjJfYXZtLFxuICAgICAgICAgICAgXCI0a3RSanNBS3hnTXIyYUV6djlTV21yVTdYazVGbmlIVXJWQ1g0UDFUWlNmVExaV0ZNXCI6IG4yX2F2bSxcbiAgICAgICAgICAgIFwicGxhdGZvcm1cIjogbjJfcGxhdGZvcm0sXG4gICAgICAgICAgICBcIlBcIjogbjJfcGxhdGZvcm0sXG4gICAgICAgICAgICBcIjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExTHBvWVlcIjogbjJfcGxhdGZvcm0sXG4gICAgICAgICAgICBcImNvbnRyYWN0c1wiOiBuMl9jb250cmFjdHMsXG4gICAgICAgICAgICBcIkNcIjogbjJfY29udHJhY3RzLFxuICAgICAgICAgICAgXCIybVVZU1hmTHJEdGlnd2J6ajFMeEtWc0h3RUxnaGM1c2lzb1hyekp3THFBQVFIRjRpXCI6IG4yX2NvbnRyYWN0c1xuICAgICAgICB9LFxuICAgICAgICBcIjEyMzQ1XCI6IHtcbiAgICAgICAgICAgIFwiYXZtXCI6IG4xMjM0NV9hdm0sXG4gICAgICAgICAgICBcIlhcIjogbjEyMzQ1X2F2bSxcbiAgICAgICAgICAgIFwiNFI1cDJSWERHTHFhaWZaRTRoSFdIOW93ZTM0cGZvQlVMbjFEclFUV2l2amc4bzRhSFwiOiBuMTIzNDVfYXZtLFxuICAgICAgICAgICAgXCJwbGF0Zm9ybVwiOiBuMTIzNDVfcGxhdGZvcm0sXG4gICAgICAgICAgICBcIlBcIjogbjEyMzQ1X3BsYXRmb3JtLFxuICAgICAgICAgICAgXCIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZXCI6IG4xMjM0NV9wbGF0Zm9ybSxcbiAgICAgICAgICAgIFwiY29udHJhY3RzXCI6IG4xMjM0NV9jb250cmFjdHMsXG4gICAgICAgICAgICBcIkNcIjogbjEyMzQ1X2NvbnRyYWN0cyxcbiAgICAgICAgICAgIFwidFpHbTZSQ2tlR3BWRVRVVHAxMURXM1VZRlptbTY5emZxeGNocEhyU0Y3d2d5OHJtd1wiOiBuMTIzNDVfY29udHJhY3RzXG4gICAgICAgIH1cbiAgICB9O1xufSJdfQ== |
@@ -46,3 +46,3 @@ "use strict"; | ||
let out = new outputs_1.SecpOutput(assetIDBuff, new bn_js_1.default(10000), addrs, locktime, 3); | ||
expect(out.getOutputID()).toBe(4); | ||
expect(out.getOutputID()).toBe(7); | ||
expect(JSON.stringify(out.getAddresses().sort())).toStrictEqual(JSON.stringify(addrs.sort())); | ||
@@ -72,2 +72,2 @@ expect(out.getThreshold()).toBe(3); | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdHMvYXBpcy9hdm0vb3V0cHV0cy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQXVCO0FBQ3ZCLG9DQUErQjtBQUMvQixrRUFBMEM7QUFDMUMsa0RBQTZFO0FBRTdFLE1BQU0sUUFBUSxHQUFHLGtCQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFeEMsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDckIsSUFBSSxPQUFPLEdBQVUsa0VBQWtFLENBQUM7SUFDeEYsSUFBSSxXQUFXLEdBQVUsZUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsSUFBSSxLQUFLLEdBQWlCO1FBQ3RCLFFBQVEsQ0FBQyxjQUFjLENBQUMsbUNBQW1DLENBQUM7UUFDNUQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxtQ0FBbUMsQ0FBQztRQUM1RCxRQUFRLENBQUMsY0FBYyxDQUFDLG1DQUFtQyxDQUFDO0tBQy9ELENBQUMsSUFBSSxFQUFFLENBQUM7SUFFVCxJQUFJLFFBQVEsR0FBTSxJQUFJLGVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxJQUFJLFlBQVksR0FBTSxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksZUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtRQUMzQixJQUFJLE9BQU8sR0FBYyxJQUFJLG9CQUFVLENBQUMsV0FB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LENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFL0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN2QixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLEdBQVUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxHQUFpQixHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRSxJQUFJLEVBQUUsR0FBVyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksRUFBRSxHQUFXLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksZUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLEVBQUUsR0FBVyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxFQUFFLEdBQVcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJOIGZyb20gXCJibi5qc1wiO1xuaW1wb3J0IHtCdWZmZXJ9IGZyb20gXCJidWZmZXIvXCI7XG5pbXBvcnQgQmluVG9vbHMgZnJvbSAnc3JjL3V0aWxzL2JpbnRvb2xzJztcbmltcG9ydCB7IE91dHB1dCwgU2VjcE91dHB1dCwgU2VsZWN0T3V0cHV0Q2xhc3MgfSBmcm9tICdzcmMvYXBpcy9hdm0vb3V0cHV0cyc7XG5cbmNvbnN0IGJpbnRvb2xzID0gQmluVG9vbHMuZ2V0SW5zdGFuY2UoKTtcblxuZGVzY3JpYmUoJ091dHB1dHMnLCAoKSA9PiB7XG4gICAgbGV0IGFzc2V0SUQ6c3RyaW5nID0gXCI4YTVkMmQzMmU2OGJjNTAwMzZlNGQwODYwNDQ2MTdmZTRhMGEwMjk2YjI3NDk5OWJhNTY4ZWE5MmRhNDZkNTMzXCI7XG4gICAgbGV0IGFzc2V0SURCdWZmOkJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGFzc2V0SUQsIFwiaGV4XCIpO1xuICAgIGxldCBhZGRyczpBcnJheTxCdWZmZXI+ID0gW1xuICAgICAgICBiaW50b29scy5hdmFEZXNlcmlhbGl6ZShcIkI2RDR2MVZ0UFlMYmlVdllYdFc0UHg4b0U5aW1DMnZHV1wiKSxcbiAgICAgICAgYmludG9vbHMuYXZhRGVzZXJpYWxpemUoXCJQNXdkUnVaZWFEdDI4ZUhNUDVTM3c5WmRvQmZvN3d1ekZcIiksXG4gICAgICAgIGJpbnRvb2xzLmF2YURlc2VyaWFsaXplKFwiNlkza3lzakY5am5IbllrZFM5eUdBdW9IeWFlMmVObWVWXCIpXG4gICAgXS5zb3J0KCk7XG5cbiAgICBsZXQgbG9ja3RpbWU6Qk4gPSBuZXcgQk4oNTQzMjEpO1xuICAgIGxldCBhZGRycGF5ID0gW2FkZHJzWzBdLCBhZGRyc1sxXV07XG4gICAgbGV0IGFkZHJmYWxsID0gW2FkZHJzWzFdLCBhZGRyc1syXV07XG4gICAgbGV0IGZhbGxMb2NrdGltZTpCTiA9IGxvY2t0aW1lLmFkZChuZXcgQk4oNTApKTtcblxuICAgIHRlc3QoJ1NlbGVjdE91dHB1dENsYXNzJywgKCkgPT4ge1xuICAgICAgICBsZXQgZ29vZG91dDpTZWNwT3V0cHV0ID0gbmV3IFNlY3BPdXRwdXQoYXNzZXRJREJ1ZmYsIG5ldyBCTigyNjAwKSwgYWRkcnBheSwgbG9ja3RpbWUsIDEpO1xuICAgICAgICBsZXQgYmFkb3V0YnVmZjpCdWZmZXIgPSBiaW50b29scy5jb3B5RnJvbShnb29kb3V0LnRvQnVmZmVyKCkpO1xuICAgICAgICBiYWRvdXRidWZmLndyaXRlKFwiMDAwMDAwOTlcIiwgMzIsIDQsIFwiaGV4XCIpO1xuICAgICAgICBsZXQgb3V0cGF5bWVudDpPdXRwdXQgPSBTZWxlY3RPdXRwdXRDbGFzcyhnb29kb3V0LnRvQnVmZmVyKCkpO1xuICAgICAgICBleHBlY3Qob3V0cGF5bWVudCkudG9CZUluc3RhbmNlT2YoU2VjcE91dHB1dCk7XG4gICAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgICAgICBTZWxlY3RPdXRwdXRDbGFzcyhiYWRvdXRidWZmKTtcbiAgICAgICAgfSkudG9UaHJvdyhcIkVycm9yIC0gU2VsZWN0T3V0cHV0Q2xhc3M6IHVua25vd24gb3V0cHV0aWRcIik7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdjb21wYXJhdG9yJywgKCkgPT4ge1xuICAgICAgICBsZXQgb3V0cGF5bWVudDE6T3V0cHV0ID0gbmV3IFNlY3BPdXRwdXQoYXNzZXRJREJ1ZmYsIG5ldyBCTigxMDAwMCksIGFkZHJzLCBsb2NrdGltZSwgMyk7XG4gICAgICAgIGxldCBvdXRwYXltZW50MjpPdXRwdXQgPSBuZXcgU2VjcE91dHB1dChhc3NldElEQnVmZiwgbmV3IEJOKDEwMDAxKSwgYWRkcnMsIGxvY2t0aW1lLCAzKTtcbiAgICAgICAgbGV0IG91dHBheW1lbnQzOk91dHB1dCA9IG5ldyBTZWNwT3V0cHV0KGFzc2V0SURCdWZmLCBuZXcgQk4oOTk5OSksIGFkZHJzLCBsb2NrdGltZSwgMyk7XG4gICAgICAgIGxldCBjbXAgPSBPdXRwdXQuY29tcGFyYXRvcigpO1xuICAgICAgICBleHBlY3QoY21wKG91dHBheW1lbnQxLCBvdXRwYXltZW50MSkpLnRvQmUoMCk7XG4gICAgICAgIGV4cGVjdChjbXAob3V0cGF5bWVudDIsIG91dHBheW1lbnQyKSkudG9CZSgwKTtcbiAgICAgICAgZXhwZWN0KGNtcChvdXRwYXltZW50Mywgb3V0cGF5bWVudDMpKS50b0JlKDApO1xuICAgICAgICBleHBlY3QoY21wKG91dHBheW1lbnQxLCBvdXRwYXltZW50MikpLnRvQmUoLTEpO1xuICAgICAgICBleHBlY3QoY21wKG91dHBheW1lbnQxLCBvdXRwYXltZW50MykpLnRvQmUoMSk7XG4gICAgfSk7XG4gICAgdGVzdCgnT3V0UGF5bWVudCcsICgpID0+IHtcbiAgICAgICAgbGV0IG91dDpTZWNwT3V0cHV0ID0gbmV3IFNlY3BPdXRwdXQoYXNzZXRJREJ1ZmYsIG5ldyBCTigxMDAwMCksIGFkZHJzLCBsb2NrdGltZSwgMyk7XG4gICAgICAgIGV4cGVjdChvdXQuZ2V0T3V0cHV0SUQoKSkudG9CZSg0KTtcbiAgICAgICAgZXhwZWN0KEpTT04uc3RyaW5naWZ5KG91dC5nZXRBZGRyZXNzZXMoKS5zb3J0KCkpKS50b1N0cmljdEVxdWFsKEpTT04uc3RyaW5naWZ5KGFkZHJzLnNvcnQoKSkpO1xuXG4gICAgICAgIGV4cGVjdChvdXQuZ2V0VGhyZXNob2xkKCkpLnRvQmUoMyk7XG4gICAgICAgIGV4cGVjdChvdXQuZ2V0TG9ja3RpbWUoKS50b051bWJlcigpKS50b0JlKGxvY2t0aW1lLnRvTnVtYmVyKCkpO1xuXG4gICAgICAgIGV4cGVjdChvdXQuZ2V0QXNzZXRJRCgpLnRvU3RyaW5nKFwiaGV4XCIpKS50b0JlKGFzc2V0SUQpO1xuXG4gICAgICAgIGxldCByID0gb3V0LmdldEFkZHJlc3NJZHgoYWRkcnNbMl0pO1xuICAgICAgICBleHBlY3Qob3V0LmdldEFkZHJlc3MocikpLnRvU3RyaWN0RXF1YWwoYWRkcnNbMl0pO1xuICAgICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICAgICAgb3V0LmdldEFkZHJlc3MoNDAwKVxuICAgICAgICB9KS50b1Rocm93KCk7XG5cbiAgICAgICAgZXhwZWN0KG91dC5nZXRBbW91bnQoKS50b051bWJlcigpKS50b0JlKDEwMDAwKTtcblxuICAgICAgICBsZXQgYjpCdWZmZXIgPSBvdXQudG9CdWZmZXIoKTtcbiAgICAgICAgZXhwZWN0KG91dC50b1N0cmluZygpKS50b0JlKGJpbnRvb2xzLmJ1ZmZlclRvQjU4KGIpKTtcblxuICAgICAgICBsZXQgczpBcnJheTxCdWZmZXI+ID0gb3V0LmdldFNwZW5kZXJzKGFkZHJzKTtcbiAgICAgICAgZXhwZWN0KEpTT04uc3RyaW5naWZ5KHMuc29ydCgpKSkudG9CZShKU09OLnN0cmluZ2lmeShhZGRycy5zb3J0KCkpKTtcblxuICAgICAgICBsZXQgbTE6Ym9vbGVhbiA9IG91dC5tZWV0c1RocmVzaG9sZChbYWRkcnNbMF1dKTtcbiAgICAgICAgZXhwZWN0KG0xKS50b0JlKGZhbHNlKTtcbiAgICAgICAgbGV0IG0yOmJvb2xlYW4gPSBvdXQubWVldHNUaHJlc2hvbGQoYWRkcnMsIG5ldyBCTigxMDApKTtcbiAgICAgICAgZXhwZWN0KG0yKS50b0JlKGZhbHNlKTtcbiAgICAgICAgbGV0IG0zOmJvb2xlYW4gPSBvdXQubWVldHNUaHJlc2hvbGQoYWRkcnMpO1xuICAgICAgICBleHBlY3QobTMpLnRvQmUodHJ1ZSk7XG4gICAgICAgIGxldCBtNDpib29sZWFuID0gb3V0Lm1lZXRzVGhyZXNob2xkKGFkZHJzLCBsb2NrdGltZS5hZGQobmV3IEJOKDEwMCkpKTtcbiAgICAgICAgZXhwZWN0KG00KS50b0JlKHRydWUpO1xuICAgIH0pO1xufSk7Il19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdHMvYXBpcy9hdm0vb3V0cHV0cy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQXVCO0FBQ3ZCLG9DQUErQjtBQUMvQixrRUFBMEM7QUFDMUMsa0RBQTZFO0FBRTdFLE1BQU0sUUFBUSxHQUFHLGtCQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFeEMsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDckIsSUFBSSxPQUFPLEdBQVUsa0VBQWtFLENBQUM7SUFDeEYsSUFBSSxXQUFXLEdBQVUsZUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsSUFBSSxLQUFLLEdBQWlCO1FBQ3RCLFFBQVEsQ0FBQyxjQUFjLENBQUMsbUNBQW1DLENBQUM7UUFDNUQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxtQ0FBbUMsQ0FBQztRQUM1RCxRQUFRLENBQUMsY0FBYyxDQUFDLG1DQUFtQyxDQUFDO0tBQy9ELENBQUMsSUFBSSxFQUFFLENBQUM7SUFFVCxJQUFJLFFBQVEsR0FBTSxJQUFJLGVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxJQUFJLFlBQVksR0FBTSxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksZUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtRQUMzQixJQUFJLE9BQU8sR0FBYyxJQUFJLG9CQUFVLENBQUMsV0FB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LENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFL0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN2QixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLEdBQVUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxHQUFpQixHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRSxJQUFJLEVBQUUsR0FBVyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksRUFBRSxHQUFXLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksZUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLEVBQUUsR0FBVyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxFQUFFLEdBQVcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJOIGZyb20gXCJibi5qc1wiO1xuaW1wb3J0IHtCdWZmZXJ9IGZyb20gXCJidWZmZXIvXCI7XG5pbXBvcnQgQmluVG9vbHMgZnJvbSAnc3JjL3V0aWxzL2JpbnRvb2xzJztcbmltcG9ydCB7IE91dHB1dCwgU2VjcE91dHB1dCwgU2VsZWN0T3V0cHV0Q2xhc3MgfSBmcm9tICdzcmMvYXBpcy9hdm0vb3V0cHV0cyc7XG5cbmNvbnN0IGJpbnRvb2xzID0gQmluVG9vbHMuZ2V0SW5zdGFuY2UoKTtcblxuZGVzY3JpYmUoJ091dHB1dHMnLCAoKSA9PiB7XG4gICAgbGV0IGFzc2V0SUQ6c3RyaW5nID0gXCI4YTVkMmQzMmU2OGJjNTAwMzZlNGQwODYwNDQ2MTdmZTRhMGEwMjk2YjI3NDk5OWJhNTY4ZWE5MmRhNDZkNTMzXCI7XG4gICAgbGV0IGFzc2V0SURCdWZmOkJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGFzc2V0SUQsIFwiaGV4XCIpO1xuICAgIGxldCBhZGRyczpBcnJheTxCdWZmZXI+ID0gW1xuICAgICAgICBiaW50b29scy5hdmFEZXNlcmlhbGl6ZShcIkI2RDR2MVZ0UFlMYmlVdllYdFc0UHg4b0U5aW1DMnZHV1wiKSxcbiAgICAgICAgYmludG9vbHMuYXZhRGVzZXJpYWxpemUoXCJQNXdkUnVaZWFEdDI4ZUhNUDVTM3c5WmRvQmZvN3d1ekZcIiksXG4gICAgICAgIGJpbnRvb2xzLmF2YURlc2VyaWFsaXplKFwiNlkza3lzakY5am5IbllrZFM5eUdBdW9IeWFlMmVObWVWXCIpXG4gICAgXS5zb3J0KCk7XG5cbiAgICBsZXQgbG9ja3RpbWU6Qk4gPSBuZXcgQk4oNTQzMjEpO1xuICAgIGxldCBhZGRycGF5ID0gW2FkZHJzWzBdLCBhZGRyc1sxXV07XG4gICAgbGV0IGFkZHJmYWxsID0gW2FkZHJzWzFdLCBhZGRyc1syXV07XG4gICAgbGV0IGZhbGxMb2NrdGltZTpCTiA9IGxvY2t0aW1lLmFkZChuZXcgQk4oNTApKTtcblxuICAgIHRlc3QoJ1NlbGVjdE91dHB1dENsYXNzJywgKCkgPT4ge1xuICAgICAgICBsZXQgZ29vZG91dDpTZWNwT3V0cHV0ID0gbmV3IFNlY3BPdXRwdXQoYXNzZXRJREJ1ZmYsIG5ldyBCTigyNjAwKSwgYWRkcnBheSwgbG9ja3RpbWUsIDEpO1xuICAgICAgICBsZXQgYmFkb3V0YnVmZjpCdWZmZXIgPSBiaW50b29scy5jb3B5RnJvbShnb29kb3V0LnRvQnVmZmVyKCkpO1xuICAgICAgICBiYWRvdXRidWZmLndyaXRlKFwiMDAwMDAwOTlcIiwgMzIsIDQsIFwiaGV4XCIpO1xuICAgICAgICBsZXQgb3V0cGF5bWVudDpPdXRwdXQgPSBTZWxlY3RPdXRwdXRDbGFzcyhnb29kb3V0LnRvQnVmZmVyKCkpO1xuICAgICAgICBleHBlY3Qob3V0cGF5bWVudCkudG9CZUluc3RhbmNlT2YoU2VjcE91dHB1dCk7XG4gICAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgICAgICBTZWxlY3RPdXRwdXRDbGFzcyhiYWRvdXRidWZmKTtcbiAgICAgICAgfSkudG9UaHJvdyhcIkVycm9yIC0gU2VsZWN0T3V0cHV0Q2xhc3M6IHVua25vd24gb3V0cHV0aWRcIik7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdjb21wYXJhdG9yJywgKCkgPT4ge1xuICAgICAgICBsZXQgb3V0cGF5bWVudDE6T3V0cHV0ID0gbmV3IFNlY3BPdXRwdXQoYXNzZXRJREJ1ZmYsIG5ldyBCTigxMDAwMCksIGFkZHJzLCBsb2NrdGltZSwgMyk7XG4gICAgICAgIGxldCBvdXRwYXltZW50MjpPdXRwdXQgPSBuZXcgU2VjcE91dHB1dChhc3NldElEQnVmZiwgbmV3IEJOKDEwMDAxKSwgYWRkcnMsIGxvY2t0aW1lLCAzKTtcbiAgICAgICAgbGV0IG91dHBheW1lbnQzOk91dHB1dCA9IG5ldyBTZWNwT3V0cHV0KGFzc2V0SURCdWZmLCBuZXcgQk4oOTk5OSksIGFkZHJzLCBsb2NrdGltZSwgMyk7XG4gICAgICAgIGxldCBjbXAgPSBPdXRwdXQuY29tcGFyYXRvcigpO1xuICAgICAgICBleHBlY3QoY21wKG91dHBheW1lbnQxLCBvdXRwYXltZW50MSkpLnRvQmUoMCk7XG4gICAgICAgIGV4cGVjdChjbXAob3V0cGF5bWVudDIsIG91dHBheW1lbnQyKSkudG9CZSgwKTtcbiAgICAgICAgZXhwZWN0KGNtcChvdXRwYXltZW50Mywgb3V0cGF5bWVudDMpKS50b0JlKDApO1xuICAgICAgICBleHBlY3QoY21wKG91dHBheW1lbnQxLCBvdXRwYXltZW50MikpLnRvQmUoLTEpO1xuICAgICAgICBleHBlY3QoY21wKG91dHBheW1lbnQxLCBvdXRwYXltZW50MykpLnRvQmUoMSk7XG4gICAgfSk7XG4gICAgdGVzdCgnT3V0UGF5bWVudCcsICgpID0+IHtcbiAgICAgICAgbGV0IG91dDpTZWNwT3V0cHV0ID0gbmV3IFNlY3BPdXRwdXQoYXNzZXRJREJ1ZmYsIG5ldyBCTigxMDAwMCksIGFkZHJzLCBsb2NrdGltZSwgMyk7XG4gICAgICAgIGV4cGVjdChvdXQuZ2V0T3V0cHV0SUQoKSkudG9CZSg3KTtcbiAgICAgICAgZXhwZWN0KEpTT04uc3RyaW5naWZ5KG91dC5nZXRBZGRyZXNzZXMoKS5zb3J0KCkpKS50b1N0cmljdEVxdWFsKEpTT04uc3RyaW5naWZ5KGFkZHJzLnNvcnQoKSkpO1xuXG4gICAgICAgIGV4cGVjdChvdXQuZ2V0VGhyZXNob2xkKCkpLnRvQmUoMyk7XG4gICAgICAgIGV4cGVjdChvdXQuZ2V0TG9ja3RpbWUoKS50b051bWJlcigpKS50b0JlKGxvY2t0aW1lLnRvTnVtYmVyKCkpO1xuXG4gICAgICAgIGV4cGVjdChvdXQuZ2V0QXNzZXRJRCgpLnRvU3RyaW5nKFwiaGV4XCIpKS50b0JlKGFzc2V0SUQpO1xuXG4gICAgICAgIGxldCByID0gb3V0LmdldEFkZHJlc3NJZHgoYWRkcnNbMl0pO1xuICAgICAgICBleHBlY3Qob3V0LmdldEFkZHJlc3MocikpLnRvU3RyaWN0RXF1YWwoYWRkcnNbMl0pO1xuICAgICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICAgICAgb3V0LmdldEFkZHJlc3MoNDAwKVxuICAgICAgICB9KS50b1Rocm93KCk7XG5cbiAgICAgICAgZXhwZWN0KG91dC5nZXRBbW91bnQoKS50b051bWJlcigpKS50b0JlKDEwMDAwKTtcblxuICAgICAgICBsZXQgYjpCdWZmZXIgPSBvdXQudG9CdWZmZXIoKTtcbiAgICAgICAgZXhwZWN0KG91dC50b1N0cmluZygpKS50b0JlKGJpbnRvb2xzLmJ1ZmZlclRvQjU4KGIpKTtcblxuICAgICAgICBsZXQgczpBcnJheTxCdWZmZXI+ID0gb3V0LmdldFNwZW5kZXJzKGFkZHJzKTtcbiAgICAgICAgZXhwZWN0KEpTT04uc3RyaW5naWZ5KHMuc29ydCgpKSkudG9CZShKU09OLnN0cmluZ2lmeShhZGRycy5zb3J0KCkpKTtcblxuICAgICAgICBsZXQgbTE6Ym9vbGVhbiA9IG91dC5tZWV0c1RocmVzaG9sZChbYWRkcnNbMF1dKTtcbiAgICAgICAgZXhwZWN0KG0xKS50b0JlKGZhbHNlKTtcbiAgICAgICAgbGV0IG0yOmJvb2xlYW4gPSBvdXQubWVldHNUaHJlc2hvbGQoYWRkcnMsIG5ldyBCTigxMDApKTtcbiAgICAgICAgZXhwZWN0KG0yKS50b0JlKGZhbHNlKTtcbiAgICAgICAgbGV0IG0zOmJvb2xlYW4gPSBvdXQubWVldHNUaHJlc2hvbGQoYWRkcnMpO1xuICAgICAgICBleHBlY3QobTMpLnRvQmUodHJ1ZSk7XG4gICAgICAgIGxldCBtNDpib29sZWFuID0gb3V0Lm1lZXRzVGhyZXNob2xkKGFkZHJzLCBsb2NrdGltZS5hZGQobmV3IEJOKDEwMCkpKTtcbiAgICAgICAgZXhwZWN0KG00KS50b0JlKHRydWUpO1xuICAgIH0pO1xufSk7Il19 |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9893612
16697
355
1
80
+ Addedcipher-base@1.0.6(transitive)
- Removedcipher-base@1.0.5(transitive)
Updatedaxios@^0.19.2
Updatedbuffer@^5.5.0
Updatedstore2@^2.11.0