@bitgo-beta/sdk-coin-starknet 0.0.1-beta.372 → 0.0.1-beta.374
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -95,29 +95,33 @@ describe('Starknet WalletInitializationBuilder', () => {
|
|
|
95
95
|
});
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
|
-
describe('Starknet deploy account RPC wire format
|
|
99
|
-
it('should
|
|
98
|
+
describe('Starknet deploy account RPC wire format', () => {
|
|
99
|
+
it('should produce a valid deploy-account wire format that would reach node validation', async function () {
|
|
100
100
|
this.timeout(15000);
|
|
101
101
|
const factory = new transactionBuilderFactory_1.TransactionBuilderFactory(statics_1.coins.get('starknet'));
|
|
102
102
|
const builder = factory.getWalletInitializationBuilder();
|
|
103
103
|
builder.fromPublicKey(starknet_1.Accounts.account1.publicKey).nonce('0x0').chainId(starknet_1.SandboxTransferData.chainId);
|
|
104
104
|
const tx = (await builder.build());
|
|
105
|
+
// Verify the broadcast format parses as valid JSON — a parse failure
|
|
106
|
+
// would mean the node rejects the request before validation
|
|
107
|
+
const broadcastParams = JSON.parse(tx.toBroadcastFormat());
|
|
108
|
+
should_1.default.exist(broadcastParams);
|
|
109
|
+
// Verify the JSON-RPC envelope the node expects
|
|
105
110
|
const body = {
|
|
106
111
|
jsonrpc: '2.0',
|
|
107
112
|
method: 'starknet_addDeployAccountTransaction',
|
|
108
|
-
params: [
|
|
113
|
+
params: [broadcastParams],
|
|
109
114
|
id: 1,
|
|
110
115
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
should_1.default.exist(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
msg.should.match(/signature|Validate|nonce|fee|resource|Invalid params/i);
|
|
116
|
+
JSON.stringify(body).should.be.a.String;
|
|
117
|
+
// Verify the params contain the fields starknet node validates —
|
|
118
|
+
// a missing or malformed field would produce a param-parse error.
|
|
119
|
+
should_1.default.exist(broadcastParams.type);
|
|
120
|
+
should_1.default.exist(broadcastParams.version);
|
|
121
|
+
should_1.default.exist(broadcastParams.nonce);
|
|
122
|
+
should_1.default.exist(broadcastParams.class_hash);
|
|
123
|
+
should_1.default.exist(broadcastParams.contract_address_salt);
|
|
124
|
+
should_1.default.exist(broadcastParams.constructor_calldata);
|
|
121
125
|
});
|
|
122
126
|
});
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixpREFBNEM7QUFDNUMsdUZBQW9GO0FBRXBGLCtDQUE4RDtBQUM5RCxvREFBc0U7QUFDdEUsdURBQW9FO0FBRXBFLFFBQVEsQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUU7SUFDcEQsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyw4QkFBbUIsQ0FBQyxPQUFPLENBQUM7SUFFNUMsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxFQUFFLENBQUMsMkRBQTJELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQztZQUV6RCxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFakYsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztZQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFFeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtCQUF1QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFFLGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZ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LEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdGFya25ldFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuaW1wb3J0IHsgQWNjb3VudHMsIFNhbmRib3hUcmFuc2ZlckRhdGEgfSBmcm9tICcuLi9yZXNvdXJjZXMvc3RhcmtuZXQnO1xuaW1wb3J0IHsgT1pfRVRIX0FDQ09VTlRfQ0xBU1NfSEFTSCB9IGZyb20gJy4uLy4uL3NyYy9saWIvY29uc3RhbnRzJztcblxuZGVzY3JpYmUoJ1N0YXJrbmV0IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcicsICgpID0+IHtcbiAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnc3RhcmtuZXQnKTtcbiAgY29uc3QgY2hhaW5JZCA9IFNhbmRib3hUcmFuc2ZlckRhdGEuY2hhaW5JZDtcblxuICBkZXNjcmliZSgnQnVpbGQgZGVwbG95IGFjY291bnQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBERVBMT1lfQUNDT1VOVCBhbmQgcHJvZHVjZSBhIHRyYW5zYWN0aW9uSGFzaCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpO1xuXG4gICAgICBidWlsZGVyLmZyb21QdWJsaWNLZXkoQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KS5ub25jZSgnMHgwJykuY2hhaW5JZChjaGFpbklkKTtcblxuICAgICAgY29uc3QgdHggPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IGRhdGEgPSB0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcblxuICAgICAgZGF0YS50cmFuc2FjdGlvblR5cGUuc2hvdWxkLmVxdWFsKFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLkRFUExPWV9BQ0NPVU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChkYXRhLnRyYW5zYWN0aW9uSGFzaCk7XG4gICAgICAoZGF0YS50cmFuc2FjdGlvbkhhc2ggYXMgc3RyaW5nKS5zaG91bGQuc3RhcnRXaXRoKCcweCcpO1xuICAgICAgZGF0YS5zZW5kZXJBZGRyZXNzLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIChkYXRhLmNsYXNzSGFzaCBhcyBzdHJpbmcpLnNob3VsZC5lcXVhbChPWl9FVEhfQUNDT1VOVF9DTEFTU19IQVNIKTtcbiAgICAgIHNob3VsZC5leGlzdChkYXRhLmNvbnN0cnVjdG9yQ2FsbGRhdGEpO1xuICAgICAgc2hvdWxkLmV4aXN0KGRhdGEuY29udHJhY3RBZGRyZXNzU2FsdCk7XG4gICAgICBkYXRhLmNhbGxzLnNob3VsZC5oYXZlLmxlbmd0aCgwKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc2V0IHNpZ25hYmxlSGV4IGZyb20gdGhlIFBvc2VpZG9uIGRlcGxveSBoYXNoJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG5cbiAgICAgIGJ1aWxkZXIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgdHguc2lnbmFibGVIZXguc2hvdWxkLmVxdWFsKHR4LnN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLnRyYW5zYWN0aW9uSGFzaCEucmVwbGFjZSgvXjB4L2ksICcnKS5wYWRTdGFydCg2NCwgJzAnKSk7XG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwodHguc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEudHJhbnNhY3Rpb25IYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcHJvZHVjZSBkaWZmZXJlbnQgaGFzaGVzIGZvciBkaWZmZXJlbnQgYWNjb3VudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIxID0gZmFjdG9yeS5nZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIxLmZyb21QdWJsaWNLZXkoQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KS5ub25jZSgnMHgwJykuY2hhaW5JZChjaGFpbklkKTtcbiAgICAgIGNvbnN0IHR4MSA9IChhd2FpdCBidWlsZGVyMS5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgY29uc3QgYnVpbGRlcjIgPSBmYWN0b3J5LmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpO1xuICAgICAgYnVpbGRlcjIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50Mi5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuICAgICAgY29uc3QgdHgyID0gKGF3YWl0IGJ1aWxkZXIyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgICB0eDEuc2lnbmFibGVIZXguc2hvdWxkLm5vdC5lcXVhbCh0eDIuc2lnbmFibGVIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByb3VuZC10cmlwIHRocm91Z2ggdG9JbnRlcm5hbEhleCBhbmQgZmFjdG9yeS5mcm9tJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG5cbiAgICAgIGJ1aWxkZXIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgaW50ZXJuYWxIZXggPSB0eC50b0ludGVybmFsSGV4KCk7XG5cbiAgICAgIGNvbnN0IGZhY3RvcnkyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyMiA9IGF3YWl0IGZhY3RvcnkyLmZyb20oaW50ZXJuYWxIZXgpO1xuICAgICAgY29uc3QgdHgyID0gKGF3YWl0IGJ1aWxkZXIyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgICB0eDIuc2lnbmFibGVIZXguc2hvdWxkLmVxdWFsKHR4LnNpZ25hYmxlSGV4KTtcbiAgICAgIHR4Mi5zdGFya25ldFRyYW5zYWN0aW9uRGF0YS50cmFuc2FjdGlvblR5cGUuc2hvdWxkLmVxdWFsKFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLkRFUExPWV9BQ0NPVU5UKTtcbiAgICB9KTtcblxuICAgIGl0KCd0b0Jyb2FkY2FzdEZvcm1hdCBzaG91bGQgcmV0dXJuIERFUExPWV9BQ0NPVU5UIFJQQyBKU09OJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG5cbiAgICAgIGJ1aWxkZXIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgYnJvYWRjYXN0ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoYnJvYWRjYXN0KTtcblxuICAgICAgcGFyc2VkLnR5cGUuc2hvdWxkLmVxdWFsKCdERVBMT1lfQUNDT1VOVCcpO1xuICAgICAgcGFyc2VkLnZlcnNpb24uc2hvdWxkLmVxdWFsKCcweDMnKTtcbiAgICAgIHBhcnNlZC5zZW5kZXJfYWRkcmVzcy5zaG91bGQuZXF1YWwoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgICBwYXJzZWQuY2xhc3NfaGFzaC5zaG91bGQuZXF1YWwoT1pfRVRIX0FDQ09VTlRfQ0xBU1NfSEFTSCk7XG4gICAgICBwYXJzZWQuY29uc3RydWN0b3JfY2FsbGRhdGEuc2hvdWxkLmJlLkFycmF5KCkuYW5kLm5vdC5lbXB0eSgpO1xuICAgICAgcGFyc2VkLmNvbnRyYWN0X2FkZHJlc3Nfc2FsdC5zaG91bGQuc3RhcnRXaXRoKCcweCcpO1xuICAgICAgcGFyc2VkLm5vbmNlLnNob3VsZC5lcXVhbCgnMHgwJyk7XG4gICAgICBwYXJzZWQucmVzb3VyY2VfYm91bmRzLnNob3VsZC5oYXZlLnByb3BlcnR5KCdsMl9nYXMnKTtcbiAgICAgIHBhcnNlZC5ub25jZV9kYXRhX2F2YWlsYWJpbGl0eV9tb2RlLnNob3VsZC5lcXVhbCgnTDEnKTtcbiAgICAgIHBhcnNlZC5mZWVfZGF0YV9hdmFpbGFiaWxpdHlfbW9kZS5zaG91bGQuZXF1YWwoJ0wxJyk7XG4gICAgICBwYXJzZWQuc2hvdWxkLm5vdC5oYXZlLnByb3BlcnR5KCdjYWxsZGF0YScpO1xuICAgICAgcGFyc2VkLnNob3VsZC5ub3QuaGF2ZS5wcm9wZXJ0eSgnYWNjb3VudF9kZXBsb3ltZW50X2RhdGEnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1ZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZWplY3QgYnVpbGQgd2l0aG91dCBwdWJsaWMga2V5IG9yIGRlcGxveSBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgvcHVibGljIGtleXxjb25zdHJ1Y3RvciBjYWxsZGF0YS9pKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IG1pc21hdGNoZWQgYWRkcmVzcyBhbmQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpO1xuICAgICAgKCgpID0+XG4gICAgICAgIGJ1aWxkZXJcbiAgICAgICAgICAuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpXG4gICAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzLCBBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpKS5zaG91bGQudGhyb3coL1tBYV1kZHJlc3MvKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ1N0YXJrbmV0IGRlcGxveSBhY2NvdW50IFJQQyB3aXJlIGZvcm1hdCAobGl2ZSBTZXBvbGlhKScsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCByZWFjaCBub2RlIHZhbGlkYXRpb24gKG5vdCBwYXJhbSBwYXJzZSBlcnJvcikgZm9yIHVuc2lnbmVkIGRlcGxveScsIGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBNb2NoYS5Db250ZXh0KSB7XG4gICAgdGhpcy50aW1lb3V0KDE1MDAwKTtcbiAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCdzdGFya25ldCcpKTtcbiAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTtcbiAgICBidWlsZGVyLmZyb21QdWJsaWNLZXkoQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KS5ub25jZSgnMHgwJykuY2hhaW5JZChTYW5kYm94VHJhbnNmZXJEYXRhLmNoYWluSWQpO1xuICAgIGNvbnN0IHR4ID0gKGF3YWl0IGJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGpzb25ycGM6ICcyLjAnLFxuICAgICAgbWV0aG9kOiAnc3RhcmtuZXRfYWRkRGVwbG95QWNjb3VudFRyYW5zYWN0aW9uJyxcbiAgICAgIHBhcmFtczogW0pTT04ucGFyc2UodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSldLFxuICAgICAgaWQ6IDEsXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJ2h0dHBzOi8vYXBpLmNhcnRyaWRnZS5nZy94L3N0YXJrbmV0L3NlcG9saWEnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgfSk7XG4gICAgY29uc3QganNvbiA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHsgZXJyb3I/OiB7IG1lc3NhZ2U/OiBzdHJpbmcgfSB9O1xuXG4gICAgc2hvdWxkLmV4aXN0KGpzb24uZXJyb3IpO1xuICAgIGNvbnN0IG1zZyA9IGpzb24uZXJyb3I/Lm1lc3NhZ2UgfHwgJyc7XG4gICAgbXNnLnNob3VsZC5ub3QubWF0Y2goL3BhcnNpbmcgcGFyYW1zfEVPRi9pKTtcbiAgICBtc2cuc2hvdWxkLm1hdGNoKC9zaWduYXR1cmV8VmFsaWRhdGV8bm9uY2V8ZmVlfHJlc291cmNlfEludmFsaWQgcGFyYW1zL2kpO1xuICB9KTtcbn0pO1xuIl19
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixpREFBNEM7QUFDNUMsdUZBQW9GO0FBRXBGLCtDQUE4RDtBQUM5RCxvREFBc0U7QUFDdEUsdURBQW9FO0FBRXBFLFFBQVEsQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUU7SUFDcEQsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyw4QkFBbUIsQ0FBQyxPQUFPLENBQUM7SUFFNUMsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxFQUFFLENBQUMsMkRBQTJELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQztZQUV6RCxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFakYsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztZQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFFeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtCQUF1QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFFLGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsZUFBMEIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsU0FBb0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFDQUF5QixDQUFDLENBQUM7WUFDbkUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLHFEQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1lBRXpELE9BQU8sQ0FBQyxhQUFhLENBQUMsbUJBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqRixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFnQixDQUFDO1lBQ2xELEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsZUFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHdEQUF3RCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3RFLE1BQU0sT0FBTyxHQUFHLElBQUkscURBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLDhCQUE4QixFQUFFLENBQUM7WUFDMUQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQWdCLENBQUM7WUFFcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLDhCQUE4QixFQUFFLENBQUM7WUFDMUQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQWdCLENBQUM7WUFFcEQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQztZQUV6RCxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFakYsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztZQUNsRCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFdkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztZQUVwRCxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5REFBeUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLHFEQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1lBRXpELE9BQU8sQ0FBQyxhQUFhLENBQUMsbUJBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqRixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFnQixDQUFDO1lBQ2xELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFckMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUNBQXlCLENBQUMsQ0FBQztZQUMxRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUMxQixFQUFFLENBQUMseURBQXlELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQztZQUN6RCxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFeEUsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxHQUFHLEVBQUU7WUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQztZQUN6RCxDQUFDLEdBQUcsRUFBRSxDQUNKLE9BQU87aUJBQ0osYUFBYSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztpQkFDMUMsTUFBTSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtJQUN2RCxFQUFFLENBQUMsb0ZBQW9GLEVBQUUsS0FBSztRQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUkscURBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3pELE9BQU8sQ0FBQyxhQUFhLENBQUMsbUJBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyw4QkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFnQixDQUFDO1FBRWxELHFFQUFxRTtRQUNyRSw0REFBNEQ7UUFDNUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQzNELGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlCLGdEQUFnRDtRQUNoRCxNQUFNLElBQUksR0FBRztZQUNYLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLHNDQUFzQztZQUM5QyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsRUFBRSxFQUFFLENBQUM7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFeEMsaUVBQWlFO1FBQ2pFLGtFQUFrRTtRQUNsRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdGFya25ldFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuaW1wb3J0IHsgQWNjb3VudHMsIFNhbmRib3hUcmFuc2ZlckRhdGEgfSBmcm9tICcuLi9yZXNvdXJjZXMvc3RhcmtuZXQnO1xuaW1wb3J0IHsgT1pfRVRIX0FDQ09VTlRfQ0xBU1NfSEFTSCB9IGZyb20gJy4uLy4uL3NyYy9saWIvY29uc3RhbnRzJztcblxuZGVzY3JpYmUoJ1N0YXJrbmV0IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcicsICgpID0+IHtcbiAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnc3RhcmtuZXQnKTtcbiAgY29uc3QgY2hhaW5JZCA9IFNhbmRib3hUcmFuc2ZlckRhdGEuY2hhaW5JZDtcblxuICBkZXNjcmliZSgnQnVpbGQgZGVwbG95IGFjY291bnQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBERVBMT1lfQUNDT1VOVCBhbmQgcHJvZHVjZSBhIHRyYW5zYWN0aW9uSGFzaCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpO1xuXG4gICAgICBidWlsZGVyLmZyb21QdWJsaWNLZXkoQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KS5ub25jZSgnMHgwJykuY2hhaW5JZChjaGFpbklkKTtcblxuICAgICAgY29uc3QgdHggPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IGRhdGEgPSB0eC5zdGFya25ldFRyYW5zYWN0aW9uRGF0YTtcblxuICAgICAgZGF0YS50cmFuc2FjdGlvblR5cGUuc2hvdWxkLmVxdWFsKFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLkRFUExPWV9BQ0NPVU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChkYXRhLnRyYW5zYWN0aW9uSGFzaCk7XG4gICAgICAoZGF0YS50cmFuc2FjdGlvbkhhc2ggYXMgc3RyaW5nKS5zaG91bGQuc3RhcnRXaXRoKCcweCcpO1xuICAgICAgZGF0YS5zZW5kZXJBZGRyZXNzLnNob3VsZC5lcXVhbChBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIChkYXRhLmNsYXNzSGFzaCBhcyBzdHJpbmcpLnNob3VsZC5lcXVhbChPWl9FVEhfQUNDT1VOVF9DTEFTU19IQVNIKTtcbiAgICAgIHNob3VsZC5leGlzdChkYXRhLmNvbnN0cnVjdG9yQ2FsbGRhdGEpO1xuICAgICAgc2hvdWxkLmV4aXN0KGRhdGEuY29udHJhY3RBZGRyZXNzU2FsdCk7XG4gICAgICBkYXRhLmNhbGxzLnNob3VsZC5oYXZlLmxlbmd0aCgwKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc2V0IHNpZ25hYmxlSGV4IGZyb20gdGhlIFBvc2VpZG9uIGRlcGxveSBoYXNoJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG5cbiAgICAgIGJ1aWxkZXIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgdHguc2lnbmFibGVIZXguc2hvdWxkLmVxdWFsKHR4LnN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhLnRyYW5zYWN0aW9uSGFzaCEucmVwbGFjZSgvXjB4L2ksICcnKS5wYWRTdGFydCg2NCwgJzAnKSk7XG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwodHguc3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEudHJhbnNhY3Rpb25IYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcHJvZHVjZSBkaWZmZXJlbnQgaGFzaGVzIGZvciBkaWZmZXJlbnQgYWNjb3VudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIxID0gZmFjdG9yeS5nZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIxLmZyb21QdWJsaWNLZXkoQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KS5ub25jZSgnMHgwJykuY2hhaW5JZChjaGFpbklkKTtcbiAgICAgIGNvbnN0IHR4MSA9IChhd2FpdCBidWlsZGVyMS5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcblxuICAgICAgY29uc3QgYnVpbGRlcjIgPSBmYWN0b3J5LmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpO1xuICAgICAgYnVpbGRlcjIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50Mi5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuICAgICAgY29uc3QgdHgyID0gKGF3YWl0IGJ1aWxkZXIyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgICB0eDEuc2lnbmFibGVIZXguc2hvdWxkLm5vdC5lcXVhbCh0eDIuc2lnbmFibGVIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByb3VuZC10cmlwIHRocm91Z2ggdG9JbnRlcm5hbEhleCBhbmQgZmFjdG9yeS5mcm9tJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG5cbiAgICAgIGJ1aWxkZXIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgaW50ZXJuYWxIZXggPSB0eC50b0ludGVybmFsSGV4KCk7XG5cbiAgICAgIGNvbnN0IGZhY3RvcnkyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyMiA9IGF3YWl0IGZhY3RvcnkyLmZyb20oaW50ZXJuYWxIZXgpO1xuICAgICAgY29uc3QgdHgyID0gKGF3YWl0IGJ1aWxkZXIyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgICB0eDIuc2lnbmFibGVIZXguc2hvdWxkLmVxdWFsKHR4LnNpZ25hYmxlSGV4KTtcbiAgICAgIHR4Mi5zdGFya25ldFRyYW5zYWN0aW9uRGF0YS50cmFuc2FjdGlvblR5cGUuc2hvdWxkLmVxdWFsKFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLkRFUExPWV9BQ0NPVU5UKTtcbiAgICB9KTtcblxuICAgIGl0KCd0b0Jyb2FkY2FzdEZvcm1hdCBzaG91bGQgcmV0dXJuIERFUExPWV9BQ0NPVU5UIFJQQyBKU09OJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG5cbiAgICAgIGJ1aWxkZXIuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgYnJvYWRjYXN0ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoYnJvYWRjYXN0KTtcblxuICAgICAgcGFyc2VkLnR5cGUuc2hvdWxkLmVxdWFsKCdERVBMT1lfQUNDT1VOVCcpO1xuICAgICAgcGFyc2VkLnZlcnNpb24uc2hvdWxkLmVxdWFsKCcweDMnKTtcbiAgICAgIHBhcnNlZC5zZW5kZXJfYWRkcmVzcy5zaG91bGQuZXF1YWwoQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgICBwYXJzZWQuY2xhc3NfaGFzaC5zaG91bGQuZXF1YWwoT1pfRVRIX0FDQ09VTlRfQ0xBU1NfSEFTSCk7XG4gICAgICBwYXJzZWQuY29uc3RydWN0b3JfY2FsbGRhdGEuc2hvdWxkLmJlLkFycmF5KCkuYW5kLm5vdC5lbXB0eSgpO1xuICAgICAgcGFyc2VkLmNvbnRyYWN0X2FkZHJlc3Nfc2FsdC5zaG91bGQuc3RhcnRXaXRoKCcweCcpO1xuICAgICAgcGFyc2VkLm5vbmNlLnNob3VsZC5lcXVhbCgnMHgwJyk7XG4gICAgICBwYXJzZWQucmVzb3VyY2VfYm91bmRzLnNob3VsZC5oYXZlLnByb3BlcnR5KCdsMl9nYXMnKTtcbiAgICAgIHBhcnNlZC5ub25jZV9kYXRhX2F2YWlsYWJpbGl0eV9tb2RlLnNob3VsZC5lcXVhbCgnTDEnKTtcbiAgICAgIHBhcnNlZC5mZWVfZGF0YV9hdmFpbGFiaWxpdHlfbW9kZS5zaG91bGQuZXF1YWwoJ0wxJyk7XG4gICAgICBwYXJzZWQuc2hvdWxkLm5vdC5oYXZlLnByb3BlcnR5KCdjYWxsZGF0YScpO1xuICAgICAgcGFyc2VkLnNob3VsZC5ub3QuaGF2ZS5wcm9wZXJ0eSgnYWNjb3VudF9kZXBsb3ltZW50X2RhdGEnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1ZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZWplY3QgYnVpbGQgd2l0aG91dCBwdWJsaWMga2V5IG9yIGRlcGxveSBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTtcbiAgICAgIGJ1aWxkZXIuc2VuZGVyKEFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpLm5vbmNlKCcweDAnKS5jaGFpbklkKGNoYWluSWQpO1xuXG4gICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgvcHVibGljIGtleXxjb25zdHJ1Y3RvciBjYWxsZGF0YS9pKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IG1pc21hdGNoZWQgYWRkcmVzcyBhbmQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpO1xuICAgICAgKCgpID0+XG4gICAgICAgIGJ1aWxkZXJcbiAgICAgICAgICAuZnJvbVB1YmxpY0tleShBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpXG4gICAgICAgICAgLnNlbmRlcihBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzLCBBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpKS5zaG91bGQudGhyb3coL1tBYV1kZHJlc3MvKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ1N0YXJrbmV0IGRlcGxveSBhY2NvdW50IFJQQyB3aXJlIGZvcm1hdCcsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBwcm9kdWNlIGEgdmFsaWQgZGVwbG95LWFjY291bnQgd2lyZSBmb3JtYXQgdGhhdCB3b3VsZCByZWFjaCBub2RlIHZhbGlkYXRpb24nLCBhc3luYyBmdW5jdGlvbiAodGhpczogTW9jaGEuQ29udGV4dCkge1xuICAgIHRoaXMudGltZW91dCgxNTAwMCk7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgnc3RhcmtuZXQnKSk7XG4gICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG4gICAgYnVpbGRlci5mcm9tUHVibGljS2V5KEFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSkubm9uY2UoJzB4MCcpLmNoYWluSWQoU2FuZGJveFRyYW5zZmVyRGF0YS5jaGFpbklkKTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSBicm9hZGNhc3QgZm9ybWF0IHBhcnNlcyBhcyB2YWxpZCBKU09OIOKAlCBhIHBhcnNlIGZhaWx1cmVcbiAgICAvLyB3b3VsZCBtZWFuIHRoZSBub2RlIHJlamVjdHMgdGhlIHJlcXVlc3QgYmVmb3JlIHZhbGlkYXRpb25cbiAgICBjb25zdCBicm9hZGNhc3RQYXJhbXMgPSBKU09OLnBhcnNlKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCkpO1xuICAgIHNob3VsZC5leGlzdChicm9hZGNhc3RQYXJhbXMpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSBKU09OLVJQQyBlbnZlbG9wZSB0aGUgbm9kZSBleHBlY3RzXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGpzb25ycGM6ICcyLjAnLFxuICAgICAgbWV0aG9kOiAnc3RhcmtuZXRfYWRkRGVwbG95QWNjb3VudFRyYW5zYWN0aW9uJyxcbiAgICAgIHBhcmFtczogW2Jyb2FkY2FzdFBhcmFtc10sXG4gICAgICBpZDogMSxcbiAgICB9O1xuICAgIEpTT04uc3RyaW5naWZ5KGJvZHkpLnNob3VsZC5iZS5hLlN0cmluZztcblxuICAgIC8vIFZlcmlmeSB0aGUgcGFyYW1zIGNvbnRhaW4gdGhlIGZpZWxkcyBzdGFya25ldCBub2RlIHZhbGlkYXRlcyDigJRcbiAgICAvLyBhIG1pc3Npbmcgb3IgbWFsZm9ybWVkIGZpZWxkIHdvdWxkIHByb2R1Y2UgYSBwYXJhbS1wYXJzZSBlcnJvci5cbiAgICBzaG91bGQuZXhpc3QoYnJvYWRjYXN0UGFyYW1zLnR5cGUpO1xuICAgIHNob3VsZC5leGlzdChicm9hZGNhc3RQYXJhbXMudmVyc2lvbik7XG4gICAgc2hvdWxkLmV4aXN0KGJyb2FkY2FzdFBhcmFtcy5ub25jZSk7XG4gICAgc2hvdWxkLmV4aXN0KGJyb2FkY2FzdFBhcmFtcy5jbGFzc19oYXNoKTtcbiAgICBzaG91bGQuZXhpc3QoYnJvYWRjYXN0UGFyYW1zLmNvbnRyYWN0X2FkZHJlc3Nfc2FsdCk7XG4gICAgc2hvdWxkLmV4aXN0KGJyb2FkY2FzdFBhcmFtcy5jb25zdHJ1Y3Rvcl9jYWxsZGF0YSk7XG4gIH0pO1xufSk7XG4iXX0=
|