@alliander-opensource/aws-jwt-sts 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -33,7 +33,7 @@ var wafUsage;
33
33
  (function (wafUsage) {
34
34
  wafUsage[wafUsage["ConstructProvided"] = 0] = "ConstructProvided";
35
35
  wafUsage[wafUsage["ProvideWebAclArn"] = 1] = "ProvideWebAclArn";
36
- })(wafUsage = exports.wafUsage || (exports.wafUsage = {}));
36
+ })(wafUsage || (exports.wafUsage = wafUsage = {}));
37
37
  /* eslint-disable no-new */
38
38
  class AwsJwtSts extends constructs_1.Construct {
39
39
  constructor(app, id, props) {
@@ -448,4 +448,4 @@ class AwsJwtSts extends constructs_1.Construct {
448
448
  }
449
449
  }
450
450
  exports.AwsJwtSts = AwsJwtSts;
451
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUE0QztBQUM1QyxFQUFFO0FBQ0Ysc0NBQXNDOzs7QUFFdEMsbUNBQW1DO0FBQ25DLG1DQUFrQztBQUNsQyxpREFBZ0Q7QUFDaEQscURBQW9EO0FBQ3BELDZEQUE0RDtBQUM1RCwyQ0FBMEM7QUFDMUMsaURBQTJFO0FBQzNFLHlDQUF3QztBQUN4QywrQ0FBcUQ7QUFDckQseURBQXdEO0FBQ3hELHdFQUF1RTtBQUN2RSxpREFBZ0Q7QUFDaEQsMERBQXlEO0FBQ3pELDBEQUF5RDtBQUN6RCxtREFBa0Q7QUFDbEQsa0VBQWlFO0FBQ2pFLHlEQUF3RDtBQUN4RCwrREFBK0Q7QUFDL0QsK0NBQThDO0FBQzlDLDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMseURBQXdEO0FBQ3hELCtEQUE2RDtBQUM3RCw4REFBNkQ7QUFDN0QsMkNBQXNDO0FBSXRDLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQixpRUFBaUIsQ0FBQTtJQUNqQiwrREFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFHbkI7QUFnRkQsMkJBQTJCO0FBQzNCLE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBTXRDLFlBQWEsR0FBYyxFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM1RCxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWQsNEVBQTRFO1FBRTVFLElBQUksdUJBQXVCLEdBQWEsRUFBRSxDQUFBO1FBQzFDLElBQUksZUFBeUMsQ0FBQTtRQUM3QyxJQUFJLGdCQUEwQyxDQUFBO1FBQzlDLElBQUksVUFBbUMsQ0FBQTtRQUN2QyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7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Q0FBQyxhQUFhO1NBQ2pELENBQUMsQ0FBQTtRQUVGLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDOUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxvQ0FBb0M7WUFDekYsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUN4RSxTQUFTLEVBQUUsQ0FBQztZQUNaLGlCQUFpQixFQUFFLENBQUM7WUFDcEIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsZ0JBQWdCLEVBQUUsNEJBQTRCO1lBQzlDLGdCQUFnQixFQUFFLGlDQUFnQixDQUFDLGFBQWE7U0FDakQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBaGVELDhCQWdlQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYidcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJ1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJ1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSdcbmltcG9ydCB7IE9yZ2FuaXphdGlvblByaW5jaXBhbCwgUG9saWN5RG9jdW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJ1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJ1xuaW1wb3J0IHsgQnVja2V0RW5jcnlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMydcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnXG5pbXBvcnQgKiBhcyBjbG91ZGZyb250T3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJ1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnXG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cydcbmltcG9ydCAqIGFzIGFjbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJ1xuaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1MydcbmltcG9ydCAqIGFzIHJvdXRlNTN0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHMnXG5pbXBvcnQgKiBhcyBhcGlnYXRld2F5IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5J1xuaW1wb3J0IHsgTWV0aG9kTG9nZ2luZ0xldmVsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknXG5pbXBvcnQgKiBhcyB3YWZ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtd2FmdjInXG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucydcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJ1xuaW1wb3J0IHsgVHJlYXRNaXNzaW5nRGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJ1xuaW1wb3J0ICogYXMgbGFtYmRhTm9kZWpzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJ1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cydcbmltcG9ydCB7IElDZXJ0aWZpY2F0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInXG5pbXBvcnQgeyBJSG9zdGVkWm9uZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJ1xuXG5leHBvcnQgZW51bSB3YWZVc2FnZSB7XG4gIENvbnN0cnVjdFByb3ZpZGVkLFxuICBQcm92aWRlV2ViQWNsQXJuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzSnd0U3RzUHJvcHMge1xuICAvKipcbiAgICogZGVmYXVsdEF1ZGllbmNlIHdoaWNoIGlzIHVzZWQgaW4gZGUgSldUJ3NcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBdWRpZW5jZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3N0ZWRab25lSWQgb2YgdGhlIGRvbWFpbiB1c2VkIGZvciBob3N0aW5nIHRoZSBzdHMgZnVuY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmVJZD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgaG9zdGVkWm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAqIE9wdGlvbmFsIHN1YmRvbWFpbiBuYW1lIG9mIG9pZGMgZGlzY292ZXJ5LCBkZWZhdWx0OiBvaWRjLlxuICAqL1xuICByZWFkb25seSBvaWRjU3ViZG9tYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAqIE9wdGlvbmFsIHN1YmRvbWFpbiBuYW1lIG9mIHRoZSB0b2tlbiBhcGkgKG9uIGFwaSBndyksIGRlZmF1bHQ6IHRva2VuLlxuICAqL1xuICByZWFkb25seSB0b2tlblN1YmRvbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgd2FmIG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSBBUEkgR1dcbiAgICpcbiAgICogTm9uZTogbm8gd2FmIGlzIHVzZWRcbiAgICogQ29uc3RydWN0UHJvdmlkZWQ6IHRoZSBjb25zdHJ1Y3Qgd2lsbCBkZXBsb3kgYSB3YWZBY2wgd2l0aCBvcGluaW9uYXRlZCBydWxlc1xuICAgKiBQcm92aWRlV2ViQWNsQXJuOiBwcm92aWRlIHlvdXIgb3duIGFyblxuICAgKi9cbiAgcmVhZG9ubHkgYXBpR3dXYWY/OiB3YWZVc2FnZTtcblxuICAvKipcbiAgICogQXJuIG9mIHRoZSB3YWYgd2ViQWNsIHJ1bGUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBBUEkgR1dcbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGFwaUd3V2FmV2ViQWNsQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIEFXUyBPcmdhbml6YXRpb24gMC14eHh4XG4gICAqXG4gICAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQ1BVIEFyY2hpdGVjdHVyZVxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlPzogbGFtYmRhLkFyY2hpdGVjdHVyZVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBib29sZWFuIHRvIHNwZWNpZnkgaWYga2V5IHJvdGF0aW9uIHNob3VsZCBiZSB0cmlnZ2VyZWQgb24gY3JlYXRpb24gb2YgdGhlIHN0YWNrLCBkZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUtleVJvdGF0ZU9uQ3JlYXRlPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyBTdGVwIEZ1bmN0aW9uIGZhaWx1cmVzLCBkZWZhdWx0OiBzdHMta2V5X3JvdGF0ZV9zZm4tYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZUtleVJvdGF0aW9uU3RlcEZ1bmN0aW9uRmFpbGVkPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSBuYW1lIGZvciB0aGUgQ2xvdWRXYXRjaCBBbGFybSBtb25pdG9yaW5nIDV4eCBlcnJvcnMgb24gdGhlIEFQSSBHYXRld2F5LCBkZWZhdWx0OiBzdHMtNXh4X2FwaV9ndy1hbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lQXBpR2F0ZXdheTV4eD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyBTaWduIExhbWJkYSBmYWlsdXJlcywgZGVmYXVsdDogc3RzLXNpZ25fZXJyb3JzX2xhbWJkYS1hbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lU2lnbkxhbWJkYUZhaWxlZD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyBLZXkgUm90YXRpb24gTGFtYmRhIGZhaWx1cmVzLCBkZWZhdWx0OiBzdHMta2V5X3JvdGF0ZV9lcnJvcnNfbGFtYmRhLWFsYXJtXG4gICAqL1xuICByZWFkb25seSBhbGFybU5hbWVLZXlSb3RhdGlvbkxhbWJkYUZhaWxlZD86IHN0cmluZ1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcgKi9cbmV4cG9ydCBjbGFzcyBBd3NKd3RTdHMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogU05TIHRvcGljIHVzZWQgdG8gcHVibGlzaCBlcnJvcnMgZnJvbSB0aGUgU3RlcCBGdW5jdGlvbiByb3RhdGlvbiBmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmFpbGVkUm90YXRpb25Ub3BpYzogc25zLlRvcGljXG5cbiAgY29uc3RydWN0b3IgKGFwcDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXdzSnd0U3RzUHJvcHMpIHtcbiAgICBzdXBlcihhcHAsIGlkKVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ3VzdG9tIGRvbWFpbiB0aGluZ2llcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgbGV0IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gICAgbGV0IG9pZGNDZXJ0aWZpY2F0ZTogSUNlcnRpZmljYXRlIHwgdW5kZWZpbmVkXG4gICAgbGV0IHRva2VuQ2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZSB8IHVuZGVmaW5lZFxuICAgIGNvbnN0IG9pZGNTdWJkb21haW4gPSBwcm9wcy5vaWRjU3ViZG9tYWluID8gcHJvcHMub2lkY1N1YmRvbWFpbiA6ICdvaWRjJ1xuICAgIGNvbnN0IHRva2VuU3ViZG9tYWluID0gcHJvcHMudG9rZW5TdWJkb21haW4gPyBwcm9wcy50b2tlblN1YmRvbWFpbiA6ICd0b2tlbidcbiAgICBjb25zdCBhcmNoaXRlY3R1cmUgPSBwcm9wcy5hcmNoaXRlY3R1cmUgPyBwcm9wcy5hcmNoaXRlY3R1cmUgOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgIGxldCBvaWRjRG9tYWluTmFtZSA9ICcnXG4gICAgbGV0IHRva2VuRG9tYWluTmFtZSA9ICcnXG5cbiAgICBjb25zdCB1c2VDdXN0b21Eb21haW4gPSBwcm9wcy5ob3N0ZWRab25lSWQgJiYgcHJvcHMuaG9zdGVkWm9uZU5hbWVcblxuICAgIGlmICh1c2VDdXN0b21Eb21haW4pIHtcbiAgICAgIG9pZGNEb21haW5OYW1lID0gb2lkY1N1YmRvbWFpbiArICcuJyArIHByb3BzLmhvc3RlZFpvbmVOYW1lXG4gICAgICB0b2tlbkRvbWFpbk5hbWUgPSB0b2tlblN1YmRvbWFpbiArICcuJyArIHByb3BzLmhvc3RlZFpvbmVOYW1lXG5cbiAgICAgIGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzID0gW29pZGNEb21haW5OYW1lXVxuXG4gICAgICBob3N0ZWRab25lID0gcm91dGU1My5Ib3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ2hvc3RlZFpvbmUnLFxuICAgICAgICB7XG4gICAgICAgICAgem9uZU5hbWU6IHByb3BzLmhvc3RlZFpvbmVOYW1lISxcbiAgICAgICAgICBob3N0ZWRab25lSWQ6IHByb3BzLmhvc3RlZFpvbmVJZCFcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICBvaWRjQ2VydGlmaWNhdGUgPSBuZXcgYWNtLkRuc1ZhbGlkYXRlZENlcnRpZmljYXRlKHRoaXMsICdDcm9zc1JlZ2lvbkNlcnRpZmljYXRlJywge1xuICAgICAgICBkb21haW5OYW1lOiBvaWRjRG9tYWluTmFtZSxcbiAgICAgICAgaG9zdGVkWm9uZSxcbiAgICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJ1xuICAgICAgfSlcblxuICAgICAgdG9rZW5DZXJ0aWZpY2F0ZSA9IG5ldyBhY20uQ2VydGlmaWNhdGUodGhpcywgJ3Rva2VuQ2VydGlmaWNhdGUnLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IHRva2VuRG9tYWluTmFtZSxcbiAgICAgICAgdmFsaWRhdGlvbjogYWNtLkNlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zKGhvc3RlZFpvbmUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFMzIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIC8vIENyZWF0ZSBidWNrZXQgd2hlcmUgb2lkYyBpbmZvcm1hdGlvbiBjYW4gYmUgc3RvcmVkXG4gICAgY29uc3Qgb2lkY2J1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ29pZGNidWNrZXQnLCB7XG4gICAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMXG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tIENsb3VkZnJvbnQgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBjb25zdCBjbG91ZGZyb250T0FJID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgJ2Nsb3VkZnJvbnQtT0FJJywge1xuICAgICAgY29tbWVudDogJ09BSSBmb3Igb2lkYydcbiAgICB9KVxuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHRoaXMsICdvaWRjRGlzdHJpYnV0aW9uJywge1xuICAgICAgZG9tYWluTmFtZXM6IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzLFxuICAgICAgY29tbWVudDogJ0Rpc2NvdmVyeSBlbmRwb2ludCBmb3IgT0lEQycsXG4gICAgICBjZXJ0aWZpY2F0ZTogb2lkY0NlcnRpZmljYXRlLFxuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogbmV3IGNsb3VkZnJvbnRPcmlnaW5zLlMzT3JpZ2luKG9pZGNidWNrZXQsIHsgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IGNsb3VkZnJvbnRPQUkgfSksXG4gICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICBhbGxvd2VkTWV0aG9kczogY2xvdWRmcm9udC5BbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQU1xuICAgICAgfVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tIExhbWJkYSBIYW5kbGVycyBEZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgY29uc3QgaXNzdWVyID0gdXNlQ3VzdG9tRG9tYWluID8gJ2h0dHBzOi8vJyArIG9pZGNEb21haW5OYW1lIDogJ2h0dHBzOi8vJyArIGRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25Eb21haW5OYW1lXG5cbiAgICBjb25zdCByb3RhdGVLZXlzUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAncm90YXRlS2V5c1JvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpXVxuICAgIH0pXG4gICAgY29uc3Qgcm90YXRlS2V5cyA9IG5ldyBsYW1iZGFOb2RlanMuTm9kZWpzRnVuY3Rpb24odGhpcywgJ2tleXJvdGF0ZScsIHtcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICByb2xlOiByb3RhdGVLZXlzUm9sZSxcbiAgICAgIGFyY2hpdGVjdHVyZSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFMzX0JVQ0tFVDogb2lkY2J1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBJU1NVRVI6IGlzc3VlclxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBzaWduUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnc2lnblJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpXVxuICAgIH0pXG4gICAgY29uc3Qgc2lnbiA9IG5ldyBsYW1iZGFOb2RlanMuTm9kZWpzRnVuY3Rpb24odGhpcywgJ3NpZ24nLCB7XG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgcm9sZTogc2lnblJvbGUsXG4gICAgICBhcmNoaXRlY3R1cmUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBJU1NVRVI6IGlzc3VlcixcbiAgICAgICAgREVGQVVMVF9BVURJRU5DRTogcHJvcHMuZGVmYXVsdEF1ZGllbmNlXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU05TIFRvcGljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIHRoaXMuZmFpbGVkUm90YXRpb25Ub3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ3N0cycpXG4gICAgY29uc3Qgc25zRmFpbCA9IG5ldyB0YXNrcy5TbnNQdWJsaXNoKHRoaXMsICdzbnNGYWlsZWQnLCB7XG4gICAgICB0b3BpYzogdGhpcy5mYWlsZWRSb3RhdGlvblRvcGljLFxuICAgICAgc3ViamVjdDogJ1NUUyBLZXlSb3RhdGUgc3RlcCBmdW5jdGlvbiBleGVjdXRpb24gZmFpbGVkJyxcbiAgICAgIG1lc3NhZ2U6IHNmbi5UYXNrSW5wdXQuZnJvbUpzb25QYXRoQXQoJyQnKVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tIFN0ZXAgZnVuY3Rpb25zIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBjb25zdCBkZWxldGVQcmV2aW91c1N0ZXAgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdkZWxldGUgUHJldmlvdXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcm90YXRlS2V5cyxcbiAgICAgIHBheWxvYWQ6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgIHN0ZXA6ICdkZWxldGVQcmV2aW91cydcbiAgICAgIH0pLFxuICAgICAgb3V0cHV0UGF0aDogJyQuUGF5bG9hZCdcbiAgICB9KVxuXG4gICAgY29uc3QgbW92ZVByZXZpb3VzU3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ21vdmUgUHJldmlvdXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcm90YXRlS2V5cyxcbiAgICAgIHBheWxvYWQ6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgIHN0ZXA6ICdtb3ZlUHJldmlvdXMnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IG1vdmVDdXJyZW50U3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ21vdmUgQ3VycmVudCcsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiByb3RhdGVLZXlzLFxuICAgICAgcGF5bG9hZDogc2ZuLlRhc2tJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgc3RlcDogJ21vdmVDdXJyZW50J1xuICAgICAgfSksXG4gICAgICBvdXRwdXRQYXRoOiAnJC5QYXlsb2FkJ1xuICAgIH0pXG5cbiAgICBjb25zdCBjcmVhdGVQZW5kaW5nU3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ2NyZWF0ZSBQZW5kaW5nJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnY3JlYXRlUGVuZGluZydcbiAgICAgIH0pLFxuICAgICAgb3V0cHV0UGF0aDogJyQuUGF5bG9hZCdcbiAgICB9KVxuXG4gICAgY29uc3QgZ2VuZXJhdGVBcnRpZmFjdHNTdGVwID0gbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnZ2VuZXJhdGUgYXJ0aWZhY3RzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnZ2VuZXJhdGVBcnRpZmFjdHMnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IGpvYkZhaWxlZCA9IG5ldyBzZm4uRmFpbCh0aGlzLCAnRmFpbGVkJywge1xuICAgICAgY2F1c2U6ICdBV1MgQmF0Y2ggSm9iIEZhaWxlZCcsXG4gICAgICBlcnJvcjogJ0Rlc2NyaWJlSm9iIHJldHVybmVkIEZBSUxFRCdcbiAgICB9KVxuXG4gICAgY29uc3Qgam9iU3VjY2VzcyA9IG5ldyBzZm4uU3VjY2VlZCh0aGlzLCAnU3VjY2VzcyEnKVxuXG4gICAgZGVsZXRlUHJldmlvdXNTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG4gICAgbW92ZVByZXZpb3VzU3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIG1vdmVDdXJyZW50U3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIGNyZWF0ZVBlbmRpbmdTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG4gICAgZ2VuZXJhdGVBcnRpZmFjdHNTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG5cbiAgICAvLyBDcmVhdGUgY2hhaW5cbiAgICBjb25zdCBkZWZpbml0aW9uID0gZGVsZXRlUHJldmlvdXNTdGVwXG4gICAgICAubmV4dChtb3ZlUHJldmlvdXNTdGVwKVxuICAgICAgLm5leHQobW92ZUN1cnJlbnRTdGVwKVxuICAgICAgLm5leHQoY3JlYXRlUGVuZGluZ1N0ZXApXG4gICAgICAubmV4dChnZW5lcmF0ZUFydGlmYWN0c1N0ZXApXG4gICAgICAubmV4dChqb2JTdWNjZXNzKVxuXG4gICAgc25zRmFpbC5uZXh0KGpvYkZhaWxlZClcblxuICAgIC8vIENyZWF0ZSBzdGF0ZSBtYWNoaW5lXG4gICAgY29uc3Qgcm90YXRlS2V5c01hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnUm90YXRlS2V5cycsIHtcbiAgICAgIGRlZmluaXRpb24sXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcyg1KVxuICAgIH0pXG5cbiAgICByb3RhdGVLZXlzLmdyYW50SW52b2tlKHJvdGF0ZUtleXNNYWNoaW5lLnJvbGUpXG4gICAgb2lkY2J1Y2tldC5ncmFudFJlYWRXcml0ZShyb3RhdGVLZXlzKVxuXG4gICAgY29uc3Qgc3RhdGVtZW50U2lnbiA9IG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KClcbiAgICBzdGF0ZW1lbnRTaWduLmFkZEFjdGlvbnMoJ2ttczoqJylcbiAgICBzdGF0ZW1lbnRTaWduLmFkZFJlc291cmNlcygnKicpXG4gICAgY29uc3Qgc2lnblBvbGljeSA9IG5ldyBpYW0uTWFuYWdlZFBvbGljeSh0aGlzLCAnU2lnblBvbGljeScsIHtcbiAgICAgIHN0YXRlbWVudHM6IFtzdGF0ZW1lbnRTaWduXVxuICAgIH0pXG4gICAgc2lnblJvbGUuYWRkTWFuYWdlZFBvbGljeShzaWduUG9saWN5KVxuXG4gICAgY29uc3Qgc3RhdGVtZW50Um90YXRlS2V5cyA9IG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KClcbiAgICBzdGF0ZW1lbnRSb3RhdGVLZXlzLmFkZEFjdGlvbnMoJ2ttczoqJylcbiAgICBzdGF0ZW1lbnRSb3RhdGVLZXlzLmFkZFJlc291cmNlcygnKicpXG4gICAgY29uc3Qgcm90YXRlS2V5c1BvbGljeSA9IG5ldyBpYW0uTWFuYWdlZFBvbGljeSh0aGlzLCAnUm90YXRlS2V5c1BvbGljeScsIHtcbiAgICAgIHN0YXRlbWVudHM6IFtzdGF0ZW1lbnRSb3RhdGVLZXlzXVxuICAgIH0pXG4gICAgcm90YXRlS2V5c1JvbGUuYWRkTWFuYWdlZFBvbGljeShyb3RhdGVLZXlzUG9saWN5KVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLSBFdmVudHMgUnVsZSBEZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgLy8gUnVuIGV2ZXJ5IDMgbW9udGhzIGF0IDggUE0gVVRDXG4gICAgY29uc3Qgc2NoZWR1bGVkUm90YXRlUnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCAnc2NoZWR1bGVkUm90YXRlUnVsZScsIHtcbiAgICAgIHNjaGVkdWxlOiBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbignY3JvbigwIDIwIDEgKi8zID8gKiknKVxuICAgIH0pXG4gICAgc2NoZWR1bGVkUm90YXRlUnVsZS5hZGRUYXJnZXQobmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKHJvdGF0ZUtleXNNYWNoaW5lKSlcblxuICAgIC8vIENyZWF0ZSBzdGF0ZSBtYWNoaW5lIGFuZCB0cmlnZ2VyIHRvIHBvcHVsYXRlIGluaXRpYWwga2V5c1xuICAgIGlmICghcHJvcHMuZGlzYWJsZUtleVJvdGF0ZU9uQ3JlYXRlKSB7XG4gICAgICBjb25zdCByb3RhdGVPbmNlID0gbmV3IHRhc2tzLlN0ZXBGdW5jdGlvbnNTdGFydEV4ZWN1dGlvbih0aGlzLCAncm90YXRlT25jZScsIHtcbiAgICAgICAgc3RhdGVNYWNoaW5lOiByb3RhdGVLZXlzTWFjaGluZSxcbiAgICAgICAgaW50ZWdyYXRpb25QYXR0ZXJuOiBzZm4uSW50ZWdyYXRpb25QYXR0ZXJuLlJVTl9KT0JcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHJvdGF0ZVR3aWNlID0gbmV3IHRhc2tzLlN0ZXBGdW5jdGlvbnNTdGFydEV4ZWN1dGlvbih0aGlzLCAncm90YXRlVHdpY2UnLCB7XG4gICAgICAgIHN0YXRlTWFjaGluZTogcm90YXRlS2V5c01hY2hpbmUsXG4gICAgICAgIGludGVncmF0aW9uUGF0dGVybjogc2ZuLkludGVncmF0aW9uUGF0dGVybi5SVU5fSk9CXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBwb3B1bGF0ZUtleXMgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAncG9wdWxhdGVLZXlzJywge1xuICAgICAgICBkZWZpbml0aW9uOiByb3RhdGVPbmNlLm5leHQocm90YXRlVHdpY2UpLFxuICAgICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygxMClcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGluaXRpYWxSdW5SdWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdpbml0aWFsUnVuUnVsZScsIHtcbiAgICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgICAgc291cmNlOiBbJ2F3cy5jbG91ZGZvcm1hdGlvbiddLFxuICAgICAgICAgIHJlc291cmNlczogW2Nkay5TdGFjay5vZih0aGlzKS5zdGFja0lkXSxcbiAgICAgICAgICBkZXRhaWxUeXBlOiBbJ0Nsb3VkRm9ybWF0aW9uIFN0YWNrIFN0YXR1cyBDaGFuZ2UnXSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICdzdGF0dXMtZGV0YWlscyc6IHtcbiAgICAgICAgICAgICAgc3RhdHVzOiBbJ0NSRUFURV9DT01QTEVURSddXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBpbml0aWFsUnVuUnVsZS5hZGRUYXJnZXQobmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKHBvcHVsYXRlS2V5cykpXG4gICAgfVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQVBJIEdhdGV3YXkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIC8vIG9ubHkgc2V0IHBvbGljeSB3aGVuIG9yZ0lkIGlzIHNldFxuICAgIGxldCBhcGlQb2xpY3k6IFBvbGljeURvY3VtZW50IHwgdW5kZWZpbmVkXG4gICAgaWYgKHByb3BzLm9yZ0lkKSB7XG4gICAgICBhcGlQb2xpY3kgPSBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6SW52b2tlJ10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgcHJpbmNpcGFsczogW1xuICAgICAgICAgICAgICBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKHByb3BzLm9yZ0lkKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgbG9nR3JvdXAgPSBuZXcgbG9ncy5Mb2dHcm91cCh0aGlzLCAnQVBJR2F0ZXdheUFjY2Vzc0xvZ3MnLCB7XG4gICAgICByZXRlbnRpb246IDdcbiAgICB9KVxuXG4gICAgLy8gQ3JlYXRlIEFQSVxuICAgIGNvbnN0IGFwaSA9IG5ldyBhcGlnYXRld2F5LkxhbWJkYVJlc3RBcGkodGhpcywgJ2p3ay1zdHMtYXBpJywge1xuICAgICAgZGVzY3JpcHRpb246ICdTVFMgVG9rZW4gQVBJIEdhdGV3YXknLFxuICAgICAgaGFuZGxlcjogc2lnbixcbiAgICAgIGRlZmF1bHRNZXRob2RPcHRpb25zOiB7XG4gICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBhcGlnYXRld2F5LkF1dGhvcml6YXRpb25UeXBlLklBTVxuICAgICAgfSxcbiAgICAgIGVuZHBvaW50Q29uZmlndXJhdGlvbjoge1xuICAgICAgICB0eXBlczogW2FwaWdhdGV3YXkuRW5kcG9pbnRUeXBlLlJFR0lPTkFMXVxuICAgICAgfSxcbiAgICAgIHBvbGljeTogYXBpUG9saWN5LFxuICAgICAgZGVwbG95T3B0aW9uczoge1xuICAgICAgICBsb2dnaW5nTGV2ZWw6IE1ldGhvZExvZ2dpbmdMZXZlbC5JTkZPLFxuICAgICAgICBhY2Nlc3NMb2dEZXN0aW5hdGlvbjogbmV3IGFwaWdhdGV3YXkuTG9nR3JvdXBMb2dEZXN0aW5hdGlvbihsb2dHcm91cClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0gUm91dGU1MyBEZWZpbml0aW9uIGZvciBjdXN0b20gZG9tYWluIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIGlmICh1c2VDdXN0b21Eb21haW4gJiYgaG9zdGVkWm9uZSkge1xuICAgICAgYXBpLmFkZERvbWFpbk5hbWUoJ2FwaUN1c3RvbURvbWFpbk5hbWUnLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IHRva2VuRG9tYWluTmFtZSxcbiAgICAgICAgY2VydGlmaWNhdGU6IHRva2VuQ2VydGlmaWNhdGUhXG4gICAgICB9KVxuXG4gICAgICAvLyBBZGQgQSByZWNvcmQgZm9yIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uXG5cbiAgICAgIG5ldyByb3V0ZTUzLkFSZWNvcmQodGhpcywgJ29pZGNSZWNvcmQnLCB7XG4gICAgICAgIHJlY29yZE5hbWU6IG9pZGNEb21haW5OYW1lLFxuICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgcm91dGU1M3RhcmdldHMuQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pKVxuICAgICAgfSlcblxuICAgICAgbmV3IHJvdXRlNTMuQVJlY29yZCh0aGlzLCAndG9rZW5SZWNvcmQnLCB7XG4gICAgICAgIHJlY29yZE5hbWU6IHRva2VuRG9tYWluTmFtZSxcbiAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHJvdXRlNTN0YXJnZXRzLkFwaUdhdGV3YXkoYXBpKSlcbiAgICAgIH0pXG5cbiAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICd0b2tlbkVuZHBvaW50Jywge1xuICAgICAgICB2YWx1ZTogJ2h0dHBzOi8vJyArIHRva2VuRG9tYWluTmFtZSArICcvdG9rZW4nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1VybCBvZiB0aGUgdG9rZW4gZW5kcG9pbnQnLFxuICAgICAgICBleHBvcnROYW1lOiAndG9rZW5FbmRwb2ludCdcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICd0b2tlbkVuZHBvaW50Jywge1xuICAgICAgICB2YWx1ZTogYXBpLnVybCArICd0b2tlbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVXJsIG9mIHRoZSB0b2tlbiBlbmRwb2ludCcsXG4gICAgICAgIGV4cG9ydE5hbWU6ICd0b2tlbkVuZHBvaW50J1xuICAgICAgfSlcbiAgICB9XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnaXNzdWVyJywge1xuICAgICAgdmFsdWU6IGlzc3VlcixcbiAgICAgIGRlc2NyaXB0aW9uOiAnVXJsIG9mIHRoZSBpc3N1ZXInLFxuICAgICAgZXhwb3J0TmFtZTogJ2lzc3VlcidcbiAgICB9KVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gV0FGIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBpZiAocHJvcHMuYXBpR3dXYWYgPT09IHdhZlVzYWdlLkNvbnN0cnVjdFByb3ZpZGVkKSB7XG4gICAgICAvLyBBUEkgZ2F0ZXdheSBXQUYgQUNMIGFuZCBydWxlc1xuICAgICAgY29uc3QgQVBJR2F0ZXdheVdlYkFDTCA9IG5ldyB3YWZ2Mi5DZm5XZWJBQ0wodGhpcywgJ0FQSUdhdGV3YXlXZWJBQ0wnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyBXZWJBQ0wgZm9yIEF1dGggQVBpIEdhdGV3YXknLFxuICAgICAgICBzY29wZTogJ1JFR0lPTkFMJyxcbiAgICAgICAgZGVmYXVsdEFjdGlvbjogeyBhbGxvdzoge30gfSxcbiAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgIG1ldHJpY05hbWU6ICdBUElXZWJBQ0wnLFxuICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0JyxcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgICB2ZW5kb3JOYW1lOiAnQVdTJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiB7XG4gICAgICAgICAgICAgIG5vbmU6IHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCcsXG4gICAgICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgICAgbmFtZTogJ0FXU01hbmFnZWRSdWxlc0FtYXpvbklwUmVwdXRhdGlvbkxpc3QnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdmVycmlkZUFjdGlvbjoge1xuICAgICAgICAgICAgICBub25lOiB7fVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0FtYXpvbklwUmVwdXRhdGlvbkxpc3QnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnYXBpLWd3LUF1dGhBUElHZW9Mb2NhdGlvbicsXG4gICAgICAgICAgICBwcmlvcml0eTogMyxcbiAgICAgICAgICAgIGFjdGlvbjogeyBibG9jazoge30gfSxcbiAgICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgICAgbWV0cmljTmFtZTogJ0F1dGhBUElHZW9Mb2NhdGlvbicsXG4gICAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgZ2VvTWF0Y2hTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZXM6IFsnQlknLCAnQ04nLCAnSVInLCAnUlUnLCAnU1knLCAnS1AnXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnYXBpLWd3LXJhdGVMaW1pdFJ1bGUnLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDQsXG4gICAgICAgICAgICBhY3Rpb246IHsgYmxvY2s6IHt9IH0sXG4gICAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICAgIG1ldHJpY05hbWU6ICdyYXRlTGltaXRSdWxlJyxcbiAgICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgICByYXRlQmFzZWRTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnSVAnLFxuICAgICAgICAgICAgICAgIGxpbWl0OiAxMDBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcblxuICAgICAgLy8gV2ViIEFDTCBBc3NvY2lhdGlvblxuICAgICAgbmV3IHdhZnYyLkNmbldlYkFDTEFzc29jaWF0aW9uKHRoaXMsICdBUElHYXRld2F5V2ViQUNMQXNzb2NpYXRpb24nLCB7XG4gICAgICAgIHdlYkFjbEFybjogQVBJR2F0ZXdheVdlYkFDTC5hdHRyQXJuLFxuICAgICAgICByZXNvdXJjZUFybjogYXBpLmRlcGxveW1lbnRTdGFnZS5zdGFnZUFyblxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKHByb3BzLmFwaUd3V2FmID09PSB3YWZVc2FnZS5Qcm92aWRlV2ViQWNsQXJuICYmIHByb3BzLmFwaUd3V2FmV2ViQWNsQXJuKSB7XG4gICAgICAvLyBXZWIgQUNMIEFzc29jaWF0aW9uXG4gICAgICBuZXcgd2FmdjIuQ2ZuV2ViQUNMQXNzb2NpYXRpb24odGhpcywgJ0FQSUdhdGV3YXlXZWJBQ0xBc3NvY2lhdGlvbicsIHtcbiAgICAgICAgd2ViQWNsQXJuOiBwcm9wcy5hcGlHd1dhZldlYkFjbEFybixcbiAgICAgICAgcmVzb3VyY2VBcm46IGFwaS5kZXBsb3ltZW50U3RhZ2Uuc3RhZ2VBcm5cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2xvdWR3YXRjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgbmV3IGNsb3Vkd2F0Y2guQWxhcm0odGhpcywgJ1N0ZXBGdW5jdGlvbkVycm9yJywge1xuICAgICAgYWxhcm1OYW1lOiBwcm9wcy5hbGFybU5hbWVLZXlSb3RhdGlvblN0ZXBGdW5jdGlvbkZhaWxlZCA/PyAnc3RzLWtleV9yb3RhdGVfc2ZuLWFsYXJtJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgbWV0cmljOiByb3RhdGVLZXlzTWFjaGluZS5tZXRyaWNGYWlsZWQoKSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdLZXkgUm90YXRpb24gRmFpbGVkJyxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElOR1xuICAgIH0pXG5cbiAgICBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnQXBpR2F0ZXdheTVYWEFsYXJtJywge1xuICAgICAgYWxhcm1OYW1lOiBwcm9wcy5hbGFybU5hbWVBcGlHYXRld2F5NXh4ID8/ICdzdHMtNXh4X2FwaV9ndy1hbGFybScsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIG1ldHJpYzogYXBpLm1ldHJpY1NlcnZlckVycm9yKCksXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnNXh4IFNUUyBBUEkgZ2F0ZXdheSBmYWlsdXJlcycsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkdcbiAgICB9KVxuXG4gICAgY29uc3Qgc2lnbkVycm9ycyA9IHNpZ24ubWV0cmljRXJyb3JzKHtcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMSlcbiAgICB9KVxuXG4gICAgY29uc3Qgcm90YXRlRXJyb3JzID0gcm90YXRlS2V5cy5tZXRyaWNFcnJvcnMoe1xuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcygxKVxuICAgIH0pXG5cbiAgICBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnTGFtYmRhU2lnbkVycm9yJywge1xuICAgICAgYWxhcm1OYW1lOiBwcm9wcy5hbGFybU5hbWVTaWduTGFtYmRhRmFpbGVkID8/ICdzdHMtc2lnbl9lcnJvcnNfbGFtYmRhLWFsYXJtJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgbWV0cmljOiBzaWduRXJyb3JzLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ1NpZ24gTGFtYmRhIEZhaWxlZCcsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkdcbiAgICB9KVxuXG4gICAgbmV3IGNsb3Vkd2F0Y2guQWxhcm0odGhpcywgJ0xhbWJkYVJvdGF0ZUVycm9yJywge1xuICAgICAgYWxhcm1OYW1lOiBwcm9wcy5hbGFybU5hbWVLZXlSb3RhdGlvbkxhbWJkYUZhaWxlZCA/PyAnc3RzLWtleV9yb3RhdGVfZXJyb3JzX2xhbWJkYS1hbGFybScsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIG1ldHJpYzogcm90YXRlRXJyb3JzLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0tleSBSb3RhdGlvbiBMYW1iZGEgRmFpbGVkJyxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElOR1xuICAgIH0pXG4gIH1cbn1cbiJdfQ==
451
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUE0QztBQUM1QyxFQUFFO0FBQ0Ysc0NBQXNDOzs7QUFFdEMsbUNBQW1DO0FBQ25DLG1DQUFrQztBQUNsQyxpREFBZ0Q7QUFDaEQscURBQW9EO0FBQ3BELDZEQUE0RDtBQUM1RCwyQ0FBMEM7QUFDMUMsaURBQTJFO0FBQzNFLHlDQUF3QztBQUN4QywrQ0FBcUQ7QUFDckQseURBQXdEO0FBQ3hELHdFQUF1RTtBQUN2RSxpREFBZ0Q7QUFDaEQsMERBQXlEO0FBQ3pELDBEQUF5RDtBQUN6RCxtREFBa0Q7QUFDbEQsa0VBQWlFO0FBQ2pFLHlEQUF3RDtBQUN4RCwrREFBK0Q7QUFDL0QsK0NBQThDO0FBQzlDLDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMseURBQXdEO0FBQ3hELCtEQUE2RDtBQUM3RCw4REFBNkQ7QUFDN0QsMkNBQXNDO0FBSXRDLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQixpRUFBaUIsQ0FBQTtJQUNqQiwrREFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSFcsUUFBUSx3QkFBUixRQUFRLFFBR25CO0FBZ0ZELDJCQUEyQjtBQUMzQixNQUFhLFNBQVUsU0FBUSxzQkFBUztJQU10QyxZQUFhLEdBQWMsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDNUQsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVkLDRFQUE0RTtRQUU1RSxJQUFJLHVCQUF1QixHQUFhLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLGVBQXlDLENBQUE7UUFDN0MsSUFBSSxnQkFBMEMsQ0FBQTtRQUM5QyxJQUFJLFVBQW1DLENBQUE7UUFDdkMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBQ3hFLE1BQU0s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QUNqRCxDQUFDLENBQUE7UUFFRixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzlDLFNBQVMsRUFBRSxLQUFLLENBQUMsZ0NBQWdDLElBQUksb0NBQW9DO1lBQ3pGLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsU0FBUyxFQUFFLENBQUM7WUFDWixpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLGdCQUFnQixFQUFFLDRCQUE0QjtZQUM5QyxnQkFBZ0IsRUFBRSxpQ0FBZ0IsQ0FBQyxhQUFhO1NBQ2pELENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQWhlRCw4QkFnZUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiAyMDIzIEFsbGlhbmRlciBOVlxuLy9cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInXG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSdcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucydcbmltcG9ydCAqIGFzIHRhc2tzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJ1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nXG5pbXBvcnQgeyBPcmdhbml6YXRpb25QcmluY2lwYWwsIFBvbGljeURvY3VtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSdcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMydcbmltcG9ydCB7IEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnXG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250J1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udE9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucydcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJ1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnXG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcidcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnXG5pbXBvcnQgKiBhcyByb3V0ZTUzdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzJ1xuaW1wb3J0ICogYXMgYXBpZ2F0ZXdheSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSdcbmltcG9ydCB7IE1ldGhvZExvZ2dpbmdMZXZlbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5J1xuaW1wb3J0ICogYXMgd2FmdjIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXdhZnYyJ1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnXG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJ1xuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCdcbmltcG9ydCB7IFRyZWF0TWlzc2luZ0RhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCdcbmltcG9ydCAqIGFzIGxhbWJkYU5vZGVqcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcydcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnXG5pbXBvcnQgeyBJQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJ1xuaW1wb3J0IHsgSUhvc3RlZFpvbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1MydcblxuZXhwb3J0IGVudW0gd2FmVXNhZ2Uge1xuICBDb25zdHJ1Y3RQcm92aWRlZCxcbiAgUHJvdmlkZVdlYkFjbEFyblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0p3dFN0c1Byb3BzIHtcbiAgLyoqXG4gICAqIGRlZmF1bHRBdWRpZW5jZSB3aGljaCBpcyB1c2VkIGluIGRlIEpXVCdzXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QXVkaWVuY2U6IHN0cmluZztcblxuICAvKipcbiAgICogSG9zdGVkWm9uZUlkIG9mIHRoZSBkb21haW4gdXNlZCBmb3IgaG9zdGluZyB0aGUgc3RzIGZ1bmN0aW9uXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGhvc3RlZFpvbmUuXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgKiBPcHRpb25hbCBzdWJkb21haW4gbmFtZSBvZiBvaWRjIGRpc2NvdmVyeSwgZGVmYXVsdDogb2lkYy5cbiAgKi9cbiAgcmVhZG9ubHkgb2lkY1N1YmRvbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgKiBPcHRpb25hbCBzdWJkb21haW4gbmFtZSBvZiB0aGUgdG9rZW4gYXBpIChvbiBhcGkgZ3cpLCBkZWZhdWx0OiB0b2tlbi5cbiAgKi9cbiAgcmVhZG9ubHkgdG9rZW5TdWJkb21haW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHdhZiBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUgQVBJIEdXXG4gICAqXG4gICAqIE5vbmU6IG5vIHdhZiBpcyB1c2VkXG4gICAqIENvbnN0cnVjdFByb3ZpZGVkOiB0aGUgY29uc3RydWN0IHdpbGwgZGVwbG95IGEgd2FmQWNsIHdpdGggb3BpbmlvbmF0ZWQgcnVsZXNcbiAgICogUHJvdmlkZVdlYkFjbEFybjogcHJvdmlkZSB5b3VyIG93biBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUd3V2FmPzogd2FmVXNhZ2U7XG5cbiAgLyoqXG4gICAqIEFybiBvZiB0aGUgd2FmIHdlYkFjbCBydWxlIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQVBJIEdXXG4gICAqXG4gICAqL1xuICByZWFkb25seSBhcGlHd1dhZldlYkFjbEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBBV1MgT3JnYW5pemF0aW9uIDAteHh4eFxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBBcmNoaXRlY3R1cmVcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZT86IGxhbWJkYS5BcmNoaXRlY3R1cmVcblxuICAvKipcbiAgICogT3B0aW9uYWwgYm9vbGVhbiB0byBzcGVjaWZ5IGlmIGtleSByb3RhdGlvbiBzaG91bGQgYmUgdHJpZ2dlcmVkIG9uIGNyZWF0aW9uIG9mIHRoZSBzdGFjaywgZGVmYXVsdDogZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVLZXlSb3RhdGVPbkNyZWF0ZT86IGJvb2xlYW5cblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIG5hbWUgZm9yIHRoZSBDbG91ZFdhdGNoIEFsYXJtIG1vbml0b3JpbmcgU3RlcCBGdW5jdGlvbiBmYWlsdXJlcywgZGVmYXVsdDogc3RzLWtleV9yb3RhdGVfc2ZuLWFsYXJtXG4gICAqL1xuICByZWFkb25seSBhbGFybU5hbWVLZXlSb3RhdGlvblN0ZXBGdW5jdGlvbkZhaWxlZD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyA1eHggZXJyb3JzIG9uIHRoZSBBUEkgR2F0ZXdheSwgZGVmYXVsdDogc3RzLTV4eF9hcGlfZ3ctYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZUFwaUdhdGV3YXk1eHg/OiBzdHJpbmdcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIG5hbWUgZm9yIHRoZSBDbG91ZFdhdGNoIEFsYXJtIG1vbml0b3JpbmcgU2lnbiBMYW1iZGEgZmFpbHVyZXMsIGRlZmF1bHQ6IHN0cy1zaWduX2Vycm9yc19sYW1iZGEtYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZVNpZ25MYW1iZGFGYWlsZWQ/OiBzdHJpbmdcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIG5hbWUgZm9yIHRoZSBDbG91ZFdhdGNoIEFsYXJtIG1vbml0b3JpbmcgS2V5IFJvdGF0aW9uIExhbWJkYSBmYWlsdXJlcywgZGVmYXVsdDogc3RzLWtleV9yb3RhdGVfZXJyb3JzX2xhbWJkYS1hbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lS2V5Um90YXRpb25MYW1iZGFGYWlsZWQ/OiBzdHJpbmdcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbm8tbmV3ICovXG5leHBvcnQgY2xhc3MgQXdzSnd0U3RzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFNOUyB0b3BpYyB1c2VkIHRvIHB1Ymxpc2ggZXJyb3JzIGZyb20gdGhlIFN0ZXAgRnVuY3Rpb24gcm90YXRpb24gZmxvd1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZhaWxlZFJvdGF0aW9uVG9waWM6IHNucy5Ub3BpY1xuXG4gIGNvbnN0cnVjdG9yIChhcHA6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF3c0p3dFN0c1Byb3BzKSB7XG4gICAgc3VwZXIoYXBwLCBpZClcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEN1c3RvbSBkb21haW4gdGhpbmdpZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIGxldCBkaXN0cmlidXRpb25Eb21haW5OYW1lczogc3RyaW5nW10gPSBbXVxuICAgIGxldCBvaWRjQ2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZFxuICAgIGxldCB0b2tlbkNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGUgfCB1bmRlZmluZWRcbiAgICBsZXQgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmUgfCB1bmRlZmluZWRcbiAgICBjb25zdCBvaWRjU3ViZG9tYWluID0gcHJvcHMub2lkY1N1YmRvbWFpbiA/IHByb3BzLm9pZGNTdWJkb21haW4gOiAnb2lkYydcbiAgICBjb25zdCB0b2tlblN1YmRvbWFpbiA9IHByb3BzLnRva2VuU3ViZG9tYWluID8gcHJvcHMudG9rZW5TdWJkb21haW4gOiAndG9rZW4nXG4gICAgY29uc3QgYXJjaGl0ZWN0dXJlID0gcHJvcHMuYXJjaGl0ZWN0dXJlID8gcHJvcHMuYXJjaGl0ZWN0dXJlIDogbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjRcbiAgICBsZXQgb2lkY0RvbWFpbk5hbWUgPSAnJ1xuICAgIGxldCB0b2tlbkRvbWFpbk5hbWUgPSAnJ1xuXG4gICAgY29uc3QgdXNlQ3VzdG9tRG9tYWluID0gcHJvcHMuaG9zdGVkWm9uZUlkICYmIHByb3BzLmhvc3RlZFpvbmVOYW1lXG5cbiAgICBpZiAodXNlQ3VzdG9tRG9tYWluKSB7XG4gICAgICBvaWRjRG9tYWluTmFtZSA9IG9pZGNTdWJkb21haW4gKyAnLicgKyBwcm9wcy5ob3N0ZWRab25lTmFtZVxuICAgICAgdG9rZW5Eb21haW5OYW1lID0gdG9rZW5TdWJkb21haW4gKyAnLicgKyBwcm9wcy5ob3N0ZWRab25lTmFtZVxuXG4gICAgICBkaXN0cmlidXRpb25Eb21haW5OYW1lcyA9IFtvaWRjRG9tYWluTmFtZV1cblxuICAgICAgaG9zdGVkWm9uZSA9IHJvdXRlNTMuSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdob3N0ZWRab25lJyxcbiAgICAgICAge1xuICAgICAgICAgIHpvbmVOYW1lOiBwcm9wcy5ob3N0ZWRab25lTmFtZSEsXG4gICAgICAgICAgaG9zdGVkWm9uZUlkOiBwcm9wcy5ob3N0ZWRab25lSWQhXG4gICAgICAgIH1cbiAgICAgIClcblxuICAgICAgb2lkY0NlcnRpZmljYXRlID0gbmV3IGFjbS5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCAnQ3Jvc3NSZWdpb25DZXJ0aWZpY2F0ZScsIHtcbiAgICAgICAgZG9tYWluTmFtZTogb2lkY0RvbWFpbk5hbWUsXG4gICAgICAgIGhvc3RlZFpvbmUsXG4gICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMSdcbiAgICAgIH0pXG5cbiAgICAgIHRva2VuQ2VydGlmaWNhdGUgPSBuZXcgYWNtLkNlcnRpZmljYXRlKHRoaXMsICd0b2tlbkNlcnRpZmljYXRlJywge1xuICAgICAgICBkb21haW5OYW1lOiB0b2tlbkRvbWFpbk5hbWUsXG4gICAgICAgIHZhbGlkYXRpb246IGFjbS5DZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURucyhob3N0ZWRab25lKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTMyBEZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICAvLyBDcmVhdGUgYnVja2V0IHdoZXJlIG9pZGMgaW5mb3JtYXRpb24gY2FuIGJlIHN0b3JlZFxuICAgIGNvbnN0IG9pZGNidWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdvaWRjYnVja2V0Jywge1xuICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgdmVyc2lvbmVkOiB0cnVlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTFxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLSBDbG91ZGZyb250IERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgY29uc3QgY2xvdWRmcm9udE9BSSA9IG5ldyBjbG91ZGZyb250Lk9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsICdjbG91ZGZyb250LU9BSScsIHtcbiAgICAgIGNvbW1lbnQ6ICdPQUkgZm9yIG9pZGMnXG4gICAgfSlcblxuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbih0aGlzLCAnb2lkY0Rpc3RyaWJ1dGlvbicsIHtcbiAgICAgIGRvbWFpbk5hbWVzOiBkaXN0cmlidXRpb25Eb21haW5OYW1lcyxcbiAgICAgIGNvbW1lbnQ6ICdEaXNjb3ZlcnkgZW5kcG9pbnQgZm9yIE9JREMnLFxuICAgICAgY2VydGlmaWNhdGU6IG9pZGNDZXJ0aWZpY2F0ZSxcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IG5ldyBjbG91ZGZyb250T3JpZ2lucy5TM09yaWdpbihvaWRjYnVja2V0LCB7IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBjbG91ZGZyb250T0FJIH0pLFxuICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgYWxsb3dlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFNcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLSBMYW1iZGEgSGFuZGxlcnMgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIGNvbnN0IGlzc3VlciA9IHVzZUN1c3RvbURvbWFpbiA/ICdodHRwczovLycgKyBvaWRjRG9tYWluTmFtZSA6ICdodHRwczovLycgKyBkaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uRG9tYWluTmFtZVxuXG4gICAgY29uc3Qgcm90YXRlS2V5c1JvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ3JvdGF0ZUtleXNSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKV1cbiAgICB9KVxuICAgIGNvbnN0IHJvdGF0ZUtleXMgPSBuZXcgbGFtYmRhTm9kZWpzLk5vZGVqc0Z1bmN0aW9uKHRoaXMsICdrZXlyb3RhdGUnLCB7XG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgcm9sZTogcm90YXRlS2V5c1JvbGUsXG4gICAgICBhcmNoaXRlY3R1cmUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBTM19CVUNLRVQ6IG9pZGNidWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgSVNTVUVSOiBpc3N1ZXJcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3Qgc2lnblJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ3NpZ25Sb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKV1cbiAgICB9KVxuICAgIGNvbnN0IHNpZ24gPSBuZXcgbGFtYmRhTm9kZWpzLk5vZGVqc0Z1bmN0aW9uKHRoaXMsICdzaWduJywge1xuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIHJvbGU6IHNpZ25Sb2xlLFxuICAgICAgYXJjaGl0ZWN0dXJlLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgSVNTVUVSOiBpc3N1ZXIsXG4gICAgICAgIERFRkFVTFRfQVVESUVOQ0U6IHByb3BzLmRlZmF1bHRBdWRpZW5jZVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNOUyBUb3BpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICB0aGlzLmZhaWxlZFJvdGF0aW9uVG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsICdzdHMnKVxuICAgIGNvbnN0IHNuc0ZhaWwgPSBuZXcgdGFza3MuU25zUHVibGlzaCh0aGlzLCAnc25zRmFpbGVkJywge1xuICAgICAgdG9waWM6IHRoaXMuZmFpbGVkUm90YXRpb25Ub3BpYyxcbiAgICAgIHN1YmplY3Q6ICdTVFMgS2V5Um90YXRlIHN0ZXAgZnVuY3Rpb24gZXhlY3V0aW9uIGZhaWxlZCcsXG4gICAgICBtZXNzYWdlOiBzZm4uVGFza0lucHV0LmZyb21Kc29uUGF0aEF0KCckJylcbiAgICB9KVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLSBTdGVwIGZ1bmN0aW9ucyBEZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgY29uc3QgZGVsZXRlUHJldmlvdXNTdGVwID0gbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnZGVsZXRlIFByZXZpb3VzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnZGVsZXRlUHJldmlvdXMnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IG1vdmVQcmV2aW91c1N0ZXAgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdtb3ZlIFByZXZpb3VzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnbW92ZVByZXZpb3VzJ1xuICAgICAgfSksXG4gICAgICBvdXRwdXRQYXRoOiAnJC5QYXlsb2FkJ1xuICAgIH0pXG5cbiAgICBjb25zdCBtb3ZlQ3VycmVudFN0ZXAgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdtb3ZlIEN1cnJlbnQnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcm90YXRlS2V5cyxcbiAgICAgIHBheWxvYWQ6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgIHN0ZXA6ICdtb3ZlQ3VycmVudCdcbiAgICAgIH0pLFxuICAgICAgb3V0cHV0UGF0aDogJyQuUGF5bG9hZCdcbiAgICB9KVxuXG4gICAgY29uc3QgY3JlYXRlUGVuZGluZ1N0ZXAgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdjcmVhdGUgUGVuZGluZycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiByb3RhdGVLZXlzLFxuICAgICAgcGF5bG9hZDogc2ZuLlRhc2tJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgc3RlcDogJ2NyZWF0ZVBlbmRpbmcnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IGdlbmVyYXRlQXJ0aWZhY3RzU3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ2dlbmVyYXRlIGFydGlmYWN0cycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiByb3RhdGVLZXlzLFxuICAgICAgcGF5bG9hZDogc2ZuLlRhc2tJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgc3RlcDogJ2dlbmVyYXRlQXJ0aWZhY3RzJ1xuICAgICAgfSksXG4gICAgICBvdXRwdXRQYXRoOiAnJC5QYXlsb2FkJ1xuICAgIH0pXG5cbiAgICBjb25zdCBqb2JGYWlsZWQgPSBuZXcgc2ZuLkZhaWwodGhpcywgJ0ZhaWxlZCcsIHtcbiAgICAgIGNhdXNlOiAnQVdTIEJhdGNoIEpvYiBGYWlsZWQnLFxuICAgICAgZXJyb3I6ICdEZXNjcmliZUpvYiByZXR1cm5lZCBGQUlMRUQnXG4gICAgfSlcblxuICAgIGNvbnN0IGpvYlN1Y2Nlc3MgPSBuZXcgc2ZuLlN1Y2NlZWQodGhpcywgJ1N1Y2Nlc3MhJylcblxuICAgIGRlbGV0ZVByZXZpb3VzU3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIG1vdmVQcmV2aW91c1N0ZXAuYWRkQ2F0Y2goc25zRmFpbClcbiAgICBtb3ZlQ3VycmVudFN0ZXAuYWRkQ2F0Y2goc25zRmFpbClcbiAgICBjcmVhdGVQZW5kaW5nU3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIGdlbmVyYXRlQXJ0aWZhY3RzU3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuXG4gICAgLy8gQ3JlYXRlIGNoYWluXG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IGRlbGV0ZVByZXZpb3VzU3RlcFxuICAgICAgLm5leHQobW92ZVByZXZpb3VzU3RlcClcbiAgICAgIC5uZXh0KG1vdmVDdXJyZW50U3RlcClcbiAgICAgIC5uZXh0KGNyZWF0ZVBlbmRpbmdTdGVwKVxuICAgICAgLm5leHQoZ2VuZXJhdGVBcnRpZmFjdHNTdGVwKVxuICAgICAgLm5leHQoam9iU3VjY2VzcylcblxuICAgIHNuc0ZhaWwubmV4dChqb2JGYWlsZWQpXG5cbiAgICAvLyBDcmVhdGUgc3RhdGUgbWFjaGluZVxuICAgIGNvbnN0IHJvdGF0ZUtleXNNYWNoaW5lID0gbmV3IHNmbi5TdGF0ZU1hY2hpbmUodGhpcywgJ1JvdGF0ZUtleXMnLCB7XG4gICAgICBkZWZpbml0aW9uLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSlcbiAgICB9KVxuXG4gICAgcm90YXRlS2V5cy5ncmFudEludm9rZShyb3RhdGVLZXlzTWFjaGluZS5yb2xlKVxuICAgIG9pZGNidWNrZXQuZ3JhbnRSZWFkV3JpdGUocm90YXRlS2V5cylcblxuICAgIGNvbnN0IHN0YXRlbWVudFNpZ24gPSBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCgpXG4gICAgc3RhdGVtZW50U2lnbi5hZGRBY3Rpb25zKCdrbXM6KicpXG4gICAgc3RhdGVtZW50U2lnbi5hZGRSZXNvdXJjZXMoJyonKVxuICAgIGNvbnN0IHNpZ25Qb2xpY3kgPSBuZXcgaWFtLk1hbmFnZWRQb2xpY3kodGhpcywgJ1NpZ25Qb2xpY3knLCB7XG4gICAgICBzdGF0ZW1lbnRzOiBbc3RhdGVtZW50U2lnbl1cbiAgICB9KVxuICAgIHNpZ25Sb2xlLmFkZE1hbmFnZWRQb2xpY3koc2lnblBvbGljeSlcblxuICAgIGNvbnN0IHN0YXRlbWVudFJvdGF0ZUtleXMgPSBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCgpXG4gICAgc3RhdGVtZW50Um90YXRlS2V5cy5hZGRBY3Rpb25zKCdrbXM6KicpXG4gICAgc3RhdGVtZW50Um90YXRlS2V5cy5hZGRSZXNvdXJjZXMoJyonKVxuICAgIGNvbnN0IHJvdGF0ZUtleXNQb2xpY3kgPSBuZXcgaWFtLk1hbmFnZWRQb2xpY3kodGhpcywgJ1JvdGF0ZUtleXNQb2xpY3knLCB7XG4gICAgICBzdGF0ZW1lbnRzOiBbc3RhdGVtZW50Um90YXRlS2V5c11cbiAgICB9KVxuICAgIHJvdGF0ZUtleXNSb2xlLmFkZE1hbmFnZWRQb2xpY3kocm90YXRlS2V5c1BvbGljeSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0gRXZlbnRzIFJ1bGUgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIC8vIFJ1biBldmVyeSAzIG1vbnRocyBhdCA4IFBNIFVUQ1xuICAgIGNvbnN0IHNjaGVkdWxlZFJvdGF0ZVJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ3NjaGVkdWxlZFJvdGF0ZVJ1bGUnLCB7XG4gICAgICBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24oJ2Nyb24oMCAyMCAxICovMyA/ICopJylcbiAgICB9KVxuICAgIHNjaGVkdWxlZFJvdGF0ZVJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLlNmblN0YXRlTWFjaGluZShyb3RhdGVLZXlzTWFjaGluZSkpXG5cbiAgICAvLyBDcmVhdGUgc3RhdGUgbWFjaGluZSBhbmQgdHJpZ2dlciB0byBwb3B1bGF0ZSBpbml0aWFsIGtleXNcbiAgICBpZiAoIXByb3BzLmRpc2FibGVLZXlSb3RhdGVPbkNyZWF0ZSkge1xuICAgICAgY29uc3Qgcm90YXRlT25jZSA9IG5ldyB0YXNrcy5TdGVwRnVuY3Rpb25zU3RhcnRFeGVjdXRpb24odGhpcywgJ3JvdGF0ZU9uY2UnLCB7XG4gICAgICAgIHN0YXRlTWFjaGluZTogcm90YXRlS2V5c01hY2hpbmUsXG4gICAgICAgIGludGVncmF0aW9uUGF0dGVybjogc2ZuLkludGVncmF0aW9uUGF0dGVybi5SVU5fSk9CXG4gICAgICB9KVxuXG4gICAgICBjb25zdCByb3RhdGVUd2ljZSA9IG5ldyB0YXNrcy5TdGVwRnVuY3Rpb25zU3RhcnRFeGVjdXRpb24odGhpcywgJ3JvdGF0ZVR3aWNlJywge1xuICAgICAgICBzdGF0ZU1hY2hpbmU6IHJvdGF0ZUtleXNNYWNoaW5lLFxuICAgICAgICBpbnRlZ3JhdGlvblBhdHRlcm46IHNmbi5JbnRlZ3JhdGlvblBhdHRlcm4uUlVOX0pPQlxuICAgICAgfSlcblxuICAgICAgY29uc3QgcG9wdWxhdGVLZXlzID0gbmV3IHNmbi5TdGF0ZU1hY2hpbmUodGhpcywgJ3BvcHVsYXRlS2V5cycsIHtcbiAgICAgICAgZGVmaW5pdGlvbjogcm90YXRlT25jZS5uZXh0KHJvdGF0ZVR3aWNlKSxcbiAgICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMTApXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBpbml0aWFsUnVuUnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCAnaW5pdGlhbFJ1blJ1bGUnLCB7XG4gICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgIHNvdXJjZTogWydhd3MuY2xvdWRmb3JtYXRpb24nXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtjZGsuU3RhY2sub2YodGhpcykuc3RhY2tJZF0sXG4gICAgICAgICAgZGV0YWlsVHlwZTogWydDbG91ZEZvcm1hdGlvbiBTdGFjayBTdGF0dXMgQ2hhbmdlJ10sXG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAnc3RhdHVzLWRldGFpbHMnOiB7XG4gICAgICAgICAgICAgIHN0YXR1czogWydDUkVBVEVfQ09NUExFVEUnXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaW5pdGlhbFJ1blJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLlNmblN0YXRlTWFjaGluZShwb3B1bGF0ZUtleXMpKVxuICAgIH1cblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFQSSBHYXRld2F5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICAvLyBvbmx5IHNldCBwb2xpY3kgd2hlbiBvcmdJZCBpcyBzZXRcbiAgICBsZXQgYXBpUG9saWN5OiBQb2xpY3lEb2N1bWVudCB8IHVuZGVmaW5lZFxuICAgIGlmIChwcm9wcy5vcmdJZCkge1xuICAgICAgYXBpUG9saWN5ID0gbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2V4ZWN1dGUtYXBpOkludm9rZSddLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIHByaW5jaXBhbHM6IFtcbiAgICAgICAgICAgICAgbmV3IE9yZ2FuaXphdGlvblByaW5jaXBhbChwcm9wcy5vcmdJZClcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IGxvZ0dyb3VwID0gbmV3IGxvZ3MuTG9nR3JvdXAodGhpcywgJ0FQSUdhdGV3YXlBY2Nlc3NMb2dzJywge1xuICAgICAgcmV0ZW50aW9uOiA3XG4gICAgfSlcblxuICAgIC8vIENyZWF0ZSBBUElcbiAgICBjb25zdCBhcGkgPSBuZXcgYXBpZ2F0ZXdheS5MYW1iZGFSZXN0QXBpKHRoaXMsICdqd2stc3RzLWFwaScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnU1RTIFRva2VuIEFQSSBHYXRld2F5JyxcbiAgICAgIGhhbmRsZXI6IHNpZ24sXG4gICAgICBkZWZhdWx0TWV0aG9kT3B0aW9uczoge1xuICAgICAgICBhdXRob3JpemF0aW9uVHlwZTogYXBpZ2F0ZXdheS5BdXRob3JpemF0aW9uVHlwZS5JQU1cbiAgICAgIH0sXG4gICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgdHlwZXM6IFthcGlnYXRld2F5LkVuZHBvaW50VHlwZS5SRUdJT05BTF1cbiAgICAgIH0sXG4gICAgICBwb2xpY3k6IGFwaVBvbGljeSxcbiAgICAgIGRlcGxveU9wdGlvbnM6IHtcbiAgICAgICAgbG9nZ2luZ0xldmVsOiBNZXRob2RMb2dnaW5nTGV2ZWwuSU5GTyxcbiAgICAgICAgYWNjZXNzTG9nRGVzdGluYXRpb246IG5ldyBhcGlnYXRld2F5LkxvZ0dyb3VwTG9nRGVzdGluYXRpb24obG9nR3JvdXApXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tIFJvdXRlNTMgRGVmaW5pdGlvbiBmb3IgY3VzdG9tIGRvbWFpbiAtLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBpZiAodXNlQ3VzdG9tRG9tYWluICYmIGhvc3RlZFpvbmUpIHtcbiAgICAgIGFwaS5hZGREb21haW5OYW1lKCdhcGlDdXN0b21Eb21haW5OYW1lJywge1xuICAgICAgICBkb21haW5OYW1lOiB0b2tlbkRvbWFpbk5hbWUsXG4gICAgICAgIGNlcnRpZmljYXRlOiB0b2tlbkNlcnRpZmljYXRlIVxuICAgICAgfSlcblxuICAgICAgLy8gQWRkIEEgcmVjb3JkIGZvciBjbG91ZGZyb250IGRpc3RyaWJ1dGlvblxuXG4gICAgICBuZXcgcm91dGU1My5BUmVjb3JkKHRoaXMsICdvaWRjUmVjb3JkJywge1xuICAgICAgICByZWNvcmROYW1lOiBvaWRjRG9tYWluTmFtZSxcbiAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHJvdXRlNTN0YXJnZXRzLkNsb3VkRnJvbnRUYXJnZXQoZGlzdHJpYnV0aW9uKSlcbiAgICAgIH0pXG5cbiAgICAgIG5ldyByb3V0ZTUzLkFSZWNvcmQodGhpcywgJ3Rva2VuUmVjb3JkJywge1xuICAgICAgICByZWNvcmROYW1lOiB0b2tlbkRvbWFpbk5hbWUsXG4gICAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyByb3V0ZTUzdGFyZ2V0cy5BcGlHYXRld2F5KGFwaSkpXG4gICAgICB9KVxuXG4gICAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAndG9rZW5FbmRwb2ludCcsIHtcbiAgICAgICAgdmFsdWU6ICdodHRwczovLycgKyB0b2tlbkRvbWFpbk5hbWUgKyAnL3Rva2VuJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdVcmwgb2YgdGhlIHRva2VuIGVuZHBvaW50JyxcbiAgICAgICAgZXhwb3J0TmFtZTogJ3Rva2VuRW5kcG9pbnQnXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAndG9rZW5FbmRwb2ludCcsIHtcbiAgICAgICAgdmFsdWU6IGFwaS51cmwgKyAndG9rZW4nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1VybCBvZiB0aGUgdG9rZW4gZW5kcG9pbnQnLFxuICAgICAgICBleHBvcnROYW1lOiAndG9rZW5FbmRwb2ludCdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ2lzc3VlcicsIHtcbiAgICAgIHZhbHVlOiBpc3N1ZXIsXG4gICAgICBkZXNjcmlwdGlvbjogJ1VybCBvZiB0aGUgaXNzdWVyJyxcbiAgICAgIGV4cG9ydE5hbWU6ICdpc3N1ZXInXG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFdBRiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgaWYgKHByb3BzLmFwaUd3V2FmID09PSB3YWZVc2FnZS5Db25zdHJ1Y3RQcm92aWRlZCkge1xuICAgICAgLy8gQVBJIGdhdGV3YXkgV0FGIEFDTCBhbmQgcnVsZXNcbiAgICAgIGNvbnN0IEFQSUdhdGV3YXlXZWJBQ0wgPSBuZXcgd2FmdjIuQ2ZuV2ViQUNMKHRoaXMsICdBUElHYXRld2F5V2ViQUNMJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgV2ViQUNMIGZvciBBdXRoIEFQaSBHYXRld2F5JyxcbiAgICAgICAgc2NvcGU6ICdSRUdJT05BTCcsXG4gICAgICAgIGRlZmF1bHRBY3Rpb246IHsgYWxsb3c6IHt9IH0sXG4gICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICBtZXRyaWNOYW1lOiAnQVBJV2ViQUNMJyxcbiAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBydWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCcsXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgICAgbmFtZTogJ0FXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdmVycmlkZUFjdGlvbjoge1xuICAgICAgICAgICAgICBub25lOiB7fVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0FtYXpvbklwUmVwdXRhdGlvbkxpc3QnLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDEsXG4gICAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgbWFuYWdlZFJ1bGVHcm91cFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHtcbiAgICAgICAgICAgICAgbm9uZToge31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2FwaS1ndy1BdXRoQVBJR2VvTG9jYXRpb24nLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDMsXG4gICAgICAgICAgICBhY3Rpb246IHsgYmxvY2s6IHt9IH0sXG4gICAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBdXRoQVBJR2VvTG9jYXRpb24nLFxuICAgICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIGdlb01hdGNoU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgY291bnRyeUNvZGVzOiBbJ0JZJywgJ0NOJywgJ0lSJywgJ1JVJywgJ1NZJywgJ0tQJ11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2FwaS1ndy1yYXRlTGltaXRSdWxlJyxcbiAgICAgICAgICAgIHByaW9yaXR5OiA0LFxuICAgICAgICAgICAgYWN0aW9uOiB7IGJsb2NrOiB7fSB9LFxuICAgICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgICBtZXRyaWNOYW1lOiAncmF0ZUxpbWl0UnVsZScsXG4gICAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgcmF0ZUJhc2VkU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgYWdncmVnYXRlS2V5VHlwZTogJ0lQJyxcbiAgICAgICAgICAgICAgICBsaW1pdDogMTAwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pXG5cbiAgICAgIC8vIFdlYiBBQ0wgQXNzb2NpYXRpb25cbiAgICAgIG5ldyB3YWZ2Mi5DZm5XZWJBQ0xBc3NvY2lhdGlvbih0aGlzLCAnQVBJR2F0ZXdheVdlYkFDTEFzc29jaWF0aW9uJywge1xuICAgICAgICB3ZWJBY2xBcm46IEFQSUdhdGV3YXlXZWJBQ0wuYXR0ckFybixcbiAgICAgICAgcmVzb3VyY2VBcm46IGFwaS5kZXBsb3ltZW50U3RhZ2Uuc3RhZ2VBcm5cbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChwcm9wcy5hcGlHd1dhZiA9PT0gd2FmVXNhZ2UuUHJvdmlkZVdlYkFjbEFybiAmJiBwcm9wcy5hcGlHd1dhZldlYkFjbEFybikge1xuICAgICAgLy8gV2ViIEFDTCBBc3NvY2lhdGlvblxuICAgICAgbmV3IHdhZnYyLkNmbldlYkFDTEFzc29jaWF0aW9uKHRoaXMsICdBUElHYXRld2F5V2ViQUNMQXNzb2NpYXRpb24nLCB7XG4gICAgICAgIHdlYkFjbEFybjogcHJvcHMuYXBpR3dXYWZXZWJBY2xBcm4sXG4gICAgICAgIHJlc291cmNlQXJuOiBhcGkuZGVwbG95bWVudFN0YWdlLnN0YWdlQXJuXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENsb3Vkd2F0Y2ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdTdGVwRnVuY3Rpb25FcnJvcicsIHtcbiAgICAgIGFsYXJtTmFtZTogcHJvcHMuYWxhcm1OYW1lS2V5Um90YXRpb25TdGVwRnVuY3Rpb25GYWlsZWQgPz8gJ3N0cy1rZXlfcm90YXRlX3Nmbi1hbGFybScsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIG1ldHJpYzogcm90YXRlS2V5c01hY2hpbmUubWV0cmljRmFpbGVkKCksXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnS2V5IFJvdGF0aW9uIEZhaWxlZCcsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkdcbiAgICB9KVxuXG4gICAgbmV3IGNsb3Vkd2F0Y2guQWxhcm0odGhpcywgJ0FwaUdhdGV3YXk1WFhBbGFybScsIHtcbiAgICAgIGFsYXJtTmFtZTogcHJvcHMuYWxhcm1OYW1lQXBpR2F0ZXdheTV4eCA/PyAnc3RzLTV4eF9hcGlfZ3ctYWxhcm0nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICBtZXRyaWM6IGFwaS5tZXRyaWNTZXJ2ZXJFcnJvcigpLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJzV4eCBTVFMgQVBJIGdhdGV3YXkgZmFpbHVyZXMnLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HXG4gICAgfSlcblxuICAgIGNvbnN0IHNpZ25FcnJvcnMgPSBzaWduLm1ldHJpY0Vycm9ycyh7XG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDEpXG4gICAgfSlcblxuICAgIGNvbnN0IHJvdGF0ZUVycm9ycyA9IHJvdGF0ZUtleXMubWV0cmljRXJyb3JzKHtcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMSlcbiAgICB9KVxuXG4gICAgbmV3IGNsb3Vkd2F0Y2guQWxhcm0odGhpcywgJ0xhbWJkYVNpZ25FcnJvcicsIHtcbiAgICAgIGFsYXJtTmFtZTogcHJvcHMuYWxhcm1OYW1lU2lnbkxhbWJkYUZhaWxlZCA/PyAnc3RzLXNpZ25fZXJyb3JzX2xhbWJkYS1hbGFybScsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIG1ldHJpYzogc2lnbkVycm9ycyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdTaWduIExhbWJkYSBGYWlsZWQnLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HXG4gICAgfSlcblxuICAgIG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdMYW1iZGFSb3RhdGVFcnJvcicsIHtcbiAgICAgIGFsYXJtTmFtZTogcHJvcHMuYWxhcm1OYW1lS2V5Um90YXRpb25MYW1iZGFGYWlsZWQgPz8gJ3N0cy1rZXlfcm90YXRlX2Vycm9yc19sYW1iZGEtYWxhcm0nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICBtZXRyaWM6IHJvdGF0ZUVycm9ycyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICdLZXkgUm90YXRpb24gTGFtYmRhIEZhaWxlZCcsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkdcbiAgICB9KVxuICB9XG59XG4iXX0=