@bitgo-beta/sdk-coin-xtz 1.4.3-alpha.413 → 1.4.3-alpha.415
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.
|
@@ -122,7 +122,7 @@ describe('Tezos Transaction builder', function () {
|
|
|
122
122
|
should_1.default.equal(tx.inputs.length, 1);
|
|
123
123
|
should_1.default.equal(tx.outputs.length, 0);
|
|
124
124
|
tx.inputs[0].address.should.equal('tz2PtJ9zgEgFVTRqy6GXsst54tH3ksEnYvvS');
|
|
125
|
-
tx.inputs[0].value.should.equal('
|
|
125
|
+
tx.inputs[0].value.should.equal('10');
|
|
126
126
|
should_1.default.not.exist(tx.delegate);
|
|
127
127
|
tx.signature.length.should.equal(0);
|
|
128
128
|
Object.keys(tx.getIndexesByTransactionType()).length.should.equal(1);
|
|
@@ -205,20 +205,20 @@ describe('Tezos Transaction builder', function () {
|
|
|
205
205
|
txBuilder.branch('BM8QdZ92VyaH1s5nwAF9rUXjiPZ3g3Nsn6oYbdKqj2RgHxvWXVS');
|
|
206
206
|
txBuilder.sign({ key: defaultKeyPair.getKeys().prv });
|
|
207
207
|
const tx = await txBuilder.build();
|
|
208
|
-
tx.id.should.equal('
|
|
208
|
+
tx.id.should.equal('oo2KFqWUTKZq6se9hjfegaMaPbXoh54ZdqMCczLMx5EFBFir61k');
|
|
209
209
|
tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
|
|
210
210
|
tx.source.should.equal('tz2PtJ9zgEgFVTRqy6GXsst54tH3ksEnYvvS');
|
|
211
211
|
should_1.default.equal(tx.inputs.length, 2);
|
|
212
212
|
should_1.default.equal(tx.outputs.length, 1);
|
|
213
213
|
tx.inputs[0].address.should.equal('tz2PtJ9zgEgFVTRqy6GXsst54tH3ksEnYvvS');
|
|
214
|
-
tx.inputs[0].value.should.equal('
|
|
214
|
+
tx.inputs[0].value.should.equal('4764');
|
|
215
215
|
tx.inputs[1].address.should.equal('tz2PtJ9zgEgFVTRqy6GXsst54tH3ksEnYvvS');
|
|
216
216
|
tx.inputs[1].value.should.equal('1004764');
|
|
217
|
-
tx.outputs[0].address.should.equal('
|
|
217
|
+
tx.outputs[0].address.should.equal('KT1A9heCJqvJ3JUci8mngHd233d5vCZFp7Kn');
|
|
218
218
|
tx.outputs[0].value.should.equal('1000000');
|
|
219
219
|
tx.delegate.should.equal('tz1KpbK5v1NB2vg3JHBxXJZhyQ7ur83Xp7iC');
|
|
220
220
|
tx.signature.length.should.equal(1);
|
|
221
|
-
tx.signature[0].should.equal('
|
|
221
|
+
tx.signature[0].should.equal('sigvD51ih2buKJk18C67QkaWgA4gaWfzz4NwTewpbPkNvBokeXonyVER8PykorqZrjNcr1WGB1QY1wTXeGWaVtHXBg4WhGd7');
|
|
222
222
|
const indexesByTransactionType = tx.getIndexesByTransactionType();
|
|
223
223
|
Object.keys(indexesByTransactionType).length.should.equal(2);
|
|
224
224
|
indexesByTransactionType.reveal.length.should.equal(1);
|
|
@@ -653,4 +653,4 @@ describe('Tezos Transaction builder', function () {
|
|
|
653
653
|
});
|
|
654
654
|
});
|
|
655
655
|
});
|
|
656
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsbURBQXVEO0FBQ3ZELGlEQUE0QztBQUM1QyxnRUFBcUM7QUFDckMsdURBQXlDO0FBQ3pDLG1DQUFtQztBQUVuQyxRQUFRLENBQUMsMkJBQTJCLEVBQUU7SUFDcEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxZQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hDLEdBQUcsRUFBRSxpSEFBaUg7S0FDdkgsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDNUIsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVDLE1BQU0sU0FBUyxHQUFRLElBQUksWUFBTSxDQUFDLGtCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2RSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QixFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzNELEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQy9ELGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxF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QUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RixNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVuQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMvRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFD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Q0FBQyxDQUFDO1lBQ3ZDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMzRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMzRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLGdCQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQzFC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QUM1RixJQUFJLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUMzRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMkRBQTJELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekUsTUFBTSxTQUFTLEdBQVEsSUFBSSxZQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFNBQVMsQ0FBQyxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztZQUN4RSxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsU0FBUztpQkFDTixRQUFRLENBQUMsS0FBSyxDQUFDO2lCQUNmLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDNUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUMxQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDZixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELGdCQUFNLENBQUMsTUFBTSxDQUNYLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUMxRCxJQUFJLE1BQU0sQ0FBQyxnRUFBZ0UsQ0FBQyxDQUM3RSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBYdHpMaWIgfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnVGV6b3MgVHJhbnNhY3Rpb24gYnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgZGVmYXVsdEtleVBhaXIgPSBuZXcgWHR6TGliLktleVBhaXIoe1xuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0szRDhUWGZ2QUpnSFZmVEVlUU5XNVlzOXdadG5VWmtxUHpGelNqYkVKcldDMXZaNEduWEN2UjdyUUwyVUZYM1JTdVllVTlNckVSbTFYQnZBQ293N2MzNnZuejVpWXlqMicsXG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgcGFyc2UnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIHVuc2lnbmVkIGluaXQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLmZyb20odGVzdERhdGEudW5zaWduZWRTZXJpYWxpemVkT3JpZ2luYXRpb25UcmFuc2FjdGlvbik7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKCcnKTtcbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejFWUmpScFZLbnYxNkFWcHJGSDF0a0RuNFREZlZxQTg5M0EnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MVZSalJwVktudjE2QVZwckZIMXRrRG40VERmVnFBODkzQScpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwNDc2NCcpO1xuICAgICAgdHgub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnJyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwMDAwMCcpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdCh0eC5kZWxlZ2F0ZSk7XG4gICAgICB0eC5zaWduYXR1cmUubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIE9iamVjdC5rZXlzKHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpKS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHgub3duZXJzLmxlbmd0aC5zaG91bGQuZXF1YWwoMyk7XG4gICAgICB0eC5vd25lcnNbMF0uc2hvdWxkLmVxdWFsKCdzcHBrN1pXQjhkaVUyVFdlaHhka1dDVjJEVEZ2bjFoUHo0cUxqaUQzbkpRb3pLbm9TRW5TQzhiJyk7XG4gICAgICB0eC5vd25lcnNbMV0uc2hvdWxkLmVxdWFsKCdzcHBrN1pxOUtQdHdremtnQXNoYTRqVTI5QzQzTWNnUDJza0s1NnRqZDdLSmpoY21INkFaQzFGJyk7XG4gICAgICB0eC5vd25lcnNbMl0uc2hvdWxkLmVxdWFsKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgYnVpbGQnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIGluaXQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICcxMCcgfSk7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJ3hwdWI2NjFNeU13QXFSYmNGaEN2ZGhUQWZwRUVEVjU4b3FEdnY2NVlOSEM2ODZOTnM0S2JIOFlaUUpXVm1yZmJ2ZTdhQVZIenh3OGJLRnhBN01MZURLNkJiTGZrRTNicWt2SExQZ2FHSEh0WUdlWScsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc291cmNlS2V5UGFpciA9IG5ldyBYdHpMaWIuS2V5UGFpcihzb3VyY2UpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShzb3VyY2VLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIuaW5pdGlhbEJhbGFuY2UoJzEwMDAwMDAnKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoXG4gICAgICAgIG5ldyBYdHpMaWIuS2V5UGFpcih7IHB1YjogJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInIH0pLmdldEtleXMoKS5wdWJcbiAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoXG4gICAgICAgIG5ldyBYdHpMaWIuS2V5UGFpcih7IHB1YjogJ3NwcGs3WnE5S1B0d2t6a2dBc2hhNGpVMjlDNDNNY2dQMnNrSzU2dGpkN0tKamhjbUg2QVpDMUYnIH0pLmdldEtleXMoKS5wdWJcbiAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoXG4gICAgICAgIG5ldyBYdHpMaWIuS2V5UGFpcih7IHB1YjogJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnIH0pLmdldEtleXMoKS5wdWJcbiAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnJyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMDAwMTAnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJycpO1xuICAgICAgdHgub3V0cHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMDAwMDAnKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgICAgT2JqZWN0LmtleXModHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCkpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgzKTtcbiAgICAgIHR4Lm93bmVyc1swXS5zaG91bGQuZXF1YWwoJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInKTtcbiAgICAgIHR4Lm93bmVyc1sxXS5zaG91bGQuZXF1YWwoJ3NwcGs3WnE5S1B0d2t6a2dBc2hhNGpVMjlDNDNNY2dQMnNrSzU2dGpkN0tKamhjbUg2QVpDMUYnKTtcbiAgICAgIHR4Lm93bmVyc1syXS5zaG91bGQuZXF1YWwoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKTtcbiAgICB9KTtcblxuICAgIGl0KCdhbiBhY2NvdW50IHJldmVhbCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHsgZmVlOiAnMTAnIH0pO1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjRmhDdmRoVEFmcEVFRFY1OG9xRHZ2NjVZTkhDNjg2Tk5zNEtiSDhZWlFKV1ZtcmZidmU3YUFWSHp4dzhiS0Z4QTdNTGVESzZCYkxma0UzYnFrdkhMUGdhR0hIdFlHZVknLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgWHR6TGliLktleVBhaXIoc291cmNlKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2Uoa2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLnB1YmxpY0tleVRvUmV2ZWFsKGtleVBhaXIuZ2V0RXh0ZW5kZWRLZXlzKCkueHB1Yik7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJycpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDApO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzE0MjAnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QodHguZGVsZWdhdGUpO1xuICAgICAgdHguc2lnbmF0dXJlLmxlbmd0aC5zaG91bGQuZXF1YWwoMCk7XG4gICAgICBPYmplY3Qua2V5cyh0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKSkubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgZm9yd2FyZGVyIGNvbnRyYWN0IGluaXQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICBjb25zdCBmb3J3YXJkZXJEZXN0aW5hdGlvbiA9ICdLVDFIVXJ0Nmtmdll5REVZQ0oyR1NqdlRQWjZLbVJmeExCVTgnO1xuICAgICAgdHhCdWlsZGVyLmZvcndhcmRlckRlc3RpbmF0aW9uKGZvcndhcmRlckRlc3RpbmF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICcxMCcgfSk7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJ3hwdWI2NjFNeU13QXFSYmNGaEN2ZGhUQWZwRUVEVjU4b3FEdnY2NVlOSEM2ODZOTnM0S2JIOFlaUUpXVm1yZmJ2ZTdhQVZIenh3OGJLRnhBN01MZURLNkJiTGZrRTNicWt2SExQZ2FHSEh0WUdlWScsXG4gICAgICB9O1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBYdHpMaWIuS2V5UGFpcihzb3VyY2UpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShrZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIucHVibGljS2V5VG9SZXZlYWwoa2V5UGFpci5nZXRFeHRlbmRlZEtleXMoKS54cHViKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4LnNvdXJjZS5zaG91bGQuZXF1YWwoa2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHgucHVibGljS2V5VG9SZXZlYWwuc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICB0eC5mb3J3YXJkZXJEZXN0aW5hdGlvbi5zaG91bGQuZXF1YWwoZm9yd2FyZGVyRGVzdGluYXRpb24pO1xuICAgICAgdHgub3duZXJzLmxlbmd0aC5zaG91bGQuZXF1YWwoMCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgc2lnbicsICgpID0+IHtcbiAgICBpdCgnYW4gaW5pdCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzQ3NjQnLFxuICAgICAgICBnYXNMaW1pdDogJzMzOTcxJyxcbiAgICAgICAgc3RvcmFnZUxpbWl0OiAnMTI5MicsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci5pbml0aWFsQmFsYW5jZSgnMTAwMDAwMCcpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignc3BwazdaV0I4ZGlVMlRXZWh4ZGtXQ1YyRFRGdm4xaFB6NHFMamlEM25KUW96S25vU0VuU0M4YicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCdzcHBrN1pxOUtQdHdremtnQXNoYTRqVTI5QzQzTWNnUDJza0s1NnRqZDdLSmpoY21INkFaQzFGJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JNOFFkWjkyVnlhSDFzNW53QUY5clVYamlQWjNnM05zbjZvWWJkS3FqMlJnSHh2V1hWUycpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJ29wTmZqakVmV2s3SHNuWThmUXJVb1BGdVhaZkFCd2V1YkE2RDRiVlNjbXFvVnpjWlZGQScpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4LnNvdXJjZS5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0cy5sZW5ndGgsIDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHR4LmlucHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICB0eC5pbnB1dHNbMF0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDA0NzY0Jyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCdLVDFKOUxmaERWNkZReFI3YU1hSzdSNlJ3OG1CcGZoUDVNQTMnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDAwMDAwJyk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHR4LmRlbGVnYXRlKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHguc2lnbmF0dXJlWzBdLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ1ZENTdoYUFNQ29iSHJDd0g5QUJmYkZ2ZG15Ujlac3BaQzNaaWhiOXRFUGZodHpDS1MxRjhmTG9WcG9kdm9yM1BVb283cnk0ajQ2eFlFVEV6RUxtdG5yTlRhVFBYNCdcbiAgICAgICk7XG4gICAgICBPYmplY3Qua2V5cyh0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKSkubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDMpO1xuICAgICAgdHgub3duZXJzWzBdLnNob3VsZC5lcXVhbCgnc3BwazdaV0I4ZGlVMlRXZWh4ZGtXQ1YyRFRGdm4xaFB6NHFMamlEM25KUW96S25vU0VuU0M4YicpO1xuICAgICAgdHgub3duZXJzWzFdLnNob3VsZC5lcXVhbCgnc3BwazdacTlLUHR3a3prZ0FzaGE0alUyOUM0M01jZ1Ayc2tLNTZ0amQ3S0pqaGNtSDZBWkMxRicpO1xuICAgICAgdHgub3duZXJzWzJdLnNob3VsZC5lcXVhbCgnc3BwazdkMnp0emJyTGRCYVRCN3l6YVdSa1BmY1dHc3JOUU5KZGtCRTliQ1RTU3pla0xOenB2ZicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Egd2FsbGV0IGluaXQgdHJhbnNhY3Rpb24gd2l0aCBkZWxlZ2F0aW9uIGFuZCByZXZlYWwgdGhlIHNvdXJjZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzQ3NjQnLFxuICAgICAgICBnYXNMaW1pdDogJzMzOTcxJyxcbiAgICAgICAgc3RvcmFnZUxpbWl0OiAnMTI5MicsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci5wdWJsaWNLZXlUb1JldmVhbChkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIHR4QnVpbGRlci5pbml0aWFsQmFsYW5jZSgnMTAwMDAwMCcpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignc3BwazdaV0I4ZGlVMlRXZWh4ZGtXQ1YyRFRGdm4xaFB6NHFMamlEM25KUW96S25vU0VuU0M4YicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCdzcHBrN1pxOUtQdHdremtnQXNoYTRqVTI5QzQzTWNnUDJza0s1NnRqZDdLSmpoY21INkFaQzFGJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKTtcbiAgICAgIHR4QnVpbGRlci5pbml0aWFsRGVsZWdhdGUoJ3R6MUtwYks1djFOQjJ2ZzNKSEJ4WEpaaHlRN3VyODNYcDdpQycpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnb25wTjRacTY2NFlUcml5Vm1CYmdFWkFSZUhidWN2RDMxWHd2bnBQNVQ5cXpmaGJhbmJ4Jyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMik7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzE0MjAnKTtcbiAgICAgIHR4LmlucHV0c1sxXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICB0eC5pbnB1dHNbMV0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDA0NzY0Jyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCdLVDFIZHR0cHY3Q0JhSjhpZ2RraEN1ZE1IQldVcU52aUpDVGYnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDAwMDAwJyk7XG4gICAgICB0eC5kZWxlZ2F0ZS5zaG91bGQuZXF1YWwoJ3R6MUtwYks1djFOQjJ2ZzNKSEJ4WEpaaHlRN3VyODNYcDdpQycpO1xuICAgICAgdHguc2lnbmF0dXJlLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5zaWduYXR1cmVbMF0uc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lndEp0cVZmN0ZKVnFrRFB5UFc4NzhGZkNucENQTmI2SkpkWEF4ZXplcGU0dDk3Qndmb3VZSjZHTXFIR1NOaGV2dTR1aUxTUTJoMzc0YTROeE1uQTlFOXFMWGE0ajkzJ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSA9IHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpO1xuICAgICAgT2JqZWN0LmtleXMoaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKS5sZW5ndGguc2hvdWxkLmVxdWFsKDIpO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnJldmVhbC5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnJldmVhbFswXS5zaG91bGQuZXF1YWwoMCk7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUub3JpZ2luYXRpb24ubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZS5vcmlnaW5hdGlvblswXS5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgzKTtcbiAgICAgIHR4Lm93bmVyc1swXS5zaG91bGQuZXF1YWwoJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInKTtcbiAgICAgIHR4Lm93bmVyc1sxXS5zaG91bGQuZXF1YWwoJ3NwcGs3WnE5S1B0d2t6a2dBc2hhNGpVMjlDNDNNY2dQMnNrSzU2dGpkN0tKamhjbUg2QVpDMUYnKTtcbiAgICAgIHR4Lm93bmVyc1syXS5zaG91bGQuZXF1YWwoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHJldmVhbCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIucHVibGljS2V5VG9SZXZlYWwoZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnb29zNG4xekpBR2VxTFFyTnNuR0FmenpqNkZlWnFiU3JuQU1WVGRDNDg1Y2luRldONnN1Jyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMCk7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTQyMCcpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdCh0eC5kZWxlZ2F0ZSk7XG4gICAgICB0eC5zaWduYXR1cmUubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4LnNpZ25hdHVyZVswXS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdUdGZjeHR2VTV6V2JzV0RKd0t2SGREY1dZRGhnc2I5b3ptUTQ0QVVHSG5TSkpndlBSMkN2TkNVWDhheGV6SktvWlJ6Z3Y5Z1NFM0dTRGg1U0VibTMxSnFNNTN5eWcnXG4gICAgICApO1xuICAgICAgY29uc3QgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlID0gdHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCk7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUucmV2ZWFsLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUucmV2ZWFsWzBdLnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIE9iamVjdC5rZXlzKHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpKS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHgub3duZXJzLmxlbmd0aC5zaG91bGQuZXF1YWwoMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSBtdWx0aXNpZyBzZW5kIHRyYW5zYWN0aW9uIHRvIGFuIGltcGxpY2l0IGFjY291bnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC50cmFuc2ZlcignMTAwMDAwMCcpXG4gICAgICAgIC5mcm9tKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKVxuICAgICAgICAudG8oJ3R6MVZSalJwVktudjE2QVZwckZIMXRrRG40VERmVnFBODkzQScpXG4gICAgICAgIC5mZWUoJzQ3NjQnKVxuICAgICAgICAuZ2FzTGltaXQoJzMzOTcxJylcbiAgICAgICAgLnN0b3JhZ2VMaW1pdCgnMTI5MicpXG4gICAgICAgIC5kYXRhVG9TaWduKFxuICAgICAgICAgICcwNTA3MDcwYTAwMDAwMDE2MDE5NjM2OWM5MDYyNTU3NWJhNDQ1OTRiMjM3OTQ4MzJhOTMzN2Y3YTJkMDAwNzA3MDAwMDA1MDUwMjAwMDAwMDMyMDMyMDA1M2QwMzZkMDc0MzAzNWQwYTAwMDAwMDE1MDA2YjVkZGFlZjNmYjVkN2MxNTFjZmIzNmZiZTQzYTdhMDY2Nzc3Mzk0MDMxZTA3NDMwMzZhMDAwMTAzNGYwMzRkMDMxYidcbiAgICAgICAgKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oe1xuICAgICAgICBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHBydjogJ3Nwc2syY2JpVnNBdnBHS21hdTlYY01zY0wzTlJ3amt5VDU3NU41QXlBb2Zjb2o0MXg2ZzZUTCcgfSkuZ2V0S2V5cygpLnBydixcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHNlZWQ6IEJ1ZmZlci5hbGxvYygxNikgfSkuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnb284aGFLanVpWmZqTEptcFdnS0RWRjFrS2JiMnVFdHlnRnlyU1Z6Z29aTmtjM25VTURkJyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAyKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnNDc2NCcpO1xuICAgICAgdHguaW5wdXRzWzFdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKTtcbiAgICAgIHR4LmlucHV0c1sxXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMDAwMDAnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MVZSalJwVktudjE2QVZwckZIMXRrRG40VERmVnFBODkzQScpO1xuICAgICAgdHgub3V0cHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMDAwMDAnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QodHguZGVsZWdhdGUpO1xuICAgICAgdHguc2lnbmF0dXJlLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5zaWduYXR1cmVbMF0uc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnUUxITHpXTE5CV1lER2ZSY0EzNlphTWthcEtKUktTakRCMldyRHNvdTlGWkxvejRLcDF1Y1c5QUc3bWV5OXdqQWlOZlJmQ0ZyQlY5eUtzVThVWjRzRUwyMVY3dldZJ1xuICAgICAgKTtcbiAgICAgIHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCkuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnYmE3YTA0ZmFiMWEzZjc3ZWRhOTZiNTUxOTQ3ZGQzNDNlMTY1ZDFiOTFiNmY5ZjgwNjY0OGI2M2U1N2M4OGNjODZjMDFhYWNhODdiZGJjZGM0ZTYxMTdiNjY3ZTI5ZjliNTA0MzYyYzgzMWJiOWMyNTAwYjM4OTAyOGMwYTAwMDE5NjM2OWM5MDYyNTU3NWJhNDQ1OTRiMjM3OTQ4MzJhOTMzN2Y3YTJkMDBmZmZmMDQ2ZDYxNjk2ZTAwMDAwMTI1MDcwNzA3MDcwMDAwMDUwNTAyMDAwMDAwNDMwMzIwMDUzZDAzNmQwNzQzMDM1ZDAxMDAwMDAwMjQ3NDdhMzE1NjUyNmE1MjcwNTY0YjZlNzYzMTM2NDE1NjcwNzI0NjQ4MzE3NDZiNDQ2ZTM0NTQ0NDY2NTY3MTQxMzgzOTMzNDEwMzFlMDc0MzAzNmEwMDgwODk3YTAzNGYwMzRkMDMxYjAyMDAwMDAwZDAwNTA5MDEwMDAwMDA2MDczNjk2NzRlNmE0NDM2MzQ0ZTc1NTY2ZTU1NGIzNzZmNTY0MjMyNjMzMjUzNTAzMzMyNTY1OTZhMzc2NDU0Nzk2YjYyNmU1Mjc4Nzk0NDZmNTMzOTQyNDc3NjY3NjE2Nzc2NmU0ZDYzNTQzNDY4NTk2MzYzNjE2MjYyNDY0NzZmMzk3NDY0NTY1MTU0MzQ0ZDM0MzY2NTdhNTk0YTY0NGMzMjcwN2E1OTQ0NTM3NzZiNjY1MjM2Nzk3MjcwNzA1OTA1MDkwMTAwMDAwMDYwNzM2OTY3NTk2NjU2NTk0YTU1NjE2OTRiNGI1YTU4MzQ3YTczN2E1NzVhMzc1MjQ2MzIzOTMyNmU1NjMyNTAzNjU4NGQzNDZlNGI2NTZiMzI1OTY3NTc1MTM4NDI0YzUzMzE3MjMyMzI3NTM0NjEzOTUzNDM3NjQ3NGQ2MzYyMzgzOTQyNmE1NDY2NzQ1NDZlMzI3NjY3NTU3YTQzNTQ1MTQ3NTMzMjYzNGE0ZTc2NjI1OTc0NzU0NzUxNmE0NzUwMDMwNjExZWJkYTMwZGQxNTAzMjQ3MzczOTE3MDU4ODY4NDBiZmI5OWY4ZjUxZDY1ODZiMjc0MDhlODRkZjkzY2UwZjQ1ZGM2ZThlNmRmMDAwZTYwMmRhMTljMzUwOTE5MGIzN2U3ZGY3YjExZDU1MmNjYmM0NmUzZGQzNGMwNWYzYmY4J1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSA9IHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpO1xuICAgICAgT2JqZWN0LmtleXMoaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnRyYW5zYWN0aW9uLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUudHJhbnNhY3Rpb25bMF0uc2hvdWxkLmVxdWFsKDApO1xuICAgICAgdHgub3duZXJzLmxlbmd0aC5zaG91bGQuZXF1YWwoMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSBzZW5kIHRyYW5zYWN0aW9uIHRvIGFuIG9yaWdpbmF0ZWQgYWNjb3VudCAob3RoZXIgY29udHJhY3QpJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JNOFFkWjkyVnlhSDFzNW53QUY5clVYamlQWjNnM05zbjZvWWJkS3FqMlJnSHh2V1hWUycpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudHJhbnNmZXIoJzEwMCcpXG4gICAgICAgIC5mcm9tKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKVxuICAgICAgICAudG8oJ0tUMUhVcnQ2a2Z2WXlERVlDSjJHU2p2VFBaNkttUmZ4TEJVOCcpXG4gICAgICAgIC5mZWUoJzQ3NjQnKVxuICAgICAgICAuZ2FzTGltaXQoJzMzOTcxJylcbiAgICAgICAgLnN0b3JhZ2VMaW1pdCgnMTI5MicpXG4gICAgICAgIC5kYXRhVG9TaWduKFxuICAgICAgICAgICcwNTA3MDcwYTAwMDAwMDE2MDE5NjM2OWM5MDYyNTU3NWJhNDQ1OTRiMjM3OTQ4MzJhOTMzN2Y3YTJkMDAwNzA3MDAwMDA1MDUwMjAwMDAwMDMyMDMyMDA1M2QwMzZkMDc0MzAzNWQwYTAwMDAwMDE1MDA2YjVkZGFlZjNmYjVkN2MxNTFjZmIzNmZiZTQzYTdhMDY2Nzc3Mzk0MDMxZTA3NDMwMzZhMDAwMTAzNGYwMzRkMDMxYidcbiAgICAgICAgKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oe1xuICAgICAgICBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHBydjogJ3Nwc2syY2JpVnNBdnBHS21hdTlYY01zY0wzTlJ3amt5VDU3NU41QXlBb2Zjb2o0MXg2ZzZUTCcgfSkuZ2V0S2V5cygpLnBydixcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHNlZWQ6IEJ1ZmZlci5hbGxvYygxNikgfSkuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnb29iVE5vNzJkdTlCRllmeVpUbzY0a1RYVmhCZkhOdUphSlFYdU5HVnI2Z1lDRHBZakRRJyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAyKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnNDc2NCcpO1xuICAgICAgdHguaW5wdXRzWzFdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKTtcbiAgICAgIHR4LmlucHV0c1sxXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMCcpO1xuICAgICAgdHgub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4Jyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwJyk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHR4LmRlbGVnYXRlKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHguc2lnbmF0dXJlWzBdLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ2NNM3hpUTlHTjl0UFhzVmtja1BIazY2a0FIRFJNYWc2WENiSExXdk1MUHFIOUtIZ3pBRmVwY2kyeDUza2NKR3FWaEZYYVVTRTNEaFJDR2RnajhhaGtrV2dpWVp1cidcbiAgICAgICk7XG4gICAgICB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ2JhN2EwNGZhYjFhM2Y3N2VkYTk2YjU1MTk0N2RkMzQzZTE2NWQxYjkxYjZmOWY4MDY2NDhiNjNlNTdjODhjYzg2YzAxYWFjYTg3YmRiY2RjNGU2MTE3YjY2N2UyOWY5YjUwNDM2MmM4MzFiYjljMjUwMGIzODkwMjhjMGEwMDAxOTYzNjljOTA2MjU1NzViYTQ0NTk0YjIzNzk0ODMyYTkzMzdmN2EyZDAwZmZmZjA0NmQ2MTY5NmUwMDAwMDE0MDA3MDcwNzA3MDAwMDA1MDUwMjAwMDAwMDVlMDMyMDA1M2QwMzZkMDc0MzAzNmUwMTAwMDAwMDI0NGI1NDMxNDg1NTcyNzQzNjZiNjY3NjU5Nzk0NDQ1NTk0MzRhMzI0NzUzNmE3NjU0NTA1YTM2NGI2ZDUyNjY3ODRjNDI1NTM4MDU1NTAzNmMwMjAwMDAwMDE1MDcyZjAyMDAwMDAwMDkwMjAwMDAwMDA0MDM0ZjAzMjcwMjAwMDAwMDAwMDc0MzAzNmEwMGE0MDEwMzRmMDM0ZDAzMWIwMjAwMDAwMGQwMDUwOTAxMDAwMDAwNjA3MzY5Njc0ZTZhNDQzNjM0NGU3NTU2NmU1NTRiMzc2ZjU2NDIzMjYzMzI1MzUwMzMzMjU2NTk2YTM3NjQ1NDc5NmI2MjZlNTI3ODc5NDQ2ZjUzMzk0MjQ3NzY2NzYxNjc3NjZlNGQ2MzU0MzQ2ODU5NjM2MzYxNjI2MjQ2NDc2ZjM5NzQ2NDU2NTE1NDM0NGQzNDM2NjU3YTU5NGE2NDRjMzI3MDdhNTk0NDUzNzc2YjY2NTIzNjc5NzI3MDcwNTkwNTA5MDEwMDAwMDA2MDczNjk2NzU5NjY1NjU5NGE1NTYxNjk0YjRiNWE1ODM0N2E3MzdhNTc1YTM3NTI0NjMyMzkzMjZlNTYzMjUwMzY1ODRkMzQ2ZTRiNjU2YjMyNTk2NzU3NTEzODQyNGM1MzMxNzIzMjMyNzUzNDYxMzk1MzQzNzY0NzRkNjM2MjM4Mzk0MjZhNTQ2Njc0NTQ2ZTMyNzY2NzU1N2E0MzU0NTE0NzUzMzI2MzRhNGU3NjYyNTk3NDc1NDc1MTZhNDc1MDAzMDY2ZGJlZWU4MGRlNDU4NDdhZWViMDRmMTdkYmIyZTA3NzRhZTY5NDI4MTdkMzFlNzQ0YzdlNzc3MjkyNWM1ZjUxMGIxODUyM2RhZmU1NDYwM2M4NzUzMTQxZjNlMDk4OTY3OGYyMjUyZGViM2JkYWVmOTNkNmJlZmE5NDM5OTI0MCdcbiAgICAgICk7XG4gICAgICBPYmplY3Qua2V5cyh0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKSkubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Egc2VuZCB0cmFuc2FjdGlvbiB0byBtdWx0aXBsZSBkZXN0aW5hdGlvbnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC50cmFuc2ZlcignMTAwJylcbiAgICAgICAgLmZyb20oJ0tUMU5IMk0yM3hvdmh3N3V3V1Z1b0dUWXh5a2VDY1ZmU3FoTCcpXG4gICAgICAgIC50bygnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4JylcbiAgICAgICAgLmZlZSgnNDc2NCcpXG4gICAgICAgIC5jb3VudGVyKCcxJylcbiAgICAgICAgLmRhdGFUb1NpZ24oXG4gICAgICAgICAgJzA1MDcwNzBhMDAwMDAwMTYwMTk2MzY5YzkwNjI1NTc1YmE0NDU5NGIyMzc5NDgzMmE5MzM3ZjdhMmQwMDA3MDcwMDAwMDUwNTAyMDAwMDAwMzIwMzIwMDUzZDAzNmQwNzQzMDM1ZDBhMDAwMDAwMTUwMDZiNWRkYWVmM2ZiNWQ3YzE1MWNmYjM2ZmJlNDNhN2EwNjY3NzczOTQwMzFlMDc0MzAzNmEwMDAxMDM0ZjAzNGQwMzFiJ1xuICAgICAgICApO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC50cmFuc2ZlcignMTAwJylcbiAgICAgICAgLmZyb20oJ0tUMU5IMk0yM3hvdmh3N3V3V1Z1b0dUWXh5a2VDY1ZmU3FoTCcpXG4gICAgICAgIC50bygndHoxVlJqUnBWS252MTZBVnByRkgxdGtEbjRURGZWcUE4OTNBJylcbiAgICAgICAgLmZlZSgnNDc2NCcpXG4gICAgICAgIC5jb3VudGVyKCcyJylcbiAgICAgICAgLmRhdGFUb1NpZ24oXG4gICAgICAgICAgJzA1MDcwNzBhMDAwMDAwMTYwMTk2MzY5YzkwNjI1NTc1YmE0NDU5NGIyMzc5NDgzMmE5MzM3ZjdhMmQwMDA3MDcwMDAwMDUwNTAyMDAwMDAwMzIwMzIwMDUzZDAzNmQwNzQzMDM1ZDBhMDAwMDAwMTUwMDZiNWRkYWVmM2ZiNWQ3YzE1MWNmYjM2ZmJlNDNhN2EwNjY3NzczOTQwMzFlMDc0MzAzNmEwMDAxMDM0ZjAzNGQwMzFiJ1xuICAgICAgICApO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7XG4gICAgICAgIGtleTogbmV3IFh0ekxpYi5LZXlQYWlyKHsgcHJ2OiAnc3BzazJjYmlWc0F2cEdLbWF1OVhjTXNjTDNOUndqa3lUNTc1TjVBeUFvZmNvajQxeDZnNlRMJyB9KS5nZXRLZXlzKCkucHJ2LFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogbmV3IFh0ekxpYi5LZXlQYWlyKHsgc2VlZDogQnVmZmVyLmFsbG9jKDE2KSB9KS5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKCdvbnlHYVdzNno0YlZWY2ZuM2g5S2JCcmt0RWh1RHlKTFlFVkI0YUpSTTZZTm5nakR4RTQnKTtcbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHR4LnNvdXJjZS5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0cy5sZW5ndGgsIDQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAyKTtcbiAgICAgIHR4LmlucHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICB0eC5pbnB1dHNbMF0udmFsdWUuc2hvdWxkLmVxdWFsKCc0NzY0Jyk7XG4gICAgICB0eC5pbnB1dHNbMV0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ0tUMU5IMk0yM3hvdmh3N3V3V1Z1b0dUWXh5a2VDY1ZmU3FoTCcpO1xuICAgICAgdHguaW5wdXRzWzFdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwJyk7XG4gICAgICB0eC5pbnB1dHNbMl0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgdHguaW5wdXRzWzJdLnZhbHVlLnNob3VsZC5lcXVhbCgnNDc2NCcpO1xuICAgICAgdHguaW5wdXRzWzNdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKTtcbiAgICAgIHR4LmlucHV0c1szXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMCcpO1xuICAgICAgdHgub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4Jyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwJyk7XG4gICAgICB0eC5vdXRwdXRzWzFdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejFWUmpScFZLbnYxNkFWcHJGSDF0a0RuNFREZlZxQTg5M0EnKTtcbiAgICAgIHR4Lm91dHB1dHNbMV0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDAnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QodHguZGVsZWdhdGUpO1xuICAgICAgdHguc2lnbmF0dXJlLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5zaWduYXR1cmVbMF0uc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnZFVwekN4bWk5TldoZGJGR2Z2cVZ5SDhYZnIyVWlQYzJma3FOclE0Q0h2cmsxOVpEa3NEa3NFYzRESnNUYnBoZW5WOGpDTlpGcXpMNHNDVlJ6TTkzSG5TU3FnSno3J1xuICAgICAgKTtcbiAgICAgIHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCkuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnYmE3YTA0ZmFiMWEzZjc3ZWRhOTZiNTUxOTQ3ZGQzNDNlMTY1ZDFiOTFiNmY5ZjgwNjY0OGI2M2U1N2M4OGNjODZjMDFhYWNhODdiZGJjZGM0ZTYxMTdiNjY3ZTI5ZjliNTA0MzYyYzgzMWJiOWMyNTAwZTg1MjgxMDIwMDAxOTYzNjljOTA2MjU1NzViYTQ0NTk0YjIzNzk0ODMyYTkzMzdmN2EyZDAwZmZmZjA0NmQ2MTY5NmUwMDAwMDE0MDA3MDcwNzA3MDAwMTA1MDUwMjAwMDAwMDVlMDMyMDA1M2QwMzZkMDc0MzAzNmUwMTAwMDAwMDI0NGI1NDMxNDg1NTcyNzQzNjZiNjY3NjU5Nzk0NDQ1NTk0MzRhMzI0NzUzNmE3NjU0NTA1YTM2NGI2ZDUyNjY3ODRjNDI1NTM4MDU1NTAzNmMwMjAwMDAwMDE1MDcyZjAyMDAwMDAwMDkwMjAwMDAwMDA0MDM0ZjAzMjcwMjAwMDAwMDAwMDc0MzAzNmEwMGE0MDEwMzRmMDM0ZDAzMWIwMjAwMDAwMGQwMDUwOTAxMDAwMDAwNjA3MzY5Njc0ZTZhNDQzNjM0NGU3NTU2NmU1NTRiMzc2ZjU2NDIzMjYzMzI1MzUwMzMzMjU2NTk2YTM3NjQ1NDc5NmI2MjZlNTI3ODc5NDQ2ZjUzMzk0MjQ3NzY2NzYxNjc3NjZlNGQ2MzU0MzQ2ODU5NjM2MzYxNjI2MjQ2NDc2ZjM5NzQ2NDU2NTE1NDM0NGQzNDM2NjU3YTU5NGE2NDRjMzI3MDdhNTk0NDUzNzc2YjY2NTIzNjc5NzI3MDcwNTkwNTA5MDEwMDAwMDA2MDczNjk2NzU5NjY1NjU5NGE1NTYxNjk0YjRiNWE1ODM0N2E3MzdhNTc1YTM3NTI0NjMyMzkzMjZlNTYzMjUwMzY1ODRkMzQ2ZTRiNjU2YjMyNTk2NzU3NTEzODQyNGM1MzMxNzIzMjMyNzUzNDYxMzk1MzQzNzY0NzRkNjM2MjM4Mzk0MjZhNTQ2Njc0NTQ2ZTMyNzY2NzU1N2E0MzU0NTE0NzUzMzI2MzRhNGU3NjYyNTk3NDc1NDc1MTZhNDc1MDAzMDY2YzAxYWFjYTg3YmRiY2RjNGU2MTE3YjY2N2UyOWY5YjUwNDM2MmM4MzFiYjljMjUwMWU4NTI4MTAyMDAwMTk2MzY5YzkwNjI1NTc1YmE0NDU5NGIyMzc5NDgzMmE5MzM3ZjdhMmQwMGZmZmYwNDZkNjE2OTZlMDAwMDAxMjQwNzA3MDcwNzAwMDIwNTA1MDIwMDAwMDA0MjAzMjAwNTNkMDM2ZDA3NDMwMzVkMDEwMDAwMDAyNDc0N2EzMTU2NTI2YTUyNzA1NjRiNmU3NjMxMzY0MTU2NzA3MjQ2NDgzMTc0NmI0NDZlMzQ1NDQ0NjY1NjcxNDEzODM5MzM0MTAzMWUwNzQzMDM2YTAwYTQwMTAzNGYwMzRkMDMxYjAyMDAwMDAwZDAwNTA5MDEwMDAwMDA2MDczNjk2NzRlNmE0NDM2MzQ0ZTc1NTY2ZTU1NGIzNzZmNTY0MjMyNjMzMjUzNTAzMzMyNTY1OTZhMzc2NDU0Nzk2YjYyNmU1Mjc4Nzk0NDZmNTMzOTQyNDc3NjY3NjE2Nzc2NmU0ZDYzNTQzNDY4NTk2MzYzNjE2MjYyNDY0NzZmMzk3NDY0NTY1MTU0MzQ0ZDM0MzY2NTdhNTk0YTY0NGMzMjcwN2E1OTQ0NTM3NzZiNjY1MjM2Nzk3MjcwNzA1OTA1MDkwMTAwMDAwMDYwNzM2OTY3NTk2NjU2NTk0YTU1NjE2OTRiNGI1YTU4MzQ3YTczN2E1NzVhMzc1MjQ2MzIzOTMyNmU1NjMyNTAzNjU4NGQzNDZlNGI2NTZiMzI1OTY3NTc1MTM4NDI0YzUzMzE3MjMyMzI3NTM0NjEzOTUzNDM3NjQ3NGQ2MzYyMzgzOTQyNmE1NDY2NzQ1NDZlMzI3NjY3NTU3YTQzNTQ1MTQ3NTMzMjYzNGE0ZTc2NjI1OTc0NzU0NzUxNmE0NzUwMDMwNjc2NmEwYjFmNmNiMDM1YmY1Mzc4ODdiYTkwMDRjNDg5YmI0NThkOGM4ZTcyYjUwMzNiNmNlZThhZDUyZjg0ZWMyN2I3MTlmNWQwYjk4Y2RmMmQwNzQ0YjI1NTMwMTI2MzY4ODY5MjY0NWVhZmM5Y2RmMWI0OGI1MDUzYzUxZGNhJ1xuICAgICAgKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgICAgY29uc3QgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlID0gdHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCk7XG4gICAgICBPYmplY3Qua2V5cyhpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUudHJhbnNhY3Rpb24ubGVuZ3RoLnNob3VsZC5lcXVhbCgyKTtcbiAgICAgIGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZS50cmFuc2FjdGlvblswXS5zaG91bGQuZXF1YWwoMCk7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUudHJhbnNhY3Rpb25bMV0uc2hvdWxkLmVxdWFsKDEpO1xuXG4gICAgICBjb25zdCBmaXJzdFRyYW5zZmVyU2lnbmF0dXJlcyA9IHR4LmdldFRyYW5zZmVyU2lnbmF0dXJlcyhpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUudHJhbnNhY3Rpb25bMF0pO1xuICAgICAgZmlyc3RUcmFuc2ZlclNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ05qRDY0TnVWblVLN29WQjJjMlNQMzJWWWo3ZFR5a2JuUnh5RG9TOUJHdmdhZ3ZuTWNUNGhZY2NhYmJGR285dGRWUVQ0TTQ2ZXpZSmRMMnB6WURTd2tmUjZ5cnBwWSdcbiAgICAgICk7XG4gICAgICBmaXJzdFRyYW5zZmVyU2lnbmF0dXJlc1swXS5pbmRleC5zaG91bGQuZXF1YWwoMCk7XG4gICAgICBmaXJzdFRyYW5zZmVyU2lnbmF0dXJlc1sxXS5zaWduYXR1cmUuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnWWZWWUpVYWlLS1pYNHpzeldaN1JGMjkyblYyUDZYTTRuS2VrMllnV1E4QkxTMXIyMnU0YTlTQ3ZHTWNiODlCalRmdFRuMnZnVXpDVFFHUzJjSk52Yll0dUdRakdQJ1xuICAgICAgKTtcbiAgICAgIGZpcnN0VHJhbnNmZXJTaWduYXR1cmVzWzFdLmluZGV4LnNob3VsZC5lcXVhbCgxKTtcblxuICAgICAgY29uc3Qgc2Vjb25kVHJhbnNmZXJTaWduYXR1cmVzID0gdHguZ2V0VHJhbnNmZXJTaWduYXR1cmVzKGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZS50cmFuc2FjdGlvblsxXSk7XG4gICAgICBzZWNvbmRUcmFuc2ZlclNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ05qRDY0TnVWblVLN29WQjJjMlNQMzJWWWo3ZFR5a2JuUnh5RG9TOUJHdmdhZ3ZuTWNUNGhZY2NhYmJGR285dGRWUVQ0TTQ2ZXpZSmRMMnB6WURTd2tmUjZ5cnBwWSdcbiAgICAgICk7XG4gICAgICBzZWNvbmRUcmFuc2ZlclNpZ25hdHVyZXNbMF0uaW5kZXguc2hvdWxkLmVxdWFsKDApO1xuICAgICAgc2Vjb25kVHJhbnNmZXJTaWduYXR1cmVzWzFdLnNpZ25hdHVyZS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdZZlZZSlVhaUtLWlg0enN6V1o3UkYyOTJuVjJQNlhNNG5LZWsyWWdXUThCTFMxcjIydTRhOVNDdkdNY2I4OUJqVGZ0VG4ydmdVekNUUUdTMmNKTnZiWXR1R1FqR1AnXG4gICAgICApO1xuICAgICAgc2Vjb25kVHJhbnNmZXJTaWduYXR1cmVzWzFdLmluZGV4LnNob3VsZC5lcXVhbCgxKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHNlbmQgdHJhbnNhY3Rpb24gdG8gbXVsdGlwbGUgZGVzdGluYXRpb25zIGZyb20gaW1wbGljaXQgYWNjb3VudCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZUFjY291bnQgPSBuZXcgWHR6TGliLktleVBhaXIoeyBwcnY6ICdzcHNrMmNiaVZzQXZwR0ttYXU5WGNNc2NMM05Sd2preVQ1NzVONUF5QW9mY29qNDF4Nmc2VEwnIH0pO1xuXG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7IGZlZTogJzQ3NjQnIH0pO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQktuZmlTVkZUaml4Ymh6c1RiUjFlRG1pdDZ5SzdVQmNnUkpQaG1nZVdjWnFpTUhSWjZFJyk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMzc3NzUxJyk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKHNvdXJjZUFjY291bnQuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci50cmFuc2ZlcignMTExJykudG8oJ3R6MVZSalJwVktudjE2QVZwckZIMXRrRG40VERmVnFBODkzQScpO1xuICAgICAgdHhCdWlsZGVyLnRyYW5zZmVyKCcxMTEnKS50bygndHoyWENEYTJ0Y25TMjZQb0JnaVViOGgxeFlodEphZWJDMmJUJyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogc291cmNlQWNjb3VudC5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKCdvbzdtcFRCMjJRdTFkN0VWYzViNGVBZE1nRXp2ZEtSc0hHalpXb0VqUXdZazZCSjFOVHEnKTtcbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5TaW5nbGVTaWdTZW5kKTtcbiAgICAgIHR4LnNvdXJjZS5zaG91bGQuZXF1YWwoJ3R6MlAyRThFZ0hhTEE2QTE3ckgzcEU5VDJ0eDZEQTdENHNpVycpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0cy5sZW5ndGgsIDQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAyKTtcbiAgICAgIHR4LmlucHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoyUDJFOEVnSGFMQTZBMTdySDNwRTlUMnR4NkRBN0Q0c2lXJyk7XG4gICAgICB0eC5pbnB1dHNbMF0udmFsdWUuc2hvdWxkLmVxdWFsKCc0NzY0Jyk7XG4gICAgICB0eC5pbnB1dHNbMV0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlAyRThFZ0hhTEE2QTE3ckgzcEU5VDJ0eDZEQTdENHNpVycpO1xuICAgICAgdHguaW5wdXRzWzFdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTExJyk7XG4gICAgICB0eC5pbnB1dHNbMl0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlAyRThFZ0hhTEE2QTE3ckgzcEU5VDJ0eDZEQTdENHNpVycpO1xuICAgICAgdHguaW5wdXRzWzJdLnZhbHVlLnNob3VsZC5lcXVhbCgnNDc2NCcpO1xuICAgICAgdHguaW5wdXRzWzNdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQMkU4RWdIYUxBNkExN3JIM3BFOVQydHg2REE3RDRzaVcnKTtcbiAgICAgIHR4LmlucHV0c1szXS52YWx1ZS5zaG91bGQuZXF1YWwoJzExMScpO1xuICAgICAgdHgub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoxVlJqUnBWS252MTZBVnByRkgxdGtEbjRURGZWcUE4OTNBJyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTExJyk7XG4gICAgICB0eC5vdXRwdXRzWzFdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJYQ0RhMnRjblMyNlBvQmdpVWI4aDF4WWh0SmFlYkMyYlQnKTtcbiAgICAgIHR4Lm91dHB1dHNbMV0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMTEnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QodHguZGVsZWdhdGUpO1xuICAgICAgdHguc2lnbmF0dXJlLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5zaWduYXR1cmVbMF0uc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lndzVlRzJyQ2tBcUpjUjJTdVoyM1REUUV0ZlU4b0Z3OXJHcFRBdHB2bkM2OUViUWF6TVpMNmVVbll6eHp2V0ZiTEV0cDdIYk40am9XaTFDOUdRMzQ4TlhydzZYM1pkJ1xuICAgICAgKTtcbiAgICAgIHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCkuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnMDlmNTY4NjAyMWFhZGNmYzAwMDYzYjA4NzMwNTVjMmU3Yzg0MTM5OGZlY2UzZDc4NjVhOGVkMjc1NjcwOGQ0YTZjMDFhMTUyNWUyODlhZWQ5MzExOWM0NGZkM2FhOGU5ZGY4NTIyZTBkODBkOWMyNTk3ODcxN2U4NTI4MTAyNmYwMDAwNmI1ZGRhZWYzZmI1ZDdjMTUxY2ZiMzZmYmU0M2E3YTA2Njc3NzM5NDAwNmMwMWExNTI1ZTI4OWFlZDkzMTE5YzQ0ZmQzYWE4ZTlkZjg1MjJlMGQ4MGQ5YzI1OTg4NzE3ZTg1MjgxMDI2ZjAwMDFmYWY3MTFmOThkM2E5Nzg2NTY2NTFjMzA4NzUxMzhjMDg2ZmE4NzExMDBmY2YxODliMzY0YzAyMWU0YmUxYTAzMmYzODY3NDQ1ZTBjNjJjYTAxMDQ3ZmI4NTNmZTAyZDAzOGU2MmZjYWQwMmZmY2ExZDA1ZTRiNWE0ZTRmZGMzY2U2ZmMxMTYwN2M5Y2E4Y2VjYTZmZDczMzVkM2RhYjY0MzljZTJkZWUxMSdcbiAgICAgICk7XG4gICAgICBPYmplY3Qua2V5cyh0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKSkubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgbXVsdGlzaWcgc2VuZCB0cmFuc2FjdGlvbiB3aXRoIHRoZSBzaWduYXR1cmVzIGluIGN1c3RvbSBvcmRlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXJcbiAgICAgICAgLnRyYW5zZmVyKCcxMDAnKVxuICAgICAgICAuZnJvbSgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJylcbiAgICAgICAgLnRvKCdLVDFIVXJ0Nmtmdll5REVZQ0oyR1NqdlRQWjZLbVJmeExCVTgnKVxuICAgICAgICAuZmVlKCc0NzY0JylcbiAgICAgICAgLmdhc0xpbWl0KCczMzk3MScpXG4gICAgICAgIC5zdG9yYWdlTGltaXQoJzEyOTInKVxuICAgICAgICAuZGF0YVRvU2lnbignMDAnKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgLy8gTXVsdGlzaWcga2V5c1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHNlZWQ6IEJ1ZmZlci5hbGxvYygxOCkgfSkuZ2V0S2V5cygpLnBydiwgaW5kZXg6IDIgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogbmV3IFh0ekxpYi5LZXlQYWlyKHsgc2VlZDogQnVmZmVyLmFsbG9jKDE2KSB9KS5nZXRLZXlzKCkucHJ2LCBpbmRleDogMSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCBzaWduYXR1cmVzID0gdHgudG9Kc29uKCkuY29udGVudHNbMF0ucGFyYW1ldGVycy52YWx1ZS5hcmdzWzFdO1xuICAgICAgc2lnbmF0dXJlc1swXS5wcmltLnNob3VsZC5lcXVhbCgnTm9uZScpO1xuICAgICAgc2lnbmF0dXJlc1sxXS5wcmltLnNob3VsZC5lcXVhbCgnU29tZScpO1xuICAgICAgc2lnbmF0dXJlc1sxXS5hcmdzWzBdLnN0cmluZy5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdVeHZDUVNFV1F2WnJmM3lTMlZqU1RCV3ljTVBlM3pCQm82RVd2YTJkM3RIVjFES1pOVXM4YjVmbXFRZVhXdmRTU1h6dHg0OFVzUFk1Rm1KaURvZm1QU1o2U1VqWnQnXG4gICAgICApO1xuICAgICAgc2lnbmF0dXJlc1syXS5wcmltLnNob3VsZC5lcXVhbCgnU29tZScpO1xuICAgICAgc2lnbmF0dXJlc1syXS5hcmdzWzBdLnN0cmluZy5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdpQzI4NmdMYzFTU1dId0t5ZGN6d3dkd1RVUHY3ZTlta1BlSHpmRTl3RUc5UEtaNmZVY21yTWVZd2NIN3Q5Zldzbm96QjdGYXkydXhrbWkxdTFYMWJ3M01nSlVOcHUnXG4gICAgICApO1xuICAgICAgdHgub3duZXJzLmxlbmd0aC5zaG91bGQuZXF1YWwoMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSBtdWx0aXNpZyBzZW5kIHRyYW5zYWN0aW9uIHdpdGggdGhlIHNpZ25hdHVyZXMgaW4gZGVmYXVsdCBvcmRlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXJcbiAgICAgICAgLnRyYW5zZmVyKCcxMDAnKVxuICAgICAgICAuZnJvbSgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJylcbiAgICAgICAgLnRvKCdLVDFIVXJ0Nmtmdll5REVZQ0oyR1NqdlRQWjZLbVJmeExCVTgnKVxuICAgICAgICAuZmVlKCc0NzY0JylcbiAgICAgICAgLmdhc0xpbWl0KCczMzk3MScpXG4gICAgICAgIC5zdG9yYWdlTGltaXQoJzEyOTInKVxuICAgICAgICAuZGF0YVRvU2lnbignMDAnKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgLy8gTXVsdGlzaWcga2V5c1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHNlZWQ6IEJ1ZmZlci5hbGxvYygxOCkgfSkuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoeyBzZWVkOiBCdWZmZXIuYWxsb2MoMTYpIH0pLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlcyA9IHR4LnRvSnNvbigpLmNvbnRlbnRzWzBdLnBhcmFtZXRlcnMudmFsdWUuYXJnc1sxXTtcbiAgICAgIHNpZ25hdHVyZXNbMF0ucHJpbS5zaG91bGQuZXF1YWwoJ1NvbWUnKTtcbiAgICAgIHNpZ25hdHVyZXNbMF0uYXJnc1swXS5zdHJpbmcuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnaUMyODZnTGMxU1NXSHdLeWRjend3ZHdUVVB2N2U5bWtQZUh6ZkU5d0VHOVBLWjZmVWNtck1lWXdjSDd0OWZXc25vekI3RmF5MnV4a21pMXUxWDFidzNNZ0pVTnB1J1xuICAgICAgKTtcbiAgICAgIHNpZ25hdHVyZXNbMV0ucHJpbS5zaG91bGQuZXF1YWwoJ1NvbWUnKTtcbiAgICAgIHNpZ25hdHVyZXNbMV0uYXJnc1swXS5zdHJpbmcuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnVXh2Q1FTRVdRdlpyZjN5UzJWalNUQld5Y01QZTN6QkJvNkVXdmEyZDN0SFYxREtaTlVzOGI1Zm1xUWVYV3ZkU1NYenR4NDhVc1BZNUZtSmlEb2ZtUFNaNlNValp0J1xuICAgICAgKTtcbiAgICAgIHNpZ25hdHVyZXNbMl0ucHJpbS5zaG91bGQuZXF1YWwoJ05vbmUnKTtcbiAgICAgIE9iamVjdC5rZXlzKHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpKS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Egc2luZ2xlU2lnIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TaW5nbGVTaWdTZW5kKTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JNOFFkWjkyVnlhSDFzNW53QUY5clVYamlQWjNnM05zbjZvWWJkS3FqMlJnSHh2V1hWUycpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudHJhbnNmZXIobmV3IEJpZ051bWJlcigxMCkudG9GaXhlZCgwKSlcbiAgICAgICAgLmZyb20oZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKVxuICAgICAgICAudG8oJ0tUMUhVcnQ2a2Z2WXlERVlDSjJHU2p2VFBaNkttUmZ4TEJVOCcpXG4gICAgICAgIC5mZWUoJzQ3NjQnKVxuICAgICAgICAuZ2FzTGltaXQoJzEwMDk3MScpXG4gICAgICAgIC5zdG9yYWdlTGltaXQoJzEyOTInKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5TaW5nbGVTaWdTZW5kKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgdHhKc29uLmNvbnRlbnRzWzBdLmdhc19saW1pdC5zaG91bGQuZXF1YWwoJzEwMDk3MScpO1xuICAgICAgdHhKc29uLmNvbnRlbnRzWzBdLnN0b3JhZ2VfbGltaXQuc2hvdWxkLmVxdWFsKCcxMjkyJyk7XG4gICAgICB0eEpzb24uY29udGVudHNbMF0uYW1vdW50LnNob3VsZC5lcXVhbCgnMTAnKTtcbiAgICAgIHR4SnNvbi5jb250ZW50c1swXS5jb3VudGVyLnNob3VsZC5lcXVhbCgnMCcpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGZhaWwgdG8gc2lnbicsICgpID0+IHtcbiAgICBsZXQgZ2VuZXJpY1R4QnVpbGRlcjogYW55O1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd0eHR6JykpO1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIGdlbmVyaWNUeEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIGdlbmVyaWNUeEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIGdlbmVyaWNUeEJ1aWxkZXJcbiAgICAgICAgLnRyYW5zZmVyKCcxMDAnKVxuICAgICAgICAuZnJvbSgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJylcbiAgICAgICAgLnRvKCdLVDFIVXJ0Nmtmdll5REVZQ0oyR1NqdlRQWjZLbVJmeExCVTgnKVxuICAgICAgICAuZmVlKCc0NzY0JylcbiAgICAgICAgLmdhc0xpbWl0KCczMzk3MScpXG4gICAgICAgIC5zdG9yYWdlTGltaXQoJzEyOTInKVxuICAgICAgICAuZGF0YVRvU2lnbignMDAnKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHRyYW5zYWN0aW9uIHdpdGggbm8gc291cmNlIGFjY291bnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgdHJhbnNhY3Rpb24gd2l0aCBhIGRpZmZlcmVudCBwcml2YXRlIGtleSB0aGFuIHRoZSBzb3VyY2UgYWNjb3VudCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5lbXB0eVVuc2lnbmVkU2VyaWFsaXplZE9yaWdpbmF0aW9uVHJhbnNhY3Rpb24pO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcigpLmdldEtleXMoKS5wcnYgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgdHJhbnNhY3Rpb24gd2l0aCBzb21lIGtleXMgd2l0aCBjdXN0b20gaW5kZXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICAvLyBNdWx0aXNpZyBrZXlzXG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcigpLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcigpLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcigpLmdldEtleXMoKS5wcnYsIGluZGV4OiAyIH0pLFxuICAgICAgICBuZXcgUmVnRXhwKCdDdXN0b20gaW5kZXggaGFzIHRvIGJlIHNldCBmb3IgYWxsIG11bHRpc2lnIGNvbnRyYWN0IHNpZ25pbmcga2V5cyBvciBub25lJylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSB0cmFuc2FjdGlvbiB3aXRoIHNvbWUga2V5cyB3aXRob3V0IGN1c3RvbSBpbmRleCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGdlbmVyaWNUeEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIC8vIE11bHRpc2lnIGtleXNcbiAgICAgIGdlbmVyaWNUeEJ1aWxkZXIuc2lnbih7IGtleTogbmV3IFh0ekxpYi5LZXlQYWlyKCkuZ2V0S2V5cygpLnBydiwgaW5kZXg6IDAgfSk7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcigpLmdldEtleXMoKS5wcnYsIGluZGV4OiAxIH0pO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoKS5nZXRLZXlzKCkucHJ2IH0pLFxuICAgICAgICBuZXcgUmVnRXhwKCdDdXN0b20gaW5kZXggaGFzIHRvIGJlIHNldCBmb3IgYWxsIG11bHRpc2lnIGNvbnRyYWN0IHNpZ25pbmcga2V5cyBvciBub25lJylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSB0cmFuc2FjdGlvbiB3aXRoIGEga2V5IHdpdGggaW52YWxpZCBjdXN0b20gaW5kZXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcigpLmdldEtleXMoKS5wcnYsIGluZGV4OiAzIH0pLFxuICAgICAgICBuZXcgUmVnRXhwKCdDdXN0b20gaW5kZXggY2Fubm90IGJlIGdyZWF0ZXInKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIFNlbmQgdHJhbnNhY3Rpb24gd2l0aCBubyB0cmFuc2ZlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7IGZlZTogJzQ3NjQnIH0pO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQktuZmlTVkZUaml4Ymh6c1RiUjFlRG1pdDZ5SzdVQmNnUkpQaG1nZVdjWnFpTUhSWjZFJyk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMScpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0cmFuc2FjdGlvbiB3aXRob3V0IHB1YmxpYyBrZXknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSksXG4gICAgICAgIG5ldyBSZWdFeHAoJ0Nhbm5vdCBzaWduIGEgcHVibGljIGtleSByZXZlbGF0aW9uIHRyYW5zYWN0aW9uIHdpdGhvdXQgcHVibGljIGtleScpXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGZhaWwgdG8nLCAoKSA9PiB7XG4gICAgaXQoJ2NoYW5nZSB0aGUgdHlwZSB0byBTZW5kIHdoZW4gb3duZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkIGEgc2VuZCB0cmFuc2FjdGlvbiB3aXRoIG93bmVycycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5vd25lcihkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHViKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGQgYSB0cmFuc2FjdGlvbiB3aXRoIGFuIGludmFsaWQgYnJhbmNoIGlkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLmJyYW5jaCgnJykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkIGEgdHJhbnNhY3Rpb24gd2l0aCBhbiBpbnZhbGlkIHZhbHVlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLmluaXRpYWxCYWxhbmNlKCctMScpKTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZCBhIG5vbiB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24gd2l0aCBpbml0aWFsIGJhbGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIuaW5pdGlhbEJhbGFuY2UoJzEwMCcpKTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZCB0cmFuc2ZlciBmb3Igbm9uIHNlbmQtdHlwZSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIudHJhbnNmZXIoJzEwMCcpLCBuZXcgUmVnRXhwKCdUcmFuc2ZlcnMgY2FuIG9ubHkgYmUgc2V0IGZvciBzZW5kIHRyYW5zYWN0aW9ucycpKTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGQgbW9yZSBvd25lcnMgdGhhbiB0aGUgbXVsdGlzaWcgbWF4aW11bScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCdzcHBrN1pXQjhkaVUyVFdlaHhka1dDVjJEVEZ2bjFoUHo0cUxqaUQzbkpRb3pLbm9TRW5TQzhiJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJ3NwcGs3WnE5S1B0d2t6a2dBc2hhNGpVMjlDNDNNY2dQMnNrSzU2dGpkN0tKamhjbUg2QVpDMUYnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignc3BwazdkMnp0emJyTGRCYVRCN3l6YVdSa1BmY1dHc3JOUU5KZGtCRTliQ1RTU3pla0xOenB2ZicpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gdHhCdWlsZGVyLm93bmVyKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyksXG4gICAgICAgIG5ldyBSZWdFeHAoJ0EgbWF4aW11bSBvZiAzIG93bmVycycpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FkZCB0aGUgc2FtZSBvd25lciB0d2ljZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB0eEJ1aWxkZXIub3duZXIoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnUmVwZWF0ZWQgb3duZXIgcHVibGljIGtleScpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FkZCBhbiBpbnZhbGlkIG93bmVyIHB1YmxpYyBrZXknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLm93bmVyKCdzcHBrJyksIG5ldyBSZWdFeHAoJ0ludmFsaWQgcHVibGljIGtleScpKTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGQgYW4gaW52YWxpZCBwdWJsaWMga2V5IHRvIHJldmVhbCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5wdWJsaWNLZXlUb1JldmVhbCgnc3BwaycpLCBuZXcgUmVnRXhwKCdVbnN1cHBvcnRlZCBwdWJsaWMga2V5JykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FkZCB0aGUgc2FtZSBwdWJsaWMga2V5IHRvIHJldmVhbCB0d2ljZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIucHVibGljS2V5VG9SZXZlYWwoZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB0eEJ1aWxkZXIucHVibGljS2V5VG9SZXZlYWwoZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnB1YiksXG4gICAgICAgIG5ldyBSZWdFeHAoJ1B1YmxpYyBrZXkgdG8gcmV2ZWFsIGFscmVhZHkgc2V0JylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnYWRkIHRoZSBwdWJsaWMga2V5IHRvIHJldmVhbCB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byB0aGUgc291cmNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50VXBkYXRlKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHR4QnVpbGRlci5wdWJsaWNLZXlUb1JldmVhbCgnc3BwazdkMnp0emJyTGRCYVRCN3l6YVdSa1BmY1dHc3JOUU5KZGtCRTliQ1RTU3pla0xOenB2ZicpLFxuICAgICAgICBuZXcgUmVnRXhwKCdQdWJsaWMga2V5IGRvZXMgbm90IG1hdGNoIHRoZSBzb3VyY2UgYWRkcmVzcycpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NoYW5nZSB0aGUgdHJhbnNhY3Rpb24gdHlwZSBmcm9tIFNlbmQgaWYgaXQgaGFzIHRyYW5zZmVycycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXJcbiAgICAgICAgLnRyYW5zZmVyKCcxMDAnKVxuICAgICAgICAuZnJvbSgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJylcbiAgICAgICAgLnRvKCdLVDFIVXJ0Nmtmdll5REVZQ0oyR1NqdlRQWjZLbVJmeExCVTgnKVxuICAgICAgICAuZmVlKCc0NzY0Jyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbiksXG4gICAgICAgIG5ldyBSZWdFeHAoJ1RyYW5zYWN0aW9uIGNvbnRhaW5zIHRyYW5zZmVycyBhbmQgY2FuIG9ubHkgYmUgbGFiZWxlZCBhcyBTZW5kJylcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
656
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsbURBQXVEO0FBQ3ZELGlEQUE0QztBQUM1QyxnRUFBcUM7QUFDckMsdURBQXlDO0FBQ3pDLG1DQUFtQztBQUVuQyxRQUFRLENBQUMsMkJBQTJCLEVBQUU7SUFDcEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxZQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hDLEdBQUcsRUFBRSxpSEFBaUg7S0FDdkgsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDNUIsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVDLE1BQU0sU0FBUyxHQUFRLElBQUksWUFBTSxDQUFDLGtCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2RSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QixFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzNELEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQy9ELGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDckYsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDckYsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO1FBQzVCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNuQyxNQUFNLFNBQVMsR0FBUSxJQUFJLFlBQU0sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdkUsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDckQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sTUFBTSxHQUFHO2dCQUNiLEdBQUcsRUFBRSxpSEFBaUg7YUFDdkgsQ0FBQztZQUNGLE1BQU0sYUFBYSxHQUFHLElBQUksWUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixTQUFTLENBQUMsS0FBSyxDQUNiLElBQUksWUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSx5REFBeUQsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUNyRyxDQUFDO1lBQ0YsU0FBUyxDQUFDLEtBQUssQ0FDYixJQUFJLFlBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUseURBQXlELEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FDckcsQ0FBQztZQUNGLFNBQVMsQ0FBQyxLQUFLLENBQ2IsSUFBSSxZQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLHlEQUF5RCxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQ3JHLENBQUM7WUFDRixTQUFTLENBQUMsTUFBTSxDQUFDLHFEQUFxRCxDQUFDLENBQUM7WUFDeEUsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFbkMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDM0QsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDL0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQzFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0MsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDckYsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDckYsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsK0JBQStCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0MsTUFBTSxTQUFTLEdBQVEsSUFBSSxZQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM5QyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsR0FBRyxFQUFFLGlIQUFpSDthQUN2SCxDQUFDO1lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxZQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDdkMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztZQUN4RSxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVuQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkIsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDL0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQzFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsZ0JBQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QixFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JELE1BQU0sU0FBUyxHQUFRLElBQUksWUFBTSxDQUFDLGtCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2RSxTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RCxNQUFNLG9CQUFvQixHQUFHLHNDQUFzQyxDQUFDO1lBQ3BFLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3JELFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3QixNQUFNLE1BQU0sR0FBRztnQkFDYixHQUFHLEVBQUUsaUhBQWlIO2FBQ3ZILENBQUM7WUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLFlBQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0MsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2QyxTQUFTLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDNUQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RCxFQUFFLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzNELEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQzNCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNuQyxNQUFNLFNBQVMsR0FBUSxJQUFJLFlBQU0sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdkUsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDckQsU0FBUyxDQUFDLEdBQUcsQ0FBQztnQkFDWixHQUFHLEVBQUUsTUFBTTtnQkFDWCxRQUFRLEVBQUUsT0FBTztnQkFDakIsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM5QyxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsU0FBUyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1lBQzNFLFNBQVMsQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztZQUMzRSxTQUFTLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDM0UsU0FBUyxDQUFDLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1lBQ3hFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdEQsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFbkMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMzRCxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMvRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDM0UsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUMxQixrR0FBa0csQ0FDbkcsQ0FBQztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1lBQ3JGLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1lBQ3JGLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlFQUFpRSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQy9FLE1BQU0sU0FBUyxHQUFRLElBQUksWUFBTSxDQUFDLGtCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2RSxTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNyRCxTQUFTLENBQUMsR0FBRyxDQUFDO2dCQUNaLEdBQUcsRUFBRSxNQUFNO2dCQUNYLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztZQUMzRSxTQUFTLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDM0UsU0FBUyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1lBQzNFLFNBQVMsQ0FBQyxlQUFlLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUNsRSxTQUFTLENBQUMsTUFBTSxDQUFDLHFEQUFxRCxDQUFDLENBQUM7WUFDeEUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVuQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzNELEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQy9ELGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMzRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQ2pFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUMxQixrR0FBa0csQ0FDbkcsQ0FBQztZQUNGLE1BQU0sd0JBQXdCLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDbEUsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdELHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztZQUNyRixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztZQUNyRixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLFNBQVMsR0FBUSxJQUFJLFlBQU0sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdkUsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDOUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxRCxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztZQUN4RSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRW5DLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1lBQzFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQy9ELGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLGdCQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQzFCLGtHQUFrRyxDQUNuRyxDQUFDO1lBQ0YsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNsRSx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEUsTUFBTSxTQUFTLEdBQVEsSUFBSSxZQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxTQUFTLENBQUMsTUFBTSxDQUFDLHFEQUFxRCxDQUFDLENBQUM7WUFDeEUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM5QyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLFNBQVM7aUJBQ04sUUFBUSxDQUFDLFNBQVMsQ0FBQztpQkFDbkIsSUFBSSxDQUFDLHNDQUFzQyxDQUFDO2lCQUM1QyxFQUFFLENBQUMsc0NBQXNDLENBQUM7aUJBQzFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7aUJBQ1gsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQkFDakIsWUFBWSxDQUFDLE1BQU0sQ0FBQztpQkFDcEIsVUFBVSxDQUNULHdMQUF3TCxDQUN6TCxDQUFDO1lBQ0osU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RCxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNiLEdBQUcsRUFBRSxJQUFJLFlBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsd0RBQXdELEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUc7YUFDekcsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLFlBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RixNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVuQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMvRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDM0UsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUMxQixrR0FBa0csQ0FDbkcsQ0FBQztZQUNGLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2pDLDQ0QkFBNDRCLENBQzc0QixDQUFDO1lBQ0YsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0Qsd0JBQXdCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDNUUsTUFBTSxTQUFTLEdBQVEsSUFBSSxZQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxTQUFTLENBQUMsTUFBTSxDQUFDLHFEQUFxRCxDQUFDLENBQUM7WUFDeEUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM5QyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLFNBQVM7aUJBQ04sUUFBUSxDQUFDLEtBQUssQ0FBQztpQkFDZixJQUFJLENBQUMsc0NBQXNDLENBQUM7aUJBQzVDLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDMUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztpQkFDWCxRQUFRLENBQUMsT0FBTyxDQUFDO2lCQUNqQixZQUFZLENBQUMsTUFBTSxDQUFDO2lCQUNwQixVQUFVLENBQ1Qsd0xBQXdMLENBQ3pMLENBQUM7WUFDSixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2IsR0FBRyxFQUFFLElBQUksWUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSx3REFBd0QsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRzthQUN6RyxDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksWUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3RGLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRW5DLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1lBQzFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQy9ELGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMzRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLGdCQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQzFCLGtHQUFrRyxDQUNuRyxDQUFDO1lBQ0YsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDakMsazhCQUFrOEIsQ0FDbjhCLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzRCxNQUFNLFNBQVMsR0FBUSxJQUFJLFlBQU0sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdkUsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztZQUN4RSxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDOUMsU0FBUztpQkFDTixRQUFRLENBQUMsS0FBSyxDQUFDO2lCQUNmLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDNUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUMxQyxHQUFHLENBQUMsTUFBTSxDQUFDO2lCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ1osVUFBVSxDQUNULHdMQUF3TCxDQUN6TCxDQUFDO1lBQ0osU0FBUztpQkFDTixRQUFRLENBQUMsS0FBSyxDQUFDO2lCQUNmLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDNUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUMxQyxHQUFHLENBQUMsTUFBTSxDQUFDO2lCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ1osVUFBVSxDQUNULHdMQUF3TCxDQUN6TCxDQUFDO1lBQ0osU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RCxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNiLEdBQUcsRUFBRSxJQUFJLFlBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsd0RBQXdELEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUc7YUFDekcsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLFlBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RixNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVuQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMvRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDMUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFD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Q0FBQyxDQUFDO1lBQ3ZDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMzRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMzRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLGdCQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQzFC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QUM1RixJQUFJLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUMzRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMkRBQTJELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekUsTUFBTSxTQUFTLEdBQVEsSUFBSSxZQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFNBQVMsQ0FBQyxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztZQUN4RSxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsU0FBUztpQkFDTixRQUFRLENBQUMsS0FBSyxDQUFDO2lCQUNmLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDNUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUMxQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDZixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELGdCQUFNLENBQUMsTUFBTSxDQUNYLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUMxRCxJQUFJLE1BQU0sQ0FBQyxnRUFBZ0UsQ0FBQyxDQUM3RSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBYdHpMaWIgfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnVGV6b3MgVHJhbnNhY3Rpb24gYnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgZGVmYXVsdEtleVBhaXIgPSBuZXcgWHR6TGliLktleVBhaXIoe1xuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0szRDhUWGZ2QUpnSFZmVEVlUU5XNVlzOXdadG5VWmtxUHpGelNqYkVKcldDMXZaNEduWEN2UjdyUUwyVUZYM1JTdVllVTlNckVSbTFYQnZBQ293N2MzNnZuejVpWXlqMicsXG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgcGFyc2UnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIHVuc2lnbmVkIGluaXQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLmZyb20odGVzdERhdGEudW5zaWduZWRTZXJpYWxpemVkT3JpZ2luYXRpb25UcmFuc2FjdGlvbik7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKCcnKTtcbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejFWUmpScFZLbnYxNkFWcHJGSDF0a0RuNFREZlZxQTg5M0EnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MVZSalJwVktudjE2QVZwckZIMXRrRG40VERmVnFBODkzQScpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwNDc2NCcpO1xuICAgICAgdHgub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnJyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwMDAwMCcpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdCh0eC5kZWxlZ2F0ZSk7XG4gICAgICB0eC5zaWduYXR1cmUubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIE9iamVjdC5rZXlzKHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpKS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHgub3duZXJzLmxlbmd0aC5zaG91bGQuZXF1YWwoMyk7XG4gICAgICB0eC5vd25lcnNbMF0uc2hvdWxkLmVxdWFsKCdzcHBrN1pXQjhkaVUyVFdlaHhka1dDVjJEVEZ2bjFoUHo0cUxqaUQzbkpRb3pLbm9TRW5TQzhiJyk7XG4gICAgICB0eC5vd25lcnNbMV0uc2hvdWxkLmVxdWFsKCdzcHBrN1pxOUtQdHdremtnQXNoYTRqVTI5QzQzTWNnUDJza0s1NnRqZDdLSmpoY21INkFaQzFGJyk7XG4gICAgICB0eC5vd25lcnNbMl0uc2hvdWxkLmVxdWFsKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgYnVpbGQnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIGluaXQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICcxMCcgfSk7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJ3hwdWI2NjFNeU13QXFSYmNGaEN2ZGhUQWZwRUVEVjU4b3FEdnY2NVlOSEM2ODZOTnM0S2JIOFlaUUpXVm1yZmJ2ZTdhQVZIenh3OGJLRnhBN01MZURLNkJiTGZrRTNicWt2SExQZ2FHSEh0WUdlWScsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc291cmNlS2V5UGFpciA9IG5ldyBYdHpMaWIuS2V5UGFpcihzb3VyY2UpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShzb3VyY2VLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIuaW5pdGlhbEJhbGFuY2UoJzEwMDAwMDAnKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoXG4gICAgICAgIG5ldyBYdHpMaWIuS2V5UGFpcih7IHB1YjogJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInIH0pLmdldEtleXMoKS5wdWJcbiAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoXG4gICAgICAgIG5ldyBYdHpMaWIuS2V5UGFpcih7IHB1YjogJ3NwcGs3WnE5S1B0d2t6a2dBc2hhNGpVMjlDNDNNY2dQMnNrSzU2dGpkN0tKamhjbUg2QVpDMUYnIH0pLmdldEtleXMoKS5wdWJcbiAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoXG4gICAgICAgIG5ldyBYdHpMaWIuS2V5UGFpcih7IHB1YjogJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnIH0pLmdldEtleXMoKS5wdWJcbiAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnJyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMDAwMTAnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJycpO1xuICAgICAgdHgub3V0cHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMDAwMDAnKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgICAgT2JqZWN0LmtleXModHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCkpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgzKTtcbiAgICAgIHR4Lm93bmVyc1swXS5zaG91bGQuZXF1YWwoJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInKTtcbiAgICAgIHR4Lm93bmVyc1sxXS5zaG91bGQuZXF1YWwoJ3NwcGs3WnE5S1B0d2t6a2dBc2hhNGpVMjlDNDNNY2dQMnNrSzU2dGpkN0tKamhjbUg2QVpDMUYnKTtcbiAgICAgIHR4Lm93bmVyc1syXS5zaG91bGQuZXF1YWwoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKTtcbiAgICB9KTtcblxuICAgIGl0KCdhbiBhY2NvdW50IHJldmVhbCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHsgZmVlOiAnMTAnIH0pO1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjRmhDdmRoVEFmcEVFRFY1OG9xRHZ2NjVZTkhDNjg2Tk5zNEtiSDhZWlFKV1ZtcmZidmU3YUFWSHp4dzhiS0Z4QTdNTGVESzZCYkxma0UzYnFrdkhMUGdhR0hIdFlHZVknLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgWHR6TGliLktleVBhaXIoc291cmNlKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2Uoa2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLnB1YmxpY0tleVRvUmV2ZWFsKGtleVBhaXIuZ2V0RXh0ZW5kZWRLZXlzKCkueHB1Yik7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJycpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDApO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwJyk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHR4LmRlbGVnYXRlKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgICAgT2JqZWN0LmtleXModHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCkpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIGZvcndhcmRlciBjb250cmFjdCBpbml0IHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pO1xuICAgICAgY29uc3QgZm9yd2FyZGVyRGVzdGluYXRpb24gPSAnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4JztcbiAgICAgIHR4QnVpbGRlci5mb3J3YXJkZXJEZXN0aW5hdGlvbihmb3J3YXJkZXJEZXN0aW5hdGlvbik7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHsgZmVlOiAnMTAnIH0pO1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjRmhDdmRoVEFmcEVFRFY1OG9xRHZ2NjVZTkhDNjg2Tk5zNEtiSDhZWlFKV1ZtcmZidmU3YUFWSHp4dzhiS0Z4QTdNTGVESzZCYkxma0UzYnFrdkhMUGdhR0hIdFlHZVknLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgWHR6TGliLktleVBhaXIoc291cmNlKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2Uoa2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLnB1YmxpY0tleVRvUmV2ZWFsKGtleVBhaXIuZ2V0RXh0ZW5kZWRLZXlzKCkueHB1Yik7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4LnB1YmxpY0tleVRvUmV2ZWFsLnNob3VsZC5lcXVhbChrZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAgdHguZm9yd2FyZGVyRGVzdGluYXRpb24uc2hvdWxkLmVxdWFsKGZvcndhcmRlckRlc3RpbmF0aW9uKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIHNpZ24nLCAoKSA9PiB7XG4gICAgaXQoJ2FuIGluaXQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgICBmZWU6ICc0NzY0JyxcbiAgICAgICAgZ2FzTGltaXQ6ICczMzk3MScsXG4gICAgICAgIHN0b3JhZ2VMaW1pdDogJzEyOTInLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIuaW5pdGlhbEJhbGFuY2UoJzEwMDAwMDAnKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignc3BwazdacTlLUHR3a3prZ0FzaGE0alUyOUM0M01jZ1Ayc2tLNTZ0amQ3S0pqaGNtSDZBWkMxRicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKCdvcE5mampFZldrN0hzblk4ZlFyVW9QRnVYWmZBQndldWJBNkQ0YlZTY21xb1Z6Y1pWRkEnKTtcbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwNDc2NCcpO1xuICAgICAgdHgub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnS1QxSjlMZmhEVjZGUXhSN2FNYUs3UjZSdzhtQnBmaFA1TUEzJyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwMDAwMCcpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdCh0eC5kZWxlZ2F0ZSk7XG4gICAgICB0eC5zaWduYXR1cmUubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4LnNpZ25hdHVyZVswXS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdWRDU3aGFBTUNvYkhyQ3dIOUFCZmJGdmRteVI5WnNwWkMzWmloYjl0RVBmaHR6Q0tTMUY4ZkxvVnBvZHZvcjNQVW9vN3J5NGo0NnhZRVRFekVMbXRuck5UYVRQWDQnXG4gICAgICApO1xuICAgICAgT2JqZWN0LmtleXModHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCkpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgzKTtcbiAgICAgIHR4Lm93bmVyc1swXS5zaG91bGQuZXF1YWwoJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInKTtcbiAgICAgIHR4Lm93bmVyc1sxXS5zaG91bGQuZXF1YWwoJ3NwcGs3WnE5S1B0d2t6a2dBc2hhNGpVMjlDNDNNY2dQMnNrSzU2dGpkN0tKamhjbUg2QVpDMUYnKTtcbiAgICAgIHR4Lm93bmVyc1syXS5zaG91bGQuZXF1YWwoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHdhbGxldCBpbml0IHRyYW5zYWN0aW9uIHdpdGggZGVsZWdhdGlvbiBhbmQgcmV2ZWFsIHRoZSBzb3VyY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgICBmZWU6ICc0NzY0JyxcbiAgICAgICAgZ2FzTGltaXQ6ICczMzk3MScsXG4gICAgICAgIHN0b3JhZ2VMaW1pdDogJzEyOTInLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIucHVibGljS2V5VG9SZXZlYWwoZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICB0eEJ1aWxkZXIuaW5pdGlhbEJhbGFuY2UoJzEwMDAwMDAnKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJ3NwcGs3WldCOGRpVTJUV2VoeGRrV0NWMkRURnZuMWhQejRxTGppRDNuSlFvektub1NFblNDOGInKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignc3BwazdacTlLUHR3a3prZ0FzaGE0alUyOUM0M01jZ1Ayc2tLNTZ0amQ3S0pqaGNtSDZBWkMxRicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyk7XG4gICAgICB0eEJ1aWxkZXIuaW5pdGlhbERlbGVnYXRlKCd0ejFLcGJLNXYxTkIydmczSkhCeFhKWmh5UTd1cjgzWHA3aUMnKTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JNOFFkWjkyVnlhSDFzNW53QUY5clVYamlQWjNnM05zbjZvWWJkS3FqMlJnSHh2V1hWUycpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJ29vMktGcVdVVEtacTZzZTloamZlZ2FNYVBiWG9oNTRaZHFNQ2N6TE14NUVGQkZpcjYxaycpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4LnNvdXJjZS5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0cy5sZW5ndGgsIDIpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICAgIHR4LmlucHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICB0eC5pbnB1dHNbMF0udmFsdWUuc2hvdWxkLmVxdWFsKCc0NzY0Jyk7XG4gICAgICB0eC5pbnB1dHNbMV0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgdHguaW5wdXRzWzFdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwNDc2NCcpO1xuICAgICAgdHgub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnS1QxQTloZUNKcXZKM0pVY2k4bW5nSGQyMzNkNXZDWkZwN0tuJyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwMDAwMCcpO1xuICAgICAgdHguZGVsZWdhdGUuc2hvdWxkLmVxdWFsKCd0ejFLcGJLNXYxTkIydmczSkhCeFhKWmh5UTd1cjgzWHA3aUMnKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHguc2lnbmF0dXJlWzBdLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ3ZENTFpaDJidUtKazE4QzY3UWthV2dBNGdhV2Z6ejROd1Rld3BiUGtOdkJva2VYb255VkVSOFB5a29ycVpyak5jcjFXR0IxUVkxd1RYZUdXYVZ0SFhCZzRXaEdkNydcbiAgICAgICk7XG4gICAgICBjb25zdCBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUgPSB0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKTtcbiAgICAgIE9iamVjdC5rZXlzKGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSkubGVuZ3RoLnNob3VsZC5lcXVhbCgyKTtcbiAgICAgIGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZS5yZXZlYWwubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZS5yZXZlYWxbMF0uc2hvdWxkLmVxdWFsKDApO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLm9yaWdpbmF0aW9uLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUub3JpZ2luYXRpb25bMF0uc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHgub3duZXJzLmxlbmd0aC5zaG91bGQuZXF1YWwoMyk7XG4gICAgICB0eC5vd25lcnNbMF0uc2hvdWxkLmVxdWFsKCdzcHBrN1pXQjhkaVUyVFdlaHhka1dDVjJEVEZ2bjFoUHo0cUxqaUQzbkpRb3pLbm9TRW5TQzhiJyk7XG4gICAgICB0eC5vd25lcnNbMV0uc2hvdWxkLmVxdWFsKCdzcHBrN1pxOUtQdHdremtnQXNoYTRqVTI5QzQzTWNnUDJza0s1NnRqZDdLSmpoY21INkFaQzFGJyk7XG4gICAgICB0eC5vd25lcnNbMl0uc2hvdWxkLmVxdWFsKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSByZXZlYWwgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLnB1YmxpY0tleVRvUmV2ZWFsKGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JNOFFkWjkyVnlhSDFzNW53QUY5clVYamlQWjNnM05zbjZvWWJkS3FqMlJnSHh2V1hWUycpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJ29vczRuMXpKQUdlcUxRck5zbkdBZnp6ajZGZVpxYlNybkFNVlRkQzQ4NWNpbkZXTjZzdScpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDApO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzE0MjAnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QodHguZGVsZWdhdGUpO1xuICAgICAgdHguc2lnbmF0dXJlLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5zaWduYXR1cmVbMF0uc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnVHRmY3h0dlU1eldic1dESndLdkhkRGNXWURoZ3NiOW96bVE0NEFVR0huU0pKZ3ZQUjJDdk5DVVg4YXhlekpLb1pSemd2OWdTRTNHU0RoNVNFYm0zMUpxTTUzeXlnJ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSA9IHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnJldmVhbC5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnJldmVhbFswXS5zaG91bGQuZXF1YWwoMCk7XG4gICAgICBPYmplY3Qua2V5cyh0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKSkubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgbXVsdGlzaWcgc2VuZCB0cmFuc2FjdGlvbiB0byBhbiBpbXBsaWNpdCBhY2NvdW50JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JNOFFkWjkyVnlhSDFzNW53QUY5clVYamlQWjNnM05zbjZvWWJkS3FqMlJnSHh2V1hWUycpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudHJhbnNmZXIoJzEwMDAwMDAnKVxuICAgICAgICAuZnJvbSgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJylcbiAgICAgICAgLnRvKCd0ejFWUmpScFZLbnYxNkFWcHJGSDF0a0RuNFREZlZxQTg5M0EnKVxuICAgICAgICAuZmVlKCc0NzY0JylcbiAgICAgICAgLmdhc0xpbWl0KCczMzk3MScpXG4gICAgICAgIC5zdG9yYWdlTGltaXQoJzEyOTInKVxuICAgICAgICAuZGF0YVRvU2lnbihcbiAgICAgICAgICAnMDUwNzA3MGEwMDAwMDAxNjAxOTYzNjljOTA2MjU1NzViYTQ0NTk0YjIzNzk0ODMyYTkzMzdmN2EyZDAwMDcwNzAwMDAwNTA1MDIwMDAwMDAzMjAzMjAwNTNkMDM2ZDA3NDMwMzVkMGEwMDAwMDAxNTAwNmI1ZGRhZWYzZmI1ZDdjMTUxY2ZiMzZmYmU0M2E3YTA2Njc3NzM5NDAzMWUwNzQzMDM2YTAwMDEwMzRmMDM0ZDAzMWInXG4gICAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHtcbiAgICAgICAga2V5OiBuZXcgWHR6TGliLktleVBhaXIoeyBwcnY6ICdzcHNrMmNiaVZzQXZwR0ttYXU5WGNNc2NMM05Sd2preVQ1NzVONUF5QW9mY29qNDF4Nmc2VEwnIH0pLmdldEtleXMoKS5wcnYsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoeyBzZWVkOiBCdWZmZXIuYWxsb2MoMTYpIH0pLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJ29vOGhhS2p1aVpmakxKbXBXZ0tEVkYxa0tiYjJ1RXR5Z0Z5clNWemdvWk5rYzNuVU1EZCcpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMik7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzQ3NjQnKTtcbiAgICAgIHR4LmlucHV0c1sxXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJyk7XG4gICAgICB0eC5pbnB1dHNbMV0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDAwMDAwJyk7XG4gICAgICB0eC5vdXRwdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejFWUmpScFZLbnYxNkFWcHJGSDF0a0RuNFREZlZxQTg5M0EnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDAwMDAwJyk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHR4LmRlbGVnYXRlKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHguc2lnbmF0dXJlWzBdLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ1FMSEx6V0xOQldZREdmUmNBMzZaYU1rYXBLSlJLU2pEQjJXckRzb3U5RlpMb3o0S3AxdWNXOUFHN21leTl3akFpTmZSZkNGckJWOXlLc1U4VVo0c0VMMjFWN3ZXWSdcbiAgICAgICk7XG4gICAgICB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ2JhN2EwNGZhYjFhM2Y3N2VkYTk2YjU1MTk0N2RkMzQzZTE2NWQxYjkxYjZmOWY4MDY2NDhiNjNlNTdjODhjYzg2YzAxYWFjYTg3YmRiY2RjNGU2MTE3YjY2N2UyOWY5YjUwNDM2MmM4MzFiYjljMjUwMGIzODkwMjhjMGEwMDAxOTYzNjljOTA2MjU1NzViYTQ0NTk0YjIzNzk0ODMyYTkzMzdmN2EyZDAwZmZmZjA0NmQ2MTY5NmUwMDAwMDEyNTA3MDcwNzA3MDAwMDA1MDUwMjAwMDAwMDQzMDMyMDA1M2QwMzZkMDc0MzAzNWQwMTAwMDAwMDI0NzQ3YTMxNTY1MjZhNTI3MDU2NGI2ZTc2MzEzNjQxNTY3MDcyNDY0ODMxNzQ2YjQ0NmUzNDU0NDQ2NjU2NzE0MTM4MzkzMzQxMDMxZTA3NDMwMzZhMDA4MDg5N2EwMzRmMDM0ZDAzMWIwMjAwMDAwMGQwMDUwOTAxMDAwMDAwNjA3MzY5Njc0ZTZhNDQzNjM0NGU3NTU2NmU1NTRiMzc2ZjU2NDIzMjYzMzI1MzUwMzMzMjU2NTk2YTM3NjQ1NDc5NmI2MjZlNTI3ODc5NDQ2ZjUzMzk0MjQ3NzY2NzYxNjc3NjZlNGQ2MzU0MzQ2ODU5NjM2MzYxNjI2MjQ2NDc2ZjM5NzQ2NDU2NTE1NDM0NGQzNDM2NjU3YTU5NGE2NDRjMzI3MDdhNTk0NDUzNzc2YjY2NTIzNjc5NzI3MDcwNTkwNTA5MDEwMDAwMDA2MDczNjk2NzU5NjY1NjU5NGE1NTYxNjk0YjRiNWE1ODM0N2E3MzdhNTc1YTM3NTI0NjMyMzkzMjZlNTYzMjUwMzY1ODRkMzQ2ZTRiNjU2YjMyNTk2NzU3NTEzODQyNGM1MzMxNzIzMjMyNzUzNDYxMzk1MzQzNzY0NzRkNjM2MjM4Mzk0MjZhNTQ2Njc0NTQ2ZTMyNzY2NzU1N2E0MzU0NTE0NzUzMzI2MzRhNGU3NjYyNTk3NDc1NDc1MTZhNDc1MDAzMDYxMWViZGEzMGRkMTUwMzI0NzM3MzkxNzA1ODg2ODQwYmZiOTlmOGY1MWQ2NTg2YjI3NDA4ZTg0ZGY5M2NlMGY0NWRjNmU4ZTZkZjAwMGU2MDJkYTE5YzM1MDkxOTBiMzdlN2RmN2IxMWQ1NTJjY2JjNDZlM2RkMzRjMDVmM2JmOCdcbiAgICAgICk7XG4gICAgICBjb25zdCBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUgPSB0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKTtcbiAgICAgIE9iamVjdC5rZXlzKGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSkubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZS50cmFuc2FjdGlvbi5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnRyYW5zYWN0aW9uWzBdLnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Egc2VuZCB0cmFuc2FjdGlvbiB0byBhbiBvcmlnaW5hdGVkIGFjY291bnQgKG90aGVyIGNvbnRyYWN0KScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXJcbiAgICAgICAgLnRyYW5zZmVyKCcxMDAnKVxuICAgICAgICAuZnJvbSgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJylcbiAgICAgICAgLnRvKCdLVDFIVXJ0Nmtmdll5REVZQ0oyR1NqdlRQWjZLbVJmeExCVTgnKVxuICAgICAgICAuZmVlKCc0NzY0JylcbiAgICAgICAgLmdhc0xpbWl0KCczMzk3MScpXG4gICAgICAgIC5zdG9yYWdlTGltaXQoJzEyOTInKVxuICAgICAgICAuZGF0YVRvU2lnbihcbiAgICAgICAgICAnMDUwNzA3MGEwMDAwMDAxNjAxOTYzNjljOTA2MjU1NzViYTQ0NTk0YjIzNzk0ODMyYTkzMzdmN2EyZDAwMDcwNzAwMDAwNTA1MDIwMDAwMDAzMjAzMjAwNTNkMDM2ZDA3NDMwMzVkMGEwMDAwMDAxNTAwNmI1ZGRhZWYzZmI1ZDdjMTUxY2ZiMzZmYmU0M2E3YTA2Njc3NzM5NDAzMWUwNzQzMDM2YTAwMDEwMzRmMDM0ZDAzMWInXG4gICAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHtcbiAgICAgICAga2V5OiBuZXcgWHR6TGliLktleVBhaXIoeyBwcnY6ICdzcHNrMmNiaVZzQXZwR0ttYXU5WGNNc2NMM05Sd2preVQ1NzVONUF5QW9mY29qNDF4Nmc2VEwnIH0pLmdldEtleXMoKS5wcnYsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoeyBzZWVkOiBCdWZmZXIuYWxsb2MoMTYpIH0pLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJ29vYlRObzcyZHU5QkZZZnlaVG82NGtUWFZoQmZITnVKYUpRWHVOR1ZyNmdZQ0RwWWpEUScpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHguc291cmNlLnNob3VsZC5lcXVhbCgndHoyUHRKOXpnRWdGVlRScXk2R1hzc3Q1NHRIM2tzRW5ZdnZTJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMik7XG4gICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgdHguaW5wdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzQ3NjQnKTtcbiAgICAgIHR4LmlucHV0c1sxXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJyk7XG4gICAgICB0eC5pbnB1dHNbMV0udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDAnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ0tUMUhVcnQ2a2Z2WXlERVlDSjJHU2p2VFBaNkttUmZ4TEJVOCcpO1xuICAgICAgdHgub3V0cHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMCcpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdCh0eC5kZWxlZ2F0ZSk7XG4gICAgICB0eC5zaWduYXR1cmUubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHR4LnNpZ25hdHVyZVswXS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdjTTN4aVE5R045dFBYc1ZrY2tQSGs2NmtBSERSTWFnNlhDYkhMV3ZNTFBxSDlLSGd6QUZlcGNpMng1M2tjSkdxVmhGWGFVU0UzRGhSQ0dkZ2o4YWhra1dnaVladXInXG4gICAgICApO1xuICAgICAgdHgudG9Ccm9hZGNhc3RGb3JtYXQoKS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdiYTdhMDRmYWIxYTNmNzdlZGE5NmI1NTE5NDdkZDM0M2UxNjVkMWI5MWI2ZjlmODA2NjQ4YjYzZTU3Yzg4Y2M4NmMwMWFhY2E4N2JkYmNkYzRlNjExN2I2NjdlMjlmOWI1MDQzNjJjODMxYmI5YzI1MDBiMzg5MDI4YzBhMDAwMTk2MzY5YzkwNjI1NTc1YmE0NDU5NGIyMzc5NDgzMmE5MzM3ZjdhMmQwMGZmZmYwNDZkNjE2OTZlMDAwMDAxNDAwNzA3MDcwNzAwMDAwNTA1MDIwMDAwMDA1ZTAzMjAwNTNkMDM2ZDA3NDMwMzZlMDEwMDAwMDAyNDRiNTQzMTQ4NTU3Mjc0MzY2YjY2NzY1OTc5NDQ0NTU5NDM0YTMyNDc1MzZhNzY1NDUwNWEzNjRiNmQ1MjY2Nzg0YzQyNTUzODA1NTUwMzZjMDIwMDAwMDAxNTA3MmYwMjAwMDAwMDA5MDIwMDAwMDAwNDAzNGYwMzI3MDIwMDAwMDAwMDA3NDMwMzZhMDBhNDAxMDM0ZjAzNGQwMzFiMDIwMDAwMDBkMDA1MDkwMTAwMDAwMDYwNzM2OTY3NGU2YTQ0MzYzNDRlNzU1NjZlNTU0YjM3NmY1NjQyMzI2MzMyNTM1MDMzMzI1NjU5NmEzNzY0NTQ3OTZiNjI2ZTUyNzg3OTQ0NmY1MzM5NDI0Nzc2Njc2MTY3NzY2ZTRkNjM1NDM0Njg1OTYzNjM2MTYyNjI0NjQ3NmYzOTc0NjQ1NjUxNTQzNDRkMzQzNjY1N2E1OTRhNjQ0YzMyNzA3YTU5NDQ1Mzc3NmI2NjUyMzY3OTcyNzA3MDU5MDUwOTAxMDAwMDAwNjA3MzY5Njc1OTY2NTY1OTRhNTU2MTY5NGI0YjVhNTgzNDdhNzM3YTU3NWEzNzUyNDYzMjM5MzI2ZTU2MzI1MDM2NTg0ZDM0NmU0YjY1NmIzMjU5Njc1NzUxMzg0MjRjNTMzMTcyMzIzMjc1MzQ2MTM5NTM0Mzc2NDc0ZDYzNjIzODM5NDI2YTU0NjY3NDU0NmUzMjc2Njc1NTdhNDM1NDUxNDc1MzMyNjM0YTRlNzY2MjU5NzQ3NTQ3NTE2YTQ3NTAwMzA2NmRiZWVlODBkZTQ1ODQ3YWVlYjA0ZjE3ZGJiMmUwNzc0YWU2OTQyODE3ZDMxZTc0NGM3ZTc3NzI5MjVjNWY1MTBiMTg1MjNkYWZlNTQ2MDNjODc1MzE0MWYzZTA5ODk2NzhmMjI1MmRlYjNiZGFlZjkzZDZiZWZhOTQzOTkyNDAnXG4gICAgICApO1xuICAgICAgT2JqZWN0LmtleXModHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCkpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHNlbmQgdHJhbnNhY3Rpb24gdG8gbXVsdGlwbGUgZGVzdGluYXRpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JNOFFkWjkyVnlhSDFzNW53QUY5clVYamlQWjNnM05zbjZvWWJkS3FqMlJnSHh2V1hWUycpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzAnKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudHJhbnNmZXIoJzEwMCcpXG4gICAgICAgIC5mcm9tKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKVxuICAgICAgICAudG8oJ0tUMUhVcnQ2a2Z2WXlERVlDSjJHU2p2VFBaNkttUmZ4TEJVOCcpXG4gICAgICAgIC5mZWUoJzQ3NjQnKVxuICAgICAgICAuY291bnRlcignMScpXG4gICAgICAgIC5kYXRhVG9TaWduKFxuICAgICAgICAgICcwNTA3MDcwYTAwMDAwMDE2MDE5NjM2OWM5MDYyNTU3NWJhNDQ1OTRiMjM3OTQ4MzJhOTMzN2Y3YTJkMDAwNzA3MDAwMDA1MDUwMjAwMDAwMDMyMDMyMDA1M2QwMzZkMDc0MzAzNWQwYTAwMDAwMDE1MDA2YjVkZGFlZjNmYjVkN2MxNTFjZmIzNmZiZTQzYTdhMDY2Nzc3Mzk0MDMxZTA3NDMwMzZhMDAwMTAzNGYwMzRkMDMxYidcbiAgICAgICAgKTtcbiAgICAgIHR4QnVpbGRlclxuICAgICAgICAudHJhbnNmZXIoJzEwMCcpXG4gICAgICAgIC5mcm9tKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKVxuICAgICAgICAudG8oJ3R6MVZSalJwVktudjE2QVZwckZIMXRrRG40VERmVnFBODkzQScpXG4gICAgICAgIC5mZWUoJzQ3NjQnKVxuICAgICAgICAuY291bnRlcignMicpXG4gICAgICAgIC5kYXRhVG9TaWduKFxuICAgICAgICAgICcwNTA3MDcwYTAwMDAwMDE2MDE5NjM2OWM5MDYyNTU3NWJhNDQ1OTRiMjM3OTQ4MzJhOTMzN2Y3YTJkMDAwNzA3MDAwMDA1MDUwMjAwMDAwMDMyMDMyMDA1M2QwMzZkMDc0MzAzNWQwYTAwMDAwMDE1MDA2YjVkZGFlZjNmYjVkN2MxNTFjZmIzNmZiZTQzYTdhMDY2Nzc3Mzk0MDMxZTA3NDMwMzZhMDAwMTAzNGYwMzRkMDMxYidcbiAgICAgICAgKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oe1xuICAgICAgICBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHBydjogJ3Nwc2syY2JpVnNBdnBHS21hdTlYY01zY0wzTlJ3amt5VDU3NU41QXlBb2Zjb2o0MXg2ZzZUTCcgfSkuZ2V0S2V5cygpLnBydixcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHNlZWQ6IEJ1ZmZlci5hbGxvYygxNikgfSkuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnb255R2FXczZ6NGJWVmNmbjNoOUtiQnJrdEVodUR5SkxZRVZCNGFKUk02WU5uZ2pEeEU0Jyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCA0KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMik7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlB0Sjl6Z0VnRlZUUnF5NkdYc3N0NTR0SDNrc0VuWXZ2UycpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnNDc2NCcpO1xuICAgICAgdHguaW5wdXRzWzFdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCdLVDFOSDJNMjN4b3Zodzd1d1dWdW9HVFl4eWtlQ2NWZlNxaEwnKTtcbiAgICAgIHR4LmlucHV0c1sxXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMCcpO1xuICAgICAgdHguaW5wdXRzWzJdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQdEo5emdFZ0ZWVFJxeTZHWHNzdDU0dEgza3NFbll2dlMnKTtcbiAgICAgIHR4LmlucHV0c1syXS52YWx1ZS5zaG91bGQuZXF1YWwoJzQ3NjQnKTtcbiAgICAgIHR4LmlucHV0c1szXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnS1QxTkgyTTIzeG92aHc3dXdXVnVvR1RZeHlrZUNjVmZTcWhMJyk7XG4gICAgICB0eC5pbnB1dHNbM10udmFsdWUuc2hvdWxkLmVxdWFsKCcxMDAnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ0tUMUhVcnQ2a2Z2WXlERVlDSjJHU2p2VFBaNkttUmZ4TEJVOCcpO1xuICAgICAgdHgub3V0cHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzEwMCcpO1xuICAgICAgdHgub3V0cHV0c1sxXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoxVlJqUnBWS252MTZBVnByRkgxdGtEbjRURGZWcUE4OTNBJyk7XG4gICAgICB0eC5vdXRwdXRzWzFdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTAwJyk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHR4LmRlbGVnYXRlKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHguc2lnbmF0dXJlWzBdLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ2RVcHpDeG1pOU5XaGRiRkdmdnFWeUg4WGZyMlVpUGMyZmtxTnJRNENIdnJrMTlaRGtzRGtzRWM0REpzVGJwaGVuVjhqQ05aRnF6TDRzQ1ZSek05M0huU1NxZ0p6NydcbiAgICAgICk7XG4gICAgICB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ2JhN2EwNGZhYjFhM2Y3N2VkYTk2YjU1MTk0N2RkMzQzZTE2NWQxYjkxYjZmOWY4MDY2NDhiNjNlNTdjODhjYzg2YzAxYWFjYTg3YmRiY2RjNGU2MTE3YjY2N2UyOWY5YjUwNDM2MmM4MzFiYjljMjUwMGU4NTI4MTAyMDAwMTk2MzY5YzkwNjI1NTc1YmE0NDU5NGIyMzc5NDgzMmE5MzM3ZjdhMmQwMGZmZmYwNDZkNjE2OTZlMDAwMDAxNDAwNzA3MDcwNzAwMDEwNTA1MDIwMDAwMDA1ZTAzMjAwNTNkMDM2ZDA3NDMwMzZlMDEwMDAwMDAyNDRiNTQzMTQ4NTU3Mjc0MzY2YjY2NzY1OTc5NDQ0NTU5NDM0YTMyNDc1MzZhNzY1NDUwNWEzNjRiNmQ1MjY2Nzg0YzQyNTUzODA1NTUwMzZjMDIwMDAwMDAxNTA3MmYwMjAwMDAwMDA5MDIwMDAwMDAwNDAzNGYwMzI3MDIwMDAwMDAwMDA3NDMwMzZhMDBhNDAxMDM0ZjAzNGQwMzFiMDIwMDAwMDBkMDA1MDkwMTAwMDAwMDYwNzM2OTY3NGU2YTQ0MzYzNDRlNzU1NjZlNTU0YjM3NmY1NjQyMzI2MzMyNTM1MDMzMzI1NjU5NmEzNzY0NTQ3OTZiNjI2ZTUyNzg3OTQ0NmY1MzM5NDI0Nzc2Njc2MTY3NzY2ZTRkNjM1NDM0Njg1OTYzNjM2MTYyNjI0NjQ3NmYzOTc0NjQ1NjUxNTQzNDRkMzQzNjY1N2E1OTRhNjQ0YzMyNzA3YTU5NDQ1Mzc3NmI2NjUyMzY3OTcyNzA3MDU5MDUwOTAxMDAwMDAwNjA3MzY5Njc1OTY2NTY1OTRhNTU2MTY5NGI0YjVhNTgzNDdhNzM3YTU3NWEzNzUyNDYzMjM5MzI2ZTU2MzI1MDM2NTg0ZDM0NmU0YjY1NmIzMjU5Njc1NzUxMzg0MjRjNTMzMTcyMzIzMjc1MzQ2MTM5NTM0Mzc2NDc0ZDYzNjIzODM5NDI2YTU0NjY3NDU0NmUzMjc2Njc1NTdhNDM1NDUxNDc1MzMyNjM0YTRlNzY2MjU5NzQ3NTQ3NTE2YTQ3NTAwMzA2NmMwMWFhY2E4N2JkYmNkYzRlNjExN2I2NjdlMjlmOWI1MDQzNjJjODMxYmI5YzI1MDFlODUyODEwMjAwMDE5NjM2OWM5MDYyNTU3NWJhNDQ1OTRiMjM3OTQ4MzJhOTMzN2Y3YTJkMDBmZmZmMDQ2ZDYxNjk2ZTAwMDAwMTI0MDcwNzA3MDcwMDAyMDUwNTAyMDAwMDAwNDIwMzIwMDUzZDAzNmQwNzQzMDM1ZDAxMDAwMDAwMjQ3NDdhMzE1NjUyNmE1MjcwNTY0YjZlNzYzMTM2NDE1NjcwNzI0NjQ4MzE3NDZiNDQ2ZTM0NTQ0NDY2NTY3MTQxMzgzOTMzNDEwMzFlMDc0MzAzNmEwMGE0MDEwMzRmMDM0ZDAzMWIwMjAwMDAwMGQwMDUwOTAxMDAwMDAwNjA3MzY5Njc0ZTZhNDQzNjM0NGU3NTU2NmU1NTRiMzc2ZjU2NDIzMjYzMzI1MzUwMzMzMjU2NTk2YTM3NjQ1NDc5NmI2MjZlNTI3ODc5NDQ2ZjUzMzk0MjQ3NzY2NzYxNjc3NjZlNGQ2MzU0MzQ2ODU5NjM2MzYxNjI2MjQ2NDc2ZjM5NzQ2NDU2NTE1NDM0NGQzNDM2NjU3YTU5NGE2NDRjMzI3MDdhNTk0NDUzNzc2YjY2NTIzNjc5NzI3MDcwNTkwNTA5MDEwMDAwMDA2MDczNjk2NzU5NjY1NjU5NGE1NTYxNjk0YjRiNWE1ODM0N2E3MzdhNTc1YTM3NTI0NjMyMzkzMjZlNTYzMjUwMzY1ODRkMzQ2ZTRiNjU2YjMyNTk2NzU3NTEzODQyNGM1MzMxNzIzMjMyNzUzNDYxMzk1MzQzNzY0NzRkNjM2MjM4Mzk0MjZhNTQ2Njc0NTQ2ZTMyNzY2NzU1N2E0MzU0NTE0NzUzMzI2MzRhNGU3NjYyNTk3NDc1NDc1MTZhNDc1MDAzMDY3NjZhMGIxZjZjYjAzNWJmNTM3ODg3YmE5MDA0YzQ4OWJiNDU4ZDhjOGU3MmI1MDMzYjZjZWU4YWQ1MmY4NGVjMjdiNzE5ZjVkMGI5OGNkZjJkMDc0NGIyNTUzMDEyNjM2ODg2OTI2NDVlYWZjOWNkZjFiNDhiNTA1M2M1MWRjYSdcbiAgICAgICk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIGNvbnN0IGluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSA9IHR4LmdldEluZGV4ZXNCeVRyYW5zYWN0aW9uVHlwZSgpO1xuICAgICAgT2JqZWN0LmtleXMoaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnRyYW5zYWN0aW9uLmxlbmd0aC5zaG91bGQuZXF1YWwoMik7XG4gICAgICBpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUudHJhbnNhY3Rpb25bMF0uc2hvdWxkLmVxdWFsKDApO1xuICAgICAgaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnRyYW5zYWN0aW9uWzFdLnNob3VsZC5lcXVhbCgxKTtcblxuICAgICAgY29uc3QgZmlyc3RUcmFuc2ZlclNpZ25hdHVyZXMgPSB0eC5nZXRUcmFuc2ZlclNpZ25hdHVyZXMoaW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlLnRyYW5zYWN0aW9uWzBdKTtcbiAgICAgIGZpcnN0VHJhbnNmZXJTaWduYXR1cmVzWzBdLnNpZ25hdHVyZS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdOakQ2NE51Vm5VSzdvVkIyYzJTUDMyVllqN2RUeWtiblJ4eURvUzlCR3ZnYWd2bk1jVDRoWWNjYWJiRkdvOXRkVlFUNE00NmV6WUpkTDJwellEU3drZlI2eXJwcFknXG4gICAgICApO1xuICAgICAgZmlyc3RUcmFuc2ZlclNpZ25hdHVyZXNbMF0uaW5kZXguc2hvdWxkLmVxdWFsKDApO1xuICAgICAgZmlyc3RUcmFuc2ZlclNpZ25hdHVyZXNbMV0uc2lnbmF0dXJlLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ1lmVllKVWFpS0taWDR6c3pXWjdSRjI5Mm5WMlA2WE00bktlazJZZ1dROEJMUzFyMjJ1NGE5U0N2R01jYjg5QmpUZnRUbjJ2Z1V6Q1RRR1MyY0pOdmJZdHVHUWpHUCdcbiAgICAgICk7XG4gICAgICBmaXJzdFRyYW5zZmVyU2lnbmF0dXJlc1sxXS5pbmRleC5zaG91bGQuZXF1YWwoMSk7XG5cbiAgICAgIGNvbnN0IHNlY29uZFRyYW5zZmVyU2lnbmF0dXJlcyA9IHR4LmdldFRyYW5zZmVyU2lnbmF0dXJlcyhpbmRleGVzQnlUcmFuc2FjdGlvblR5cGUudHJhbnNhY3Rpb25bMV0pO1xuICAgICAgc2Vjb25kVHJhbnNmZXJTaWduYXR1cmVzWzBdLnNpZ25hdHVyZS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdzaWdOakQ2NE51Vm5VSzdvVkIyYzJTUDMyVllqN2RUeWtiblJ4eURvUzlCR3ZnYWd2bk1jVDRoWWNjYWJiRkdvOXRkVlFUNE00NmV6WUpkTDJwellEU3drZlI2eXJwcFknXG4gICAgICApO1xuICAgICAgc2Vjb25kVHJhbnNmZXJTaWduYXR1cmVzWzBdLmluZGV4LnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIHNlY29uZFRyYW5zZmVyU2lnbmF0dXJlc1sxXS5zaWduYXR1cmUuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnWWZWWUpVYWlLS1pYNHpzeldaN1JGMjkyblYyUDZYTTRuS2VrMllnV1E4QkxTMXIyMnU0YTlTQ3ZHTWNiODlCalRmdFRuMnZnVXpDVFFHUzJjSk52Yll0dUdRakdQJ1xuICAgICAgKTtcbiAgICAgIHNlY29uZFRyYW5zZmVyU2lnbmF0dXJlc1sxXS5pbmRleC5zaG91bGQuZXF1YWwoMSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSBzZW5kIHRyYW5zYWN0aW9uIHRvIG11bHRpcGxlIGRlc3RpbmF0aW9ucyBmcm9tIGltcGxpY2l0IGFjY291bnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VBY2NvdW50ID0gbmV3IFh0ekxpYi5LZXlQYWlyKHsgcHJ2OiAnc3BzazJjYmlWc0F2cEdLbWF1OVhjTXNjTDNOUndqa3lUNTc1TjVBeUFvZmNvajQxeDZnNlRMJyB9KTtcblxuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICc0NzY0JyB9KTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JLbmZpU1ZGVGppeGJoenNUYlIxZURtaXQ2eUs3VUJjZ1JKUGhtZ2VXY1pxaU1IUlo2RScpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzM3Nzc1MScpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShzb3VyY2VBY2NvdW50LmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIudHJhbnNmZXIoJzExMScpLnRvKCd0ejFWUmpScFZLbnYxNkFWcHJGSDF0a0RuNFREZlZxQTg5M0EnKTtcbiAgICAgIHR4QnVpbGRlci50cmFuc2ZlcignMTExJykudG8oJ3R6MlhDRGEydGNuUzI2UG9CZ2lVYjhoMXhZaHRKYWViQzJiVCcpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHNvdXJjZUFjY291bnQuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCgnb283bXBUQjIyUXUxZDdFVmM1YjRlQWRNZ0V6dmRLUnNIR2paV29FalF3WWs2QkoxTlRxJyk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU2luZ2xlU2lnU2VuZCk7XG4gICAgICB0eC5zb3VyY2Uuc2hvdWxkLmVxdWFsKCd0ejJQMkU4RWdIYUxBNkExN3JIM3BFOVQydHg2REE3RDRzaVcnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCA0KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMik7XG4gICAgICB0eC5pbnB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MlAyRThFZ0hhTEE2QTE3ckgzcEU5VDJ0eDZEQTdENHNpVycpO1xuICAgICAgdHguaW5wdXRzWzBdLnZhbHVlLnNob3VsZC5lcXVhbCgnNDc2NCcpO1xuICAgICAgdHguaW5wdXRzWzFdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQMkU4RWdIYUxBNkExN3JIM3BFOVQydHg2REE3RDRzaVcnKTtcbiAgICAgIHR4LmlucHV0c1sxXS52YWx1ZS5zaG91bGQuZXF1YWwoJzExMScpO1xuICAgICAgdHguaW5wdXRzWzJdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCd0ejJQMkU4RWdIYUxBNkExN3JIM3BFOVQydHg2REE3RDRzaVcnKTtcbiAgICAgIHR4LmlucHV0c1syXS52YWx1ZS5zaG91bGQuZXF1YWwoJzQ3NjQnKTtcbiAgICAgIHR4LmlucHV0c1szXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoyUDJFOEVnSGFMQTZBMTdySDNwRTlUMnR4NkRBN0Q0c2lXJyk7XG4gICAgICB0eC5pbnB1dHNbM10udmFsdWUuc2hvdWxkLmVxdWFsKCcxMTEnKTtcbiAgICAgIHR4Lm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoJ3R6MVZSalJwVktudjE2QVZwckZIMXRrRG40VERmVnFBODkzQScpO1xuICAgICAgdHgub3V0cHV0c1swXS52YWx1ZS5zaG91bGQuZXF1YWwoJzExMScpO1xuICAgICAgdHgub3V0cHV0c1sxXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgndHoyWENEYTJ0Y25TMjZQb0JnaVViOGgxeFlodEphZWJDMmJUJyk7XG4gICAgICB0eC5vdXRwdXRzWzFdLnZhbHVlLnNob3VsZC5lcXVhbCgnMTExJyk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHR4LmRlbGVnYXRlKTtcbiAgICAgIHR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdHguc2lnbmF0dXJlWzBdLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ3c1ZUcyckNrQXFKY1IyU3VaMjNURFFFdGZVOG9GdzlyR3BUQXRwdm5DNjlFYlFhek1aTDZlVW5Zenh6dldGYkxFdHA3SGJONGpvV2kxQzlHUTM0OE5Ycnc2WDNaZCdcbiAgICAgICk7XG4gICAgICB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLnNob3VsZC5lcXVhbChcbiAgICAgICAgJzA5ZjU2ODYwMjFhYWRjZmMwMDA2M2IwODczMDU1YzJlN2M4NDEzOThmZWNlM2Q3ODY1YThlZDI3NTY3MDhkNGE2YzAxYTE1MjVlMjg5YWVkOTMxMTljNDRmZDNhYThlOWRmODUyMmUwZDgwZDljMjU5Nzg3MTdlODUyODEwMjZmMDAwMDZiNWRkYWVmM2ZiNWQ3YzE1MWNmYjM2ZmJlNDNhN2EwNjY3NzczOTQwMDZjMDFhMTUyNWUyODlhZWQ5MzExOWM0NGZkM2FhOGU5ZGY4NTIyZTBkODBkOWMyNTk4ODcxN2U4NTI4MTAyNmYwMDAxZmFmNzExZjk4ZDNhOTc4NjU2NjUxYzMwODc1MTM4YzA4NmZhODcxMTAwZmNmMTg5YjM2NGMwMjFlNGJlMWEwMzJmMzg2NzQ0NWUwYzYyY2EwMTA0N2ZiODUzZmUwMmQwMzhlNjJmY2FkMDJmZmNhMWQwNWU0YjVhNGU0ZmRjM2NlNmZjMTE2MDdjOWNhOGNlY2E2ZmQ3MzM1ZDNkYWI2NDM5Y2UyZGVlMTEnXG4gICAgICApO1xuICAgICAgT2JqZWN0LmtleXModHguZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCkpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0eC5vd25lcnMubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIG11bHRpc2lnIHNlbmQgdHJhbnNhY3Rpb24gd2l0aCB0aGUgc2lnbmF0dXJlcyBpbiBjdXN0b20gb3JkZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC50cmFuc2ZlcignMTAwJylcbiAgICAgICAgLmZyb20oJ0tUMU5IMk0yM3hvdmh3N3V3V1Z1b0dUWXh5a2VDY1ZmU3FoTCcpXG4gICAgICAgIC50bygnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4JylcbiAgICAgICAgLmZlZSgnNDc2NCcpXG4gICAgICAgIC5nYXNMaW1pdCgnMzM5NzEnKVxuICAgICAgICAuc3RvcmFnZUxpbWl0KCcxMjkyJylcbiAgICAgICAgLmRhdGFUb1NpZ24oJzAwJyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIC8vIE11bHRpc2lnIGtleXNcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoeyBzZWVkOiBCdWZmZXIuYWxsb2MoMTgpIH0pLmdldEtleXMoKS5wcnYsIGluZGV4OiAyIH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcih7IHNlZWQ6IEJ1ZmZlci5hbGxvYygxNikgfSkuZ2V0S2V5cygpLnBydiwgaW5kZXg6IDEgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlcyA9IHR4LnRvSnNvbigpLmNvbnRlbnRzWzBdLnBhcmFtZXRlcnMudmFsdWUuYXJnc1sxXTtcbiAgICAgIHNpZ25hdHVyZXNbMF0ucHJpbS5zaG91bGQuZXF1YWwoJ05vbmUnKTtcbiAgICAgIHNpZ25hdHVyZXNbMV0ucHJpbS5zaG91bGQuZXF1YWwoJ1NvbWUnKTtcbiAgICAgIHNpZ25hdHVyZXNbMV0uYXJnc1swXS5zdHJpbmcuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnVXh2Q1FTRVdRdlpyZjN5UzJWalNUQld5Y01QZTN6QkJvNkVXdmEyZDN0SFYxREtaTlVzOGI1Zm1xUWVYV3ZkU1NYenR4NDhVc1BZNUZtSmlEb2ZtUFNaNlNValp0J1xuICAgICAgKTtcbiAgICAgIHNpZ25hdHVyZXNbMl0ucHJpbS5zaG91bGQuZXF1YWwoJ1NvbWUnKTtcbiAgICAgIHNpZ25hdHVyZXNbMl0uYXJnc1swXS5zdHJpbmcuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnc2lnaUMyODZnTGMxU1NXSHdLeWRjend3ZHdUVVB2N2U5bWtQZUh6ZkU5d0VHOVBLWjZmVWNtck1lWXdjSDd0OWZXc25vekI3RmF5MnV4a21pMXUxWDFidzNNZ0pVTnB1J1xuICAgICAgKTtcbiAgICAgIHR4Lm93bmVycy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgbXVsdGlzaWcgc2VuZCB0cmFuc2FjdGlvbiB3aXRoIHRoZSBzaWduYXR1cmVzIGluIGRlZmF1bHQgb3JkZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC50cmFuc2ZlcignMTAwJylcbiAgICAgICAgLmZyb20oJ0tUMU5IMk0yM3hvdmh3N3V3V1Z1b0dUWXh5a2VDY1ZmU3FoTCcpXG4gICAgICAgIC50bygnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4JylcbiAgICAgICAgLmZlZSgnNDc2NCcpXG4gICAgICAgIC5nYXNMaW1pdCgnMzM5NzEnKVxuICAgICAgICAuc3RvcmFnZUxpbWl0KCcxMjkyJylcbiAgICAgICAgLmRhdGFUb1NpZ24oJzAwJyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIC8vIE11bHRpc2lnIGtleXNcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoeyBzZWVkOiBCdWZmZXIuYWxsb2MoMTgpIH0pLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogbmV3IFh0ekxpYi5LZXlQYWlyKHsgc2VlZDogQnVmZmVyLmFsbG9jKDE2KSB9KS5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXMgPSB0eC50b0pzb24oKS5jb250ZW50c1swXS5wYXJhbWV0ZXJzLnZhbHVlLmFyZ3NbMV07XG4gICAgICBzaWduYXR1cmVzWzBdLnByaW0uc2hvdWxkLmVxdWFsKCdTb21lJyk7XG4gICAgICBzaWduYXR1cmVzWzBdLmFyZ3NbMF0uc3RyaW5nLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ2lDMjg2Z0xjMVNTV0h3S3lkY3p3d2R3VFVQdjdlOW1rUGVIemZFOXdFRzlQS1o2ZlVjbXJNZVl3Y0g3dDlmV3Nub3pCN0ZheTJ1eGttaTF1MVgxYnczTWdKVU5wdSdcbiAgICAgICk7XG4gICAgICBzaWduYXR1cmVzWzFdLnByaW0uc2hvdWxkLmVxdWFsKCdTb21lJyk7XG4gICAgICBzaWduYXR1cmVzWzFdLmFyZ3NbMF0uc3RyaW5nLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ3NpZ1V4dkNRU0VXUXZacmYzeVMyVmpTVEJXeWNNUGUzekJCbzZFV3ZhMmQzdEhWMURLWk5VczhiNWZtcVFlWFd2ZFNTWHp0eDQ4VXNQWTVGbUppRG9mbVBTWjZTVWpadCdcbiAgICAgICk7XG4gICAgICBzaWduYXR1cmVzWzJdLnByaW0uc2hvdWxkLmVxdWFsKCdOb25lJyk7XG4gICAgICBPYmplY3Qua2V5cyh0eC5nZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKSkubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHNpbmdsZVNpZyB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2luZ2xlU2lnU2VuZCk7XG4gICAgICB0eEJ1aWxkZXIuYnJhbmNoKCdCTThRZFo5MlZ5YUgxczVud0FGOXJVWGppUFozZzNOc242b1liZEtxajJSZ0h4dldYVlMnKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICB0eEJ1aWxkZXJcbiAgICAgICAgLnRyYW5zZmVyKG5ldyBCaWdOdW1iZXIoMTApLnRvRml4ZWQoMCkpXG4gICAgICAgIC5mcm9tKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSlcbiAgICAgICAgLnRvKCdLVDFIVXJ0Nmtmdll5REVZQ0oyR1NqdlRQWjZLbVJmeExCVTgnKVxuICAgICAgICAuZmVlKCc0NzY0JylcbiAgICAgICAgLmdhc0xpbWl0KCcxMDA5NzEnKVxuICAgICAgICAuc3RvcmFnZUxpbWl0KCcxMjkyJyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU2luZ2xlU2lnU2VuZCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHR4SnNvbi5jb250ZW50c1swXS5nYXNfbGltaXQuc2hvdWxkLmVxdWFsKCcxMDA5NzEnKTtcbiAgICAgIHR4SnNvbi5jb250ZW50c1swXS5zdG9yYWdlX2xpbWl0LnNob3VsZC5lcXVhbCgnMTI5MicpO1xuICAgICAgdHhKc29uLmNvbnRlbnRzWzBdLmFtb3VudC5zaG91bGQuZXF1YWwoJzEwJyk7XG4gICAgICB0eEpzb24uY29udGVudHNbMF0uY291bnRlci5zaG91bGQuZXF1YWwoJzAnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsIHRvIHNpZ24nLCAoKSA9PiB7XG4gICAgbGV0IGdlbmVyaWNUeEJ1aWxkZXI6IGFueTtcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlciA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgndHh0eicpKTtcbiAgICAgIGdlbmVyaWNUeEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlci5jb3VudGVyKCcwJyk7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyXG4gICAgICAgIC50cmFuc2ZlcignMTAwJylcbiAgICAgICAgLmZyb20oJ0tUMU5IMk0yM3hvdmh3N3V3V1Z1b0dUWXh5a2VDY1ZmU3FoTCcpXG4gICAgICAgIC50bygnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4JylcbiAgICAgICAgLmZlZSgnNDc2NCcpXG4gICAgICAgIC5nYXNMaW1pdCgnMzM5NzEnKVxuICAgICAgICAuc3RvcmFnZUxpbWl0KCcxMjkyJylcbiAgICAgICAgLmRhdGFUb1NpZ24oJzAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSB0cmFuc2FjdGlvbiB3aXRoIG5vIHNvdXJjZSBhY2NvdW50JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHRyYW5zYWN0aW9uIHdpdGggYSBkaWZmZXJlbnQgcHJpdmF0ZSBrZXkgdGhhbiB0aGUgc291cmNlIGFjY291bnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLmZyb20odGVzdERhdGEuZW1wdHlVbnNpZ25lZFNlcmlhbGl6ZWRPcmlnaW5hdGlvblRyYW5zYWN0aW9uKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoKS5nZXRLZXlzKCkucHJ2IH0pKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHRyYW5zYWN0aW9uIHdpdGggc29tZSBrZXlzIHdpdGggY3VzdG9tIGluZGV4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgLy8gTXVsdGlzaWcga2V5c1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoKS5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoKS5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoKS5nZXRLZXlzKCkucHJ2LCBpbmRleDogMiB9KSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnQ3VzdG9tIGluZGV4IGhhcyB0byBiZSBzZXQgZm9yIGFsbCBtdWx0aXNpZyBjb250cmFjdCBzaWduaW5nIGtleXMgb3Igbm9uZScpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgdHJhbnNhY3Rpb24gd2l0aCBzb21lIGtleXMgd2l0aG91dCBjdXN0b20gaW5kZXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICAvLyBNdWx0aXNpZyBrZXlzXG4gICAgICBnZW5lcmljVHhCdWlsZGVyLnNpZ24oeyBrZXk6IG5ldyBYdHpMaWIuS2V5UGFpcigpLmdldEtleXMoKS5wcnYsIGluZGV4OiAwIH0pO1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoKS5nZXRLZXlzKCkucHJ2LCBpbmRleDogMSB9KTtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IGdlbmVyaWNUeEJ1aWxkZXIuc2lnbih7IGtleTogbmV3IFh0ekxpYi5LZXlQYWlyKCkuZ2V0S2V5cygpLnBydiB9KSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnQ3VzdG9tIGluZGV4IGhhcyB0byBiZSBzZXQgZm9yIGFsbCBtdWx0aXNpZyBjb250cmFjdCBzaWduaW5nIGtleXMgb3Igbm9uZScpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgdHJhbnNhY3Rpb24gd2l0aCBhIGtleSB3aXRoIGludmFsaWQgY3VzdG9tIGluZGV4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gZ2VuZXJpY1R4QnVpbGRlci5zaWduKHsga2V5OiBuZXcgWHR6TGliLktleVBhaXIoKS5nZXRLZXlzKCkucHJ2LCBpbmRleDogMyB9KSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnQ3VzdG9tIGluZGV4IGNhbm5vdCBiZSBncmVhdGVyJylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSBTZW5kIHRyYW5zYWN0aW9uIHdpdGggbm8gdHJhbnNmZXJzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICc0NzY0JyB9KTtcbiAgICAgIHR4QnVpbGRlci5icmFuY2goJ0JLbmZpU1ZGVGppeGJoenNUYlIxZURtaXQ2eUs3VUJjZ1JKUGhtZ2VXY1pxaU1IUlo2RScpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoJzEnKTtcbiAgICAgIHR4QnVpbGRlci5zb3VyY2UoZGVmYXVsdEtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FuIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24gd2l0aG91dCBwdWJsaWMga2V5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50VXBkYXRlKTtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHR4QnVpbGRlci5zaWduKHsga2V5OiBkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHJ2IH0pLFxuICAgICAgICBuZXcgUmVnRXhwKCdDYW5ub3Qgc2lnbiBhIHB1YmxpYyBrZXkgcmV2ZWxhdGlvbiB0cmFuc2FjdGlvbiB3aXRob3V0IHB1YmxpYyBrZXknKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsIHRvJywgKCkgPT4ge1xuICAgIGl0KCdjaGFuZ2UgdGhlIHR5cGUgdG8gU2VuZCB3aGVuIG93bmVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcihkZWZhdWx0S2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpKTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZCBhIHNlbmQgdHJhbnNhY3Rpb24gd2l0aCBvd25lcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIub3duZXIoZGVmYXVsdEtleVBhaXIuZ2V0S2V5cygpLnB1YikpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkIGEgdHJhbnNhY3Rpb24gd2l0aCBhbiBpbnZhbGlkIGJyYW5jaCBpZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5icmFuY2goJycpKTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZCBhIHRyYW5zYWN0aW9uIHdpdGggYW4gaW52YWxpZCB2YWx1ZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5pbml0aWFsQmFsYW5jZSgnLTEnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGQgYSBub24gd2FsbGV0IGluaXRpYWxpemF0aW9uIHRyYW5zYWN0aW9uIHdpdGggaW5pdGlhbCBiYWxhbmNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLmluaXRpYWxCYWxhbmNlKCcxMDAnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGQgdHJhbnNmZXIgZm9yIG5vbiBzZW5kLXR5cGUgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLnRyYW5zZmVyKCcxMDAnKSwgbmV3IFJlZ0V4cCgnVHJhbnNmZXJzIGNhbiBvbmx5IGJlIHNldCBmb3Igc2VuZCB0cmFuc2FjdGlvbnMnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYWRkIG1vcmUgb3duZXJzIHRoYW4gdGhlIG11bHRpc2lnIG1heGltdW0nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignc3BwazdaV0I4ZGlVMlRXZWh4ZGtXQ1YyRFRGdm4xaFB6NHFMamlEM25KUW96S25vU0VuU0M4YicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCdzcHBrN1pxOUtQdHdremtnQXNoYTRqVTI5QzQzTWNnUDJza0s1NnRqZDdLSmpoY21INkFaQzFGJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKTtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHR4QnVpbGRlci5vd25lcignc3BwazdkMnp0emJyTGRCYVRCN3l6YVdSa1BmY1dHc3JOUU5KZGtCRTliQ1RTU3pla0xOenB2ZicpLFxuICAgICAgICBuZXcgUmVnRXhwKCdBIG1heGltdW0gb2YgMyBvd25lcnMnKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGQgdGhlIHNhbWUgb3duZXIgdHdpY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignc3BwazdkMnp0emJyTGRCYVRCN3l6YVdSa1BmY1dHc3JOUU5KZGtCRTliQ1RTU3pla0xOenB2ZicpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gdHhCdWlsZGVyLm93bmVyKCdzcHBrN2QyenR6YnJMZEJhVEI3eXphV1JrUGZjV0dzck5RTkpka0JFOWJDVFNTemVrTE56cHZmJyksXG4gICAgICAgIG5ldyBSZWdFeHAoJ1JlcGVhdGVkIG93bmVyIHB1YmxpYyBrZXknKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGQgYW4gaW52YWxpZCBvd25lciBwdWJsaWMga2V5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyOiBhbnkgPSBuZXcgWHR6TGliLlRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3h0eicpKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5vd25lcignc3BwaycpLCBuZXcgUmVnRXhwKCdJbnZhbGlkIHB1YmxpYyBrZXknKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYWRkIGFuIGludmFsaWQgcHVibGljIGtleSB0byByZXZlYWwnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIucHVibGljS2V5VG9SZXZlYWwoJ3NwcGsnKSwgbmV3IFJlZ0V4cCgnVW5zdXBwb3J0ZWQgcHVibGljIGtleScpKTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGQgdGhlIHNhbWUgcHVibGljIGtleSB0byByZXZlYWwgdHdpY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgdHhCdWlsZGVyLnNvdXJjZShkZWZhdWx0S2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgICAgdHhCdWlsZGVyLnB1YmxpY0tleVRvUmV2ZWFsKGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gdHhCdWlsZGVyLnB1YmxpY0tleVRvUmV2ZWFsKGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wdWIpLFxuICAgICAgICBuZXcgUmVnRXhwKCdQdWJsaWMga2V5IHRvIHJldmVhbCBhbHJlYWR5IHNldCcpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FkZCB0aGUgcHVibGljIGtleSB0byByZXZlYWwgdGhhdCBkb2VzIG5vdCBiZWxvbmcgdG8gdGhlIHNvdXJjZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlcjogYW55ID0gbmV3IFh0ekxpYi5UcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd4dHonKSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWNjb3VudFVwZGF0ZSk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB0eEJ1aWxkZXIucHVibGljS2V5VG9SZXZlYWwoJ3NwcGs3ZDJ6dHpickxkQmFUQjd5emFXUmtQZmNXR3NyTlFOSmRrQkU5YkNUU1N6ZWtMTnpwdmYnKSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnUHVibGljIGtleSBkb2VzIG5vdCBtYXRjaCB0aGUgc291cmNlIGFkZHJlc3MnKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdjaGFuZ2UgdGhlIHRyYW5zYWN0aW9uIHR5cGUgZnJvbSBTZW5kIGlmIGl0IGhhcyB0cmFuc2ZlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXI6IGFueSA9IG5ldyBYdHpMaWIuVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgneHR6JykpO1xuICAgICAgdHhCdWlsZGVyLmJyYW5jaCgnQk04UWRaOTJWeWFIMXM1bndBRjlyVVhqaVBaM2czTnNuNm9ZYmRLcWoyUmdIeHZXWFZTJyk7XG4gICAgICB0eEJ1aWxkZXIuc291cmNlKGRlZmF1bHRLZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcignMCcpO1xuICAgICAgdHhCdWlsZGVyXG4gICAgICAgIC50cmFuc2ZlcignMTAwJylcbiAgICAgICAgLmZyb20oJ0tUMU5IMk0yM3hvdmh3N3V3V1Z1b0dUWXh5a2VDY1ZmU3FoTCcpXG4gICAgICAgIC50bygnS1QxSFVydDZrZnZZeURFWUNKMkdTanZUUFo2S21SZnhMQlU4JylcbiAgICAgICAgLmZlZSgnNDc2NCcpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRlZmF1bHRLZXlQYWlyLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pLFxuICAgICAgICBuZXcgUmVnRXhwKCdUcmFuc2FjdGlvbiBjb250YWlucyB0cmFuc2ZlcnMgYW5kIGNhbiBvbmx5IGJlIGxhYmVsZWQgYXMgU2VuZCcpXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|