@dangl/angular-ava 1.0.0 → 1.0.1-beta0001

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.
Files changed (34) hide show
  1. package/README.md +181 -181
  2. package/esm2022/lib/angular-ava.module.mjs +1 -1
  3. package/esm2022/lib/ava-tree/tree/components/ava-tree/ava-tree.component.mjs +3 -3
  4. package/esm2022/lib/ava-tree/tree/components/list-structure/list-structure.component.mjs +3 -3
  5. package/esm2022/lib/ava-tree/tree/components/table-structure/table-structure.component.mjs +3 -3
  6. package/esm2022/lib/ava-tree/tree/components/tree-item/tree-item.component.mjs +3 -3
  7. package/esm2022/lib/ava-tree/tree/components/tree-node/tree-node.component.mjs +3 -3
  8. package/esm2022/lib/ava-tree/tree/components/tree-structure/tree-structure.component.mjs +3 -3
  9. package/esm2022/lib/ava-tree/tree/constants/defaultFilters.mjs +1 -1
  10. package/esm2022/lib/ava-tree/tree/constants/defaultTextWords.mjs +1 -1
  11. package/esm2022/lib/ava-tree/tree/constants/defaults.mjs +1 -1
  12. package/esm2022/lib/ava-tree/tree/constants/index.mjs +1 -1
  13. package/esm2022/lib/ava-tree/tree/directives/save-changing-view.directive.mjs +1 -1
  14. package/esm2022/lib/ava-tree/tree/model/ava-models.mjs +1 -1
  15. package/esm2022/lib/ava-tree/tree/model/context-menu-data.model.mjs +1 -1
  16. package/esm2022/lib/ava-tree/tree/model/function-view-line.model.mjs +1 -1
  17. package/esm2022/lib/ava-tree/tree/model/index.mjs +1 -1
  18. package/esm2022/lib/ava-tree/tree/model/selecting.model.mjs +1 -1
  19. package/esm2022/lib/ava-tree/tree/model/tableColumnType.mjs +1 -1
  20. package/esm2022/lib/ava-tree/tree/model/tree-mode.model.mjs +1 -1
  21. package/esm2022/lib/ava-tree/tree/pipes/element-icon-name.pipe.mjs +1 -1
  22. package/esm2022/lib/ava-tree/tree/pipes/element-item-number.pipe.mjs +1 -1
  23. package/esm2022/lib/ava-tree/tree/pipes/element-text.pipe.mjs +1 -1
  24. package/esm2022/lib/ava-tree/tree/pipes/group-child-elements.pipe.mjs +1 -1
  25. package/esm2022/lib/ava-tree/tree/services/expand-parent-group.service.mjs +1 -1
  26. package/esm2022/lib/ava-tree/tree/services/flat-elements.service.mjs +1 -1
  27. package/esm2022/lib/ava-tree/tree/services/keyboard-operation.service.mjs +1 -1
  28. package/esm2022/lib/ava-tree/tree/services/select-element.service.mjs +1 -1
  29. package/esm2022/lib/ava-tree/tree/services/tree-node-selection.service.mjs +1 -1
  30. package/esm2022/lib/version.mjs +6 -6
  31. package/esm2022/public-api.mjs +1 -1
  32. package/fesm2022/dangl-angular-ava.mjs +17 -17
  33. package/fesm2022/dangl-angular-ava.mjs.map +1 -1
  34. package/package.json +1 -1
@@ -196,4 +196,4 @@ export var CommerceInquiryTypeDto;
196
196
  CommerceInquiryTypeDto["Immediate"] = "Immediate";
197
197
  CommerceInquiryTypeDto["Exhibition"] = "Exhibition";
198
198
  })(CommerceInquiryTypeDto || (CommerceInquiryTypeDto = {}));
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9tb2RlbC9hdmEtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QjtBQUN4QixtQkFBbUI7QUFDbkIsMkhBQTJIO0FBQzNILG9CQUFvQjtBQUNwQix3QkFBd0I7QUFFeEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQix1Q0FBdUM7QUFFdkMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIseUNBQWlCLENBQUE7SUFDakIsdUNBQWUsQ0FBQTtJQUNmLDJDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CO0FBMElELGlEQUFpRDtBQUNqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLGtEQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsc0lBQXNJO0FBQ3RJLE1BQU0sQ0FBTixJQUFZLDJCQU1YO0FBTkQsV0FBWSwyQkFBMkI7SUFDbkMsc0RBQXVCLENBQUE7SUFDdkIsOENBQWUsQ0FBQTtJQUNmLG9EQUFxQixDQUFBO0lBQ3JCLDhDQUFlLENBQUE7SUFDZiwwQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQU5XLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFNdEM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFOLElBQVkscUJBTVg7QUFORCxXQUFZLHFCQUFxQjtJQUM3Qiw0Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBZSxDQUFBO0lBQ2YsZ0RBQXVCLENBQUE7SUFDdkIsd0NBQWUsQ0FBQTtJQUNmLHdEQUErQixDQUFBO0FBQ25DLENBQUMsRUFOVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBTWhDO0FBRUQsaU5BQWlOO0FBQ2pOLE1BQU0sQ0FBTixJQUFZLFlBWVg7QUFaRCxXQUFZLFlBQVk7SUFDcEIsMkNBQTJCLENBQUE7SUFDM0IsbURBQW1DLENBQUE7SUFDbkMseURBQXlDLENBQUE7SUFDekMsbUhBQW1HLENBQUE7SUFDbkcsaUVBQWlELENBQUE7SUFDakQscUNBQXFCLENBQUE7SUFDckIsNkZBQTZFLENBQUE7SUFDN0UsNkNBQTZCLENBQUE7SUFDN0IsMkNBQTJCLENBQUE7SUFDM0IsNkVBQTZELENBQUE7SUFDN0QsdURBQXVDLENBQUE7QUFDM0MsQ0FBQyxFQVpXLFlBQVksS0FBWixZQUFZLFFBWXZCO0FBRUQsaVNBQWlTO0FBQ2pTLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0RBQTJCLENBQUE7SUFDM0Isa0VBQTJDLENBQUE7SUFDM0MsMERBQW1DLENBQUE7SUFDbkMsc0ZBQStELENBQUE7QUFDbkUsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUI7QUE4SUQsMlhBQTJYO0FBQzNYLE1BQU0sQ0FBTixJQUFZLGdCQVNYO0FBVEQsV0FBWSxnQkFBZ0I7SUFDeEIsdUNBQW1CLENBQUE7SUFDbkIseUNBQXFCLENBQUE7SUFDckIscUNBQWlCLENBQUE7SUFDakIseUNBQXFCLENBQUE7SUFDckIsaURBQTZCLENBQUE7SUFDN0IsaUVBQTZDLENBQUE7SUFDN0MsK0JBQVcsQ0FBQTtJQUNYLDZDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFUVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUzNCO0FBd05ELDBDQUEwQztBQUMxQyxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFZRCx1R0FBdUc7QUFDdkcsTUFBTSxDQUFOLElBQVksd0JBS1g7QUFMRCxXQUFZLHdCQUF3QjtJQUNoQywrQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBYSxDQUFBO0lBQ2IseUNBQWEsQ0FBQTtJQUNiLGlEQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFMVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBS25DO0FBNEJELHlJQUF5STtBQUN6SSxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzFCLDZDQUF1QixDQUFBO0lBQ3ZCLG1EQUE2QixDQUFBO0lBQzdCLDZDQUF1QixDQUFBO0lBQ3ZCLHlDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSzdCO0FBdUJELHNEQUFzRDtBQUN0RCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLHNDQUFtQixDQUFBO0lBQ25CLHdDQUFxQixDQUFBO0lBQ3JCLDhDQUEyQixDQUFBO0FBQy9CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUVELHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLHVDQUF1QixDQUFBO0lBQ3ZCLDZDQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUVELDRFQUE0RTtBQUM1RSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLG1EQUFpQyxDQUFBO0FBQ3JDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQWdHRCw2SEFBNkg7QUFDN0gsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtJQUNyQixrRUFBMkMsQ0FBQTtBQUMvQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELGtGQUFrRjtBQUNsRixNQUFNLENBQU4sSUFBWSxpQkFVWDtBQVZELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLDhDQUF5QixDQUFBO0lBQ3pCLG9DQUFlLENBQUE7SUFDZix3Q0FBbUIsQ0FBQTtJQUNuQiw0Q0FBdUIsQ0FBQTtJQUN2QiwwQ0FBcUIsQ0FBQTtJQUNyQiw0REFBdUMsQ0FBQTtJQUN2QyxrRUFBNkMsQ0FBQTtJQUM3QywwQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBVlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQVU1QjtBQUVELGdPQUFnTztBQUNoTyxNQUFNLENBQU4sSUFBWSw0QkFLWDtBQUxELFdBQVksNEJBQTRCO0lBQ3BDLHVEQUF1QixDQUFBO0lBQ3ZCLHlGQUF5RCxDQUFBO0lBQ3pELDZFQUE2QyxDQUFBO0lBQzdDLDJFQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFMVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBS3ZDO0FBZ0JELGtEQUFrRDtBQUNsRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLCtCQUFhLENBQUE7SUFDYix5Q0FBdUIsQ0FBQTtJQUN2QiwrQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUVELDJDQUEyQztBQUMzQyxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQzlCLDZDQUFtQixDQUFBO0lBQ25CLDZDQUFtQixDQUFBO0lBQ25CLHlDQUFlLENBQUE7SUFDZix1Q0FBYSxDQUFBO0lBQ2IseUNBQWUsQ0FBQTtJQUNmLDJDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBT2pDO0FBbUtELDRGQUE0RjtBQUM1RixNQUFNLENBQU4sSUFBWSxnQkFRWDtBQVJELFdBQVksZ0JBQWdCO0lBQ3hCLDJDQUF1QixDQUFBO0lBQ3ZCLGlDQUFhLENBQUE7SUFDYixpREFBNkIsQ0FBQTtJQUM3QixpREFBNkIsQ0FBQTtJQUM3QixtQ0FBZSxDQUFBO0lBQ2YsMkNBQXVCLENBQUE7SUFDdkIsbUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBUlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQVEzQjtBQUVELHNFQUFzRTtBQUN0RSxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ2pCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQixrQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQix3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtBQUNmLENBQUMsRUFSVyxTQUFTLEtBQVQsU0FBUyxRQVFwQjtBQXNDRCx5REFBeUQ7QUFDekQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2QixvQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQThCRCxvREFBb0Q7QUFDcEQsTUFBTSxDQUFOLElBQVksc0JBS1g7QUFMRCxXQUFZLHNCQUFzQjtJQUM5Qiw2Q0FBbUIsQ0FBQTtJQUNuQiw2Q0FBbUIsQ0FBQTtJQUNuQixpREFBdUIsQ0FBQTtJQUN2QixtREFBeUIsQ0FBQTtBQUM3QixDQUFDLEVBTFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUtqQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyA8YXV0by1nZW5lcmF0ZWQ+XHJcbi8vICAgICBHZW5lcmF0ZWQgdXNpbmcgdGhlIE5Td2FnIHRvb2xjaGFpbiB2MTQuMC4wLjAgKE5Kc29uU2NoZW1hIHYxMS4wLjAuMCAoTmV3dG9uc29mdC5Kc29uIHYxMy4wLjAuMCkpIChodHRwOi8vTlN3YWcub3JnKVxyXG4vLyA8L2F1dG8tZ2VuZXJhdGVkPlxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8qIHRzbGludDpkaXNhYmxlICovXHJcbi8qIGVzbGludC1kaXNhYmxlICovXHJcbi8vIFJlU2hhcnBlciBkaXNhYmxlIEluY29uc2lzdGVudE5hbWluZ1xyXG5cclxuLyoqIFRoaXMgZW51bSBjb25maWd1cmVzIHJvdW5kaW5nIG1vZGVzIGZvciBwcmljZSBjYWxjdWxhdGlvbnMgaW4gcHJvamVjdHMgKi9cclxuZXhwb3J0IGVudW0gUHJpY2VSb3VuZGluZ01vZGVEdG8ge1xyXG4gICAgTm9ybWFsID0gXCJOb3JtYWxcIixcclxuICAgIEZsb29yID0gXCJGbG9vclwiLFxyXG4gICAgQ2VpbGluZyA9IFwiQ2VpbGluZ1wiLFxyXG59XHJcblxyXG4vKiogR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBhIFByb2plY3QuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdEluZm9ybWF0aW9uRHRvIHtcclxuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYnV5ZXIuICovXHJcbiAgICBidXllcj86IFBhcnR5SW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogRGVzY3JpcHRpb24gZm9yIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgZGVzY3JpcHRpb25TaG9ydD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBOYW1lIG9mIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgc2l0ZS4gKi9cclxuICAgIHNpdGU/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyU2NoZW1hIHVzZWQgaW4gdGhlIHByb2plY3QuICovXHJcbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBsYWJlbCBmb3IgdGhlIGN1cnJlbmN5IHVzZWQuICovXHJcbiAgICBjdXJyZW5jeVNob3J0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEZ1bGwgbGFiZWwgb2YgdGhlIGN1cnJlbmN5IHVzZWQuICovXHJcbiAgICBjdXJyZW5jeUxvbmc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogTGFiZWwgZm9yIHRoZSBsYWJvdXIgdGltZSBwYXJ0IG9mIHByaWNlcyB1c2VkIGluIHRoZSBwcm9qZWN0LiAqL1xyXG4gICAgbGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIExhYmVscyBmb3IgdGhlIHByaWNlIGNvbXBvbmVudHMgdXNlZCBpbiB0aGUgcHJvamVjdC4gQ2F1dGlvbjogUmVtb3ZhbCBvZiBhIHByaWNlIGNvbXBvbmVudCB3aWxsIHRyaWdnZXIgdG8gaGF2ZSBkZXBlbmRlbnQgcHJpY2UgaW5mb3JtYXRpb25zIGJlIGRlbGV0ZWQgaW4gSUVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgcHJvcGVydHkuIElmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZCBvciBhbHRlcmVkIGFmdGVyIHRoZSBwcm9qZWN0IGhhcyBhbHJlYWR5IGJlZW4gdXNlZCwgaXQgaXMgc3Ryb25nbHkgYWR2aXNlZCB0byBkbyBvcGVyYXRpb25zIHN0ZXAgYnkgc3RlcCwgZS5nLiBpZiByZW5hbWluZyBhbmQgcmVvcmRlcmluZyBtdWx0aXBsZSBwcmljZSBjb21wb25lbnRzLCB0aGlzIHNob3VsZCBiZSBkb25lIG9uZSBieSBvbmUuIE90aGVyd2lzZSwgYSBjb21iaW5hdGlvbiBvZiByZW5hbWUgYW5kIHJlb3JkZXJpbmcgd2lsbCBub3QgYmUgY29ycmVjdGx5IHByb3BhZ2F0ZWQgZG93bndhcmRzIHRvIGNoaWxkIG9iamVjdHMgaW4gdGhpcyBQcm9qZWN0LiAqL1xyXG4gICAgcHJpY2VDb21wb25lbnRzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBkaWN0aW9uYXJ5IHNwZWNpZmllcyBhY3R1YWwgdHlwZXMgdXNlZCBmb3IgdGhlIFByaWNlQ29tcG9uZW50cy4gRm9yIGV4YW1wbGUsIGEgc2luZ2xlIHByaWNlIGNvbXBvbmVudCBtaWdodCBoYXZlIHRoZSBuYW1lICdNYXRlcmlhbCcgYXMgYSBzdHJpbmcsIGFucyB0aGlzIGRpY3Rpb25hcnkgd291bGQgdGhlbiBoYXZlIGEga2V5ICdNYXRlcmlhbCcgYW5kIGEgdmFsdWUgb2YgTWF0ZXJpYWxzLiBZb3UgY2FuIG5vdCBhZGQga2V5cyBoZXJlIHRoYXQgYXJlIG5vdCBhbHNvIHByZXNlbnQgaW4gdGhlIFByaWNlQ29tcG9uZW50cyBwcm9wZXJ0eSwgYW5kIHJlbW92aW5nIHByaWNlIGNvbXBvbmVudHMgd2lsbCBhbHNvIHJlbW92ZSB0aGVtIGZyb20gdGhpcyBkaWN0aW9uYXJ5IGhlcmUuICovXHJcbiAgICByZWFkb25seSBwcmljZUNvbXBvbmVudFR5cGVzPzogeyBba2V5OiBzdHJpbmddOiBQcmljZUNvbXBvbmVudFR5cGVEdG87IH0gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBib29sIGluZGljYXRlcyBpZiB0aGlzIHByb2plY3QgYWxsb3dzIHRoZSBiaWRkZXIgdG8gYWRkIGJpZGRlciBjb21tZW50cy4gQmlkZGVyIGNvbW1lbnRzIGFyZSBhIHdheSB0byBhdHRhY2ggY2xhcmlmeWluZyBpbmZvcm1hdGlvbiB3aGVuIHN1Ym1pdHRpbmcgYW4gb2ZmZXIuICovXHJcbiAgICBiaWRkZXJDb21tZW50QWxsb3dlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHByb2plY3Qgc2hvdWxkIGFsbG93IHNpZGUgb2ZmZXJzIGZyb20gY29udHJhY3RvcnMuIEluIEdBRUIsIGEgc2lkZSBvZmZlciB3b3VsZCB0eXBpY2FsbHkgYmUgaW4gZXhjaGFuZ2UgcGhhc2UgODUuICovXHJcbiAgICBzaWRlT2ZmZXJzQWxsb3dlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIGF3YXJkIC8gcHJvY3VyZW1lbnQgcHJvY2Vzcy4gSWYgdGhpcyBpcyB1c2VkIGluIGEgR0FFQiBjb250ZXh0LCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF3YXJkIHR5cGVzIGNhbiBiZSBmb3VuZCBpbiB0aGUgR2VybWFuIFZPQi9BIHJ1bGVzIGFuZCB0aGUgR0FFQiBzdGFuZGFyZCAqL1xyXG4gICAgYXdhcmRUeXBlPzogQXdhcmRUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIGF3YXJkcyBmb3IgcHJvamVjdCB0aGF0IGFyZSBub3QganVzdCBhIHJlZ3VsYXIgcHJvY3VyZW1lbnQuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSByZWN1cnJpbmcgbWFpbnRlbmFuY2Ugb3IgYW4gb3V0bGluZSBjb250cmFjdCAoR2VybWFuOiBSYWhtZW52ZXJ0cmFnKSB3aGljaCBqdXN0IHNwZWNpZmllcyBzZXJ2aWNlcyBhbmQgcHJpY2VzIGJ1dCBtYXkgYmUgcmVxdWVzdGVkIG9uIGRlbWFuZCB3aGVuIG5lY2Vzc2FyeSAqL1xyXG4gICAgc3BlY2lhbEF3YXJkS2luZD86IFNwZWNpYWxBd2FyZEtpbmREdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUmVxdWVzdGVycyBpbiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0LCBpbiBHZXJtYW4gYWxzbyBjYWxsZWQgJ0JlZGFyZnN0csOkZ2VyJywgYXJlIHBhcnRpZXMgY29ubmVjdGVkIHRvIHRoZSBidWlsZGluZyBwcm9jZXNzLCBlLmcuIGFyY2hpdGVjdHMgb3IgcGxhbm5lcnMuICovXHJcbiAgICByZXF1ZXN0ZXJzPzogUGFydHlJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIE5vdGlmaWNhdGlvbiBzaXRlcyBhcmUgYWRkcmVzc2VzIHRoYXQgYXJlIHVzZWQgZm9yIGRlbGl2ZXJpbmcgbWVzc2FnZXMgaW4gdGhlIGNvbnRleHQgb2YgY29uc3RydWN0aW9uIHByb2plY3RzLiAqL1xyXG4gICAgbm90aWZpY2F0aW9uU2l0ZXM/OiBQYXJ0eUluZm9ybWF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBSZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IGEgcGFydHkgKGEgc2l0ZSBvciBhbiBvcmdhbml6YXRpb24pLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcnR5SW5mb3JtYXRpb25EdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhpcyBwYXJ0eSdzIG5hbWUuICovXHJcbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcGFydHkncyBzdHJlZXQuICovXHJcbiAgICBzdHJlZXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwYXJ0eSdzIFppcENvZGUuICovXHJcbiAgICB6aXBDb2RlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcGFydHkncyBDaXR5LiAqL1xyXG4gICAgY2l0eT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHBhcnR5J3MgQ291bnRyeS4gKi9cclxuICAgIGNvdW50cnk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwYXJ0eSdzIElkZW50aWZpZXIuICovXHJcbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFJlbWFya3MgZm9yIHRoaXMgcGFydHkuICovXHJcbiAgICByZW1hcmtzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEFuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgcGFydHkuICovXHJcbiAgICBlbWFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBBIHBob25lIG51bWJlciBmb3IgdGhpcyBwYXJ0eS4gKi9cclxuICAgIHBob25lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIGEgY29udGFjdCBwZXJzb24uICovXHJcbiAgICBjb250YWN0UGVyc29uTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGFuIGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGlzIFBhcnR5SW5mb3JtYXRpb24gYW5kIHRoZWlyIGludGVybmFsIHJlZmVyZW5jZSBvZiB0aGUgdGVuZGVyIChvciBhd2FyZCkuIFRoaXMgbWlnaHQgYmUgdXNlZCB0byBhc3NpZ24gYW4gaWRlbnRpZmllciAoR2VybWFuIFwiVmVyZ2FiZW51bW1lclwiKSBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdC4gVGhpcyBpcyB0eXBpY2FsbHkgb25seSB1c2VkIGluIEJ1eWVyIGFuZCBCaWRkZXIgcmVwcmVzZW50YXRpb25zIGFuZCBzaG91bGQgbWFwIHRvIHRoZSBjb25jZXB0IG9mIFwiVmVyZ2FiZW51bW1lclwiIG9yIFwiQXdhcmROb1wiIGluIEdBRUIuICovXHJcbiAgICBhd2FyZElkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHBhcnR5IGlzIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBFdXJvcGVhbiBFY29ub21pYyBBcmVhLiAqL1xyXG4gICAgaXNJbkV1cm9wZWFuRWNvbm9taWNBcmVhPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHdpdGhpbiB0aGUgRXVyb3BlYW4gRWNvbm9taWMgQXJlYSAoc2VlIElzSW5FdXJvcGVhbkVjb25vbWljQXJlYSwgdGhlbiBhcyBhIGJ1c2luZXNzIGVudGl0eSBpdCBsaWtlbHkgaGFzIGFuIEVVIFZBVCBJZC4gKi9cclxuICAgIHZhdElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBmYXggbnVtYmVyIGZvciB0aGlzIHBhcnR5LiAqL1xyXG4gICAgZmF4Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0d28gbGV0dGVyIElTTyBjb3VudHJ5IGNvZGUsIGUuZy4gREUgZm9yIEdlcm1hbnkuICovXHJcbiAgICBjb3VudHJ5Q29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXBlbmRpbmcgb24gd2hpY2ggcGFydHkgdGhpcyBjbGFzcyByZXByZXNlbnRzLCBpdCBtaWdodCBoYXZlIGVpdGhlciBhICdjcmVkaXRvcicgb3IgJ2RlYnRvcicgbnVtYmVyLiBUaGlzIGlzIG9mdGVuIHVzZWQgaW4gaW50ZXJuYWwgYWNjb3VudGluZyBzeXN0ZW1zLiAqL1xyXG4gICAgY3JlZGl0b3JPckRlYnRvcklkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIEdsb2JhbCBMb2NhdGlvbiBOdW1iZXIgKEdMTikgaXMgaXNzdWVkIGJ5IEdTMSBhbmQgaXMgaW50ZW5kZWQgdG8gYmUgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgYSBwYXJ0eSwgZS5nLiBhIGJ1c2luZXNzIG9mZmljZS4gKi9cclxuICAgIGdsb2JhbExvY2F0aW9uTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgbGlzdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBiYW5rIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFBhcnR5SW5mb3JtYXRpb24uIEl0J3MgdHlwaWNhbGx5IHVzZWQgZm9yIGJ1eWVycyBhbmQgYmlkZGVycy4gKi9cclxuICAgIGJhbmtpbmdJbmZvcm1hdGlvbj86IEJhbmtpbmdJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHJlZ2lzdHJhdGlvbiBudW1iZXIgZm9yIHRoaXMgcGFydHksIGUuZy4gYSBjb21wYW55IHJlZ2lzdHJhdGlvbiBudW1iZXIuIEl0IGlzIHVzdWFsbHkgdXNlZCBpbiBHQUVCIFhNTCBjb21tZXJjZSBleGNoYW5nZXMgZm9yIGJpZGRlcnMgdG8gc3VwcGx5IHRoZWlyIFdFRUUgcmVnaXN0cmF0aW9uIG51bWJlciwgd2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSB0aGVtIGFzIGEgcmVnaXN0ZXJlZCBXRUVFIGNvbXBhbnkuICovXHJcbiAgICByZWdpc3RyYXRpb25OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGJhbmsgY29ubmVjdGlvbi4gSXQgaXMgdXN1YWxseSB1c2VkIHdpdGhpbiBhIFBhcnR5SW5mb3JtYXRpb24uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFua2luZ0luZm9ybWF0aW9uRHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBiYW5rLiAqL1xyXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgaW50ZXJuYXRpb25hbCBpZGVudGlmaWVyIGZvciB0aGUgYmFuayBhY2NvdW50LiAqL1xyXG4gICAgaWJhbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgYWNjb3VudCBudW1iZXIuIFR5cGljYWxseSBubyBsb25nZXIgdXNlZCBzaW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIElCQU4gd2l0aGluIHRoZSBTRVBBIGFyZWEuICovXHJcbiAgICBhY2NvdW50TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBpbnRlcm5hdGlvbmFsIGJhbmsgaWRlbnRpZmllci4gKi9cclxuICAgIGJpYz86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcm91dGluZyBudW1iZXIgZm9yIHRoZSBiYW5rLiBUeXBpY2FsbHkgbm8gbG9uZ2VyIHVzZWQgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBJQkFOIHdpdGhpbiB0aGUgU0VQQSBhcmVhLiAqL1xyXG4gICAgcm91dGluZ051bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoZSBzY2hlbWEgZm9yIEl0ZW1OdW1iZXIncyBpbiBhIFByb2plY3QuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbU51bWJlclNjaGVtYUR0byB7XHJcbiAgICAvKiogVGhlIGNvdW50IG9mIHRpZXJzIGluIHRoZSBJdGVtTnVtYmVyU2NoZW1hICovXHJcbiAgICByZWFkb25seSB0b3RhbExlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY29sbGVjdGlvbiBvZiB0aWVycyBmb3IgdGhpcyBJdGVtTnVtYmVyU2NoZW1hLiAqL1xyXG4gICAgdGllcnM/OiBJdGVtTnVtYmVyU2NoZW1hVGllckR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzZXBhcmF0b3IgdG8gdXNlIGZvciBzZXBhcml0aW5nIHRoZSBkaWZmZXJlbnQgbGV2ZWxzIGluIGFuIEl0ZW1OdW1iZXIuIERlZmF1bHRzIHRvIERFRkFVTFRfU0VQQVJBVE9SLCB3aGljaCBpcyBhIHBvaW50ICcuJy4gU2V0dGluZyB0aGlzIHRvIGEgc3BhY2Ugb3Igb3RoZXIgd2hpdGVzcGFjZXMgaXMgZGlzY291cmFnZWQsIGFzIHRoaXMgbWlnaHQgbm90IHdvcmsgY29ycmVjdCBpbiBhbGwgc2l0dWF0aW9ucyBhbmQgaXRlbSBudW1iZXJzIGNvdWxkIGJlIGRpc3BsYXllZCBub3QgYXMgaW50ZW5kZWQuIFRoaXMgY2FuIG5vdCBiZSBzZXQgdG8gYW4gZW1wdHkgb3IgbnVsbCBzdHJpbmcsIHRyeWluZyB0aGF0IHdpbGwgZGVmYXVsdCB0byB0aGUgREVGQVVMVF9TRVBBUkFUT1IuIElmIGEgdmFsdWUgaXMgc2V0IHRoYXQgaGFzIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIG9uZSAnMScsIHRoZSBERUZBVUxUX1NFUEFSQVRPUiB3aWxsIGJlIHVzZWQgaW5zdGVhZC4gWW91IHNob3VsZCBhbHNvIG5vdCB1c2UgdmFsdWVzIGZvciB0aGUgc2VwYXJhdG9yIHRoYXQgYXJlIGFsc28gdmFsaWQgZm9yIHRoZSBpdGVtIG51bWJlcnMgdGhlbXNlbHZlcywgYXMgdGhhdCBtaWdodCBhbHNvIGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMgKi9cclxuICAgIHNlcGFyYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHN0cmluZyBpcyB1c2VkIHRvIGZpbGwgKGxlZnQtcGFkKSBpdGVtIG51bWJlcnMuIEZvciBleGFtcGxlLCBpZiBhIHRpZXIgaGFzIGEgbGVuZ3RoIG9mICc0JyBidXQgdGhlIGdpdmVuIGl0ZW0gbnVtYmVyIGlzICcxMicsIHdpdGggYSBGaWxsZXIgb2YgJzAnLCB0aGVuIHRoZSBmaW5hbCBpdGVtIG51bWJlciB3aWxsIGJlIHJlcHJlc2VudGVkIGFzICcwJy4gVGhpcyBtdXN0IGJlIGEgc2luZ2xlIGNoYXJhY3RlciBzdHJpbmcsIGlmIGEgdmFsdWUgaXMgZ2l2ZW4gd2hlcmUgdGhlIExlbmd0aCBwcm9wZXJ0eSBkb2VzIG5vdCBldmFsdWF0ZSB0byAnMScsIHRoZSBERUZBVUxUX0ZJTExFUiAnMCcgaXMgdXNlZC4gQSBzcGFjZSBpcyBmaW5lIHRvIHVzZS4gWW91IHNob3VsZCBlbnN1cmUgdGhhdCB5b3UgdXNlIGEgdmFsdWUgZGlmZmVyZW50IHRoYW4gU2VwYXJhdG9yLCBhcyB0aGF0IG1pZ2h0IHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzLiBObyBhdHRlbXB0IGlzIGRvbmUgYnkgdGhlIGNvZGUgdG8gcmVjb3ZlciBmcm9tIHN1Y2ggYW1iaWd1b3VzIGNvbmZpZ3VyYXRpb25zLiAqL1xyXG4gICAgZmlsbGVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMganVzdCBhIHN0cmluZyBwcm9wZXJ0eSB0aGF0IGNhbiBvcHRpb25hbGx5IGJlIHVzZWQgdG8gc3RvcmUgYWRkaXRpb25hbCBkYXRhIGZvciB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEsIGUuZy4gYW4gaWRlbnRpZmljYXRpb24gb3IgYSB0eXBlLiBJdCBkb2VzIG5vdCBoYXZlIGFueSBpbmZsdWVuY2Ugb3ZlciBob3cgaXRlbSBudW1iZXJzIGFyZSBnZW5lcmF0ZWQsIGFuZCBpcyBub3Qgc3VwcG9ydGVkIGluIG1vc3QgZXhjaGFuZ2UgZm9ybWF0cy4gSG93ZXZlciwgaXQgaXMgdXNlZCB0byBzdG9yZSDDlk5vcm0gc2VydmljZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSB0eXBlcy4gKi9cclxuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgSXRlbU51bWJlcnMgdXNpbmcgdGhpcyBJdGVtTnVtYmVyU2NoZW1hIHNob3VsZCBza2lwIGVtcHR5IGdyb3VwIGxldmVscy4gVGhpcyBpcyBjb21tb25seSBvbmx5IHVzZWQgaW4gR0FFQiBmaWxlcywgd2hlcmUgdGhlcmUgbWlnaHQgYmUgZ2FwcyBpbiB0aGUgaGllcmFyY2h5IG9mIGVsZW1lbnRzIGFuZCBwb3NpdGlvbiBpZGVudGlmaWVycyBzaG91bGQgYmUgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbi4gKi9cclxuICAgIHNraXBOb25FeGlzdGluZ0xldmVsc0luUG9zaXRpb25JdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBzdHJpbmcgaXMgdXNlZCBvbmx5IHdoZW4gdGhlIHByb3BlcnR5IFNraXBOb25FeGlzdGluZ0xldmVsc0luUG9zaXRpb25JdGVtTnVtYmVycyBpbiB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEgaXMgYWxzbyBzZXQgdG8gdHJ1ZS4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9TS0lQUEVEX1RJRVJTX0ZJTExFUiwgYnV0IGNhbiBiZSBzZXQgdG8gYW55IHN0cmluZyB3aXRoIGEgbGVuZ2h0IG9mIG9uZS4gTnVsbCB2YWx1ZXMgb3IgdmFsdWVzIHdpdGggYSBsb25nZXIgbGVuZ3RoIHdpbGwgbGVhZCB0byB0aGlzIHByb3BlcnR5IHJldmVydGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlLiBUaGlzIGlzIHVzZWQgdG8gZmlsbCBza2lwcGVkIHRpZXJzIGluIGl0ZW0gbnVtYmVycyB3aGVyZSBhIHBvc2l0aW9uIGlzIHBsYWNlZCBpbiBhIGhpZ2hlciBoaWVyYXJjaHkgbGV2ZWwgdGhhbiB3aGF0IHdvdWxkIGJlIGRlZmluZWQgaW4gdGhlIFRpZXJzLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgcHJvZHVjZSBhbiBpdGVtIG51bWJlciBsaWtlICcwMS5fXy4wMicsIHdoaWNoIHdvdWxkIGluZGljYXRlIGEgc2tpcHBlZCBzZWNvbmQgbGV2ZWwuIFRoaXMgc2hvdWxkIGJlIHVzaW5nIGRpZmZlcmVudCB2YWx1ZXMgdGhhbiBGaWxsZXIgYW5kIFNlcGFyYXRvciwgc2luY2UgdGhhdCBjb3VsZCBjYXVzZSBhbWJpZ3VpdGllcyBpbiB0aGUgY29kZSB0aGF0IGdlbmVyYXRlcyB0aGUgYWN0dWFsIGl0ZW0gbnVtYmVycy4gTm8gYXR0ZW1wdCBpcyBkb25lIGJ5IHRoZSBjb2RlIHRvIHJlY292ZXIgZnJvbSBzdWNoIGFtYmlndW91cyBjb25maWd1cmF0aW9ucy4gKi9cclxuICAgIHNraXBwZWRUaWVyc0ZpbGxlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGEgcmVhZC1vbmx5IHByb3BlcnR5IHRoYXQgaW5kaWNhdGVzIGlmIHRoaXMgc2NoZW1hIGhhcyBhIHZhbGlkIHN0cnVjdHVyZS4gSXQgaW50ZXJuYWxseSBqdXN0IHJldHVybnMgdGhlIHJlc3VsdCBmcm9tIElzQ29ycmVjdGx5RGVmaW5lZC4gVGhpcyB3aWxsIHJldHVybiBpZiB0aGUgSXRlbU51bWJlclNjaGVtYSBpcyBjb3JyZWN0bHkgZGVmaW5lZC4gRm9yIGl0IHRvIGJlIGNvcnJlY3RseSBkZWZpbmVkLCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgbXVzdCBiZSB0cnVlOiBUaGVyZSBtYXkgb25seSBiZSBvbmUgbG90IGdyb3VwLCBpZiB0aGVyZSBpcyBvbmUsIGl0IG11c3QgYmUgYXQgdGhlIHRvcC4gRm9sbG93aW5nIGxvdCBsZXZlbHMsIHRoZXJlIG1heSBiZSBhdCBsZWFzdCBvbmUgZ3JvdXAgbGV2ZWwuIEFmdGVyIHRoZSBncm91cCBsZXZlbHMsIHRoZXJlIG11c3QgYmUgb25lIHBvc2l0aW9uIGxldmVsLiBBZnRlciB0aGUgcG9zaXRpb24gbGV2ZWwsIHRoZXJlIG1heSBiZSBvbmUgaW5kZXggbGV2ZWwuIElmIG5vIHRpZXJzIGFyZSBkZWZpbmVkIGF0IGFsbCwgdGhpcyB3aWxsIGFsc28gcmV0dXJuIGZhbHNlLiAqL1xyXG4gICAgcmVhZG9ubHkgc2NoZW1hSXNDb3JyZWN0bHlEZWZpbmVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZWZhdWx0cyB0byBmYWxzZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgYWxsIGxldHRlcnMgaW4gdGhlIEl0ZW1OdW1iZXIgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyB3aWxsIGJlIHRyYW5zZm9ybWVkIHRvIHRoZWlyIGxvd2VyY2FzZSByZXByZXNlbnRhdGlvbi4gKi9cclxuICAgIGFsbG93VXBwZXJDYXNlTGV0dGVyaW5nPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgVGllciBpbiBhbiBJdGVtTnVtYmVyLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvIHtcclxuICAgIC8qKiBUaGUgKG1heGltdW0pIGxlbmd0aCBmb3IgdGhpcyB0aWVyLiBXaWxsIG5vdCBhY2NlcHQgYSBsZW5ndGggbGVzcyB0aGFuIDEuIERlZmF1bHRzIHRvIDEgaWYgbGVuZ3RoIGxlc3MgdGhhbiBvbmUgaXMgc3BlY2lmaWVkLiAqL1xyXG4gICAgbGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgSXRlbU51bWJlclNjaGVtYVRpZXIncyB0eXBlLiAqL1xyXG4gICAgdHlwZT86IEl0ZW1OdW1iZXJUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgc3BlY2lmaWVzIHdoaWNoIEl0ZW1OdW1iZXJTY2hlbWFUaWVyVHlwZSB0aGlzIHRpZXIgcmVwcmVzZW50cy4gVGhpcyBjYW4gYmUsIGZvciBleGFtcGxlLCBhIGdyb3VwIHRpZXIgLyBsZXZlbCwgYSBwb3NpdGlvbiBsZXZlbCBvciBhIGxvdCBsZXZlbC4gKi9cclxuICAgIHRpZXJUeXBlPzogSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIHRpZXIgcmVwcmVzZW50cyBhIGxvdC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGxvdHMuICovXHJcbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyB2YWx1ZSBpcyB0aGUgaW5jcmVtZW50LCBvciBzdGVwIHNpemUsIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIG5ldyBpdGVtIG51bWJlcnMuIEl0IGRlZmF1bHRzIHRvIERFRkFVTFRfSU5DUkVNRU5ULCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYW55IG90aGVyIHBvc2l0aXZlIG51bWJlciBncmVhdGVyIHRoYW4gemVyby4gSW52YWxpZCB2YWx1ZXMgbWFrZSB0aGlzIGJlIHNldCB0byBvbmUgJzEnICovXHJcbiAgICBpbmNyZW1lbnQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBuYW1lIGZvciB0aGUgZ2l2ZW4gdGllciAqL1xyXG4gICAgdGllck5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIGFuIEl0ZW1OdW1iZXJTY2hlbWEgKi9cclxuZXhwb3J0IGVudW0gSXRlbU51bWJlclR5cGVEdG8ge1xyXG4gICAgTnVtZXJpYyA9IFwiTnVtZXJpY1wiLFxyXG4gICAgQWxwaGFudW1lcmljID0gXCJBbHBoYW51bWVyaWNcIixcclxufVxyXG5cclxuLyoqIFNwZWNpZmllcyB0aGUgdHlwZSBhbiBJdGVtTnVtYmVyU2NoZW1hVGllciByZXByZXNlbnRzLiBGb3IgZXhhbXBsZSwgYSB0aWVyIG1heSBpbmRpY2F0ZSB0byBiZSB1c2VkIGZvciBwb3NpdGlvbnMgb3IgZm9yIGdyb3Vwcy4gKi9cclxuZXhwb3J0IGVudW0gSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHtcclxuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXHJcbiAgICBJbmRleCA9IFwiSW5kZXhcIixcclxuICAgIFBvc2l0aW9uID0gXCJQb3NpdGlvblwiLFxyXG4gICAgR3JvdXAgPSBcIkdyb3VwXCIsXHJcbiAgICBMb3QgPSBcIkxvdFwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBtb2RlbHMgdHlwZXMgb2YgcHJpY2UgY29tcG9uZW50cyBmb3IgYmV0dGVyIGNsYXNzaWZpY2F0aW9uLiAqL1xyXG5leHBvcnQgZW51bSBQcmljZUNvbXBvbmVudFR5cGVEdG8ge1xyXG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxyXG4gICAgV2FnZXMgPSBcIldhZ2VzXCIsXHJcbiAgICBNYXRlcmlhbHMgPSBcIk1hdGVyaWFsc1wiLFxyXG4gICAgUGxhbnQgPSBcIlBsYW50XCIsXHJcbiAgICBNaXNjZWxsYW5lb3VzID0gXCJNaXNjZWxsYW5lb3VzXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgYXdhcmQgLyBwcm9jdXJlbWVudCBwcm9jZXNzLiBJZiB0aGlzIGlzIHVzZWQgaW4gYSBHQUVCIGNvbnRleHQsIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYXdhcmQgdHlwZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBHZXJtYW4gVk9CL0EgcnVsZXMgYW5kIHRoZSBHQUVCIHN0YW5kYXJkICovXHJcbmV4cG9ydCBlbnVtIEF3YXJkVHlwZUR0byB7XHJcbiAgICBVbnNwZWNpZmllZCA9IFwiVW5zcGVjaWZpZWRcIixcclxuICAgIE9wZW5Qcm9jdXJlbWVudCA9IFwiT3BlblByb2N1cmVtZW50XCIsXHJcbiAgICBDbG9zZWRQcm9kdWNyZW1lbnQgPSBcIkNsb3NlZFByb2R1Y3JlbWVudFwiLFxyXG4gICAgTmVnb3RpYXRpb25Qcm9jdXJlbWVudFdpdGhvdXRQdWJsaWNBbm5vdW5jZW1lbnQgPSBcIk5lZ290aWF0aW9uUHJvY3VyZW1lbnRXaXRob3V0UHVibGljQW5ub3VuY2VtZW50XCIsXHJcbiAgICBOZWdvdGlhdGlvblByb2N1cmVtZW50ID0gXCJOZWdvdGlhdGlvblByb2N1cmVtZW50XCIsXHJcbiAgICBPcGVuQ2FsbCA9IFwiT3BlbkNhbGxcIixcclxuICAgIFNlbGVjdGVkQ2FsbFdpdGhvdXRQdWJsaWNDb21wZXRpdGlvbiA9IFwiU2VsZWN0ZWRDYWxsV2l0aG91dFB1YmxpY0NvbXBldGl0aW9uXCIsXHJcbiAgICBTZWxlY3RlZENhbGwgPSBcIlNlbGVjdGVkQ2FsbFwiLFxyXG4gICAgRGlyZWN0QXdhcmQgPSBcIkRpcmVjdEF3YXJkXCIsXHJcbiAgICBJbnRlcm5hdGlvbmFsTkFUT1Byb2N1cmVtZW50ID0gXCJJbnRlcm5hdGlvbmFsTkFUT1Byb2N1cmVtZW50XCIsXHJcbiAgICBDb21wZXRpdGl2ZURpYWxvZyA9IFwiQ29tcGV0aXRpdmVEaWFsb2dcIixcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIGF3YXJkcyBmb3IgcHJvamVjdCB0aGF0IGFyZSBub3QganVzdCBhIHJlZ3VsYXIgcHJvY3VyZW1lbnQuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSByZWN1cnJpbmcgbWFpbnRlbmFuY2Ugb3IgYW4gb3V0bGluZSBjb250cmFjdCAoR2VybWFuOiBSYWhtZW52ZXJ0cmFnKSB3aGljaCBqdXN0IHNwZWNpZmllcyBzZXJ2aWNlcyBhbmQgcHJpY2VzIGJ1dCBtYXkgYmUgcmVxdWVzdGVkIG9uIGRlbWFuZCB3aGVuIG5lY2Vzc2FyeSAqL1xyXG5leHBvcnQgZW51bSBTcGVjaWFsQXdhcmRLaW5kRHRvIHtcclxuICAgIFVuc3BlY2lmaWVkID0gXCJVbnNwZWNpZmllZFwiLFxyXG4gICAgTWFpbnRlbmFuY2VDb250cmFjdCA9IFwiTWFpbnRlbmFuY2VDb250cmFjdFwiLFxyXG4gICAgT3V0bGluZUNvbnRyYWN0ID0gXCJPdXRsaW5lQ29udHJhY3RcIixcclxuICAgIE91dGxpbmVGb3JNYWludGVuYW5jZUNvbnRyYWN0ID0gXCJPdXRsaW5lRm9yTWFpbnRlbmFuY2VDb250cmFjdFwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBpcyB0aGUgYmFzZSBjbGFzcyB0aGF0IGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IGEgd2hvbGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uRHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSBob3VybHkgd2FnZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cclxuICAgIHJlYWRvbmx5IHByb2plY3RIb3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0YXggcmF0ZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cclxuICAgIHByb2plY3RUYXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBwcmljZSBjb21wb25lbnRzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gVGhleSBhcmUgaWdub3JlZCBkdXJpbmcgSnNvbiBkZXNlcmlhbGl6YXRpb24gYmVjYXVzZSB0aGV5IHdpbGwgYmUgc2V0IGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xyXG4gICAgcHJvamVjdFByaWNlQ29tcG9uZW50cz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyU2NoZW1hIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiAqL1xyXG4gICAgcHJvamVjdEl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJRWxlbWVudHMgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuICovXHJcbiAgICBlbGVtZW50cz86IElFbGVtZW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGxhYmVsIHVzZWQgaW4gdGhlIHBhcmVudCBQcm9qZWN0IHRvIG1hcmsgbGFib3VyIHRpbWUsIGUuZy4gXCJIb3Vyc1wiIG9yIFwiU3R1bmRlblwiLiAqL1xyXG4gICAgcmVhZG9ubHkgcHJvamVjdExhYm91clRpbWVMYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSXRlbU51bWJlcnMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSXRlbU51bWJlciBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXHJcbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSWRzIG9yIGlmIGFueSBjaGlsZCBFbGVtZW50Q29udGFpbmVyQmFzZSBlbGVtZW50cyB0aGVtc2VsdmVzIGNvbnRhaW4gZHVwbGljYXRlIElkIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cclxuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJdGVtTnVtYmVycyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cclxuICAgIGlnbm9yZUR1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcyAqL1xyXG4gICAgaWdub3JlUHJvamVjdENhdGFsb2d1ZVByb3BhZ2F0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIElkcyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cclxuICAgIGlnbm9yZUR1cGxpY2F0ZUVsZW1lbnRJZHM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFByaWNlIGNvbXBvc2l0aW9uIGJ5IHRheCByYXRlLiAqL1xyXG4gICAgdG90YWxQcmljZUdyb3NzQnlUYXhSYXRlPzogR3Jvc3NQcmljZUNvbXBvbmVudER0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEludGVybmFsbHkgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEgcHJvcGFnYXRpb24gaXMgY3VycmVudGx5IGRvbmUsIHRoaXMgaXMgZG9uZSB0byBub3QgcmVjYWxjdWxhdGUgZXZlcnkgc2luZ2xlIHJlc3VsdCBmcm9tIGEgbG90IG9mIGNoYW5nZXMgd2hlbiBpdCBpcyBzdWZmaWNpZW50IHRvIGNhbGN1bGF0ZSB0aGUgdG90YWwgcHJpY2UgYXQgb25jZS4gKi9cclxuICAgIGlnbm9yZUNoaWxkUHJpY2VVcGRhdGVzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBOZXQgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgZGVkdWN0ZWRQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBGYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIHRvIHRoZSB0b3RhbCBwcmljZS4gRm9yIGV4YW1wbGUsIFwiMC4wM1wiIG1lYW5zIHRoYXQgYSAzJSBkZWR1Y3Rpb24gaXMgdG8gYmUgYXBwbGllZC4gKi9cclxuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZXhhY3QgYW1vdW50IG9mIHRoZSBkaXNjb3VudCBhcyBhbiBhYnNvbHV0ZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHNldHRpbmcgdGhpcyB2YWx1ZSB3aWxsIGFsc28gc2V0IGEgY2FsY3VsYXRlZCB2YWx1ZSB0byBEZWR1Y3Rpb25GYWN0b3IsIHdoaWNoIHdpbGwgYWxzbyBiZSB1cGRhdGVkIGluIGNhc2UgdGhlIHRvdGFsIHByaWNlIGlzIGNoYW5nZWQgdG8gcmVmbGVjdCBhIHJlbGF0aXZlIHZhbHVlIG9mIHRoZSBhYnNvbHV0ZSBkaXNjb3VudCBzdW0uICovXHJcbiAgICBhYnNvbHV0ZURlZHVjdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlJ3MgdG90YWwgcHJpY2UuICovXHJcbiAgICByZWFkb25seSB0b3RhbFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpbmNsdWRpbmcgYWxsIGNoaWxkIGVsZW1lbnRzLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRvdGFsIGdyb3NzIHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cclxuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyB0aGUgUHJpY2VUeXBlIG9mIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UsIHdoZXRoZXIgaXQgc2hvdWxkIGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzIG9yIG5vdC4gKi9cclxuICAgIHByaWNlVHlwZT86IFByaWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmlkZGVyLiAqL1xyXG4gICAgYmlkZGVyPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGRpc2NyaW1pbmF0b3IgaXMgdXNlZCB0byBpZGVudGlmeSBkaWZmZXJlbnQgYmlkZGVycyBpbiBhIHByb2plY3QuIEl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBJZGVudGlmaWVyIHByb3BlcnR5IGluIHRoZSBCaWRkZXIgaW4gdGhhdCB0aGUgQmlkZGVyRGlzY3JpbWluYXRvciBpcyBpbnRlbmRlZCB0byBiZSBhIG51bWVyaWNhbCBpZGVudGlmaWVyIHdpdGhpbiBhIHByb2plY3QsIHdoaWxlIHRoZSBJZGVudGlmaWVyIGRvZXMgdW5pcXVlbHkgaWRlbnRpZnkgYSBiaWRkZXIgaW4gdGhlIHN5c3RlbSBpbmRlcGVuZGVudCBvZiBhIHNwZWNpZmljIHByb2plY3QuIFRoaXMgcHJvcGVydHkgc2hvdWxkIG1hcCB0byBcIkJpZXRlcm51bW1lclwiIG9yIFwiQmlkZGVyTm9cIiBpbiBHQUVCLiAqL1xyXG4gICAgYmlkZGVyRGlzY3JpbWluYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBUaGlzIGRhdGEgaXMgbm90IHVzZWQgZm9yIGFueSBjYWxjdWxhdGlvbnMgb3IgZXZhbHVhdGlvbnMgYnV0IG9ubHkgZm9yIEdBRUIgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiAqL1xyXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCB3aXRoaW4gdGhlIFByb2plY3QgaW4gd2hpY2ggdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpcyBjb250YWluZWQuIFRoaXMgaXMgcmVmZXJlbmNlIGVxdWFsIHRvIHRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCBpbiB0aGUgcGFyZW50IHByb2plY3QuICovXHJcbiAgICByZWFkb25seSBwcm9qZWN0SW5mb3JtYXRpb24/OiBQcm9qZWN0SW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb25zIGV4Y2hhbmdlIHBoYXNlLCBpLmUuIHRoZSBjdXJyZW50IHN0YXR1cyBpbiB0aGUgcHJvamVjdCBpdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIChzdWNoIGFzIHJlcXVlc3QgZm9yIG9mZmVyLCBvZmZlciwgYXdhcmRpbmcuLi4pLiAqL1xyXG4gICAgZXhjaGFuZ2VQaGFzZT86IEV4Y2hhbmdlUGhhc2VEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBvcmlnaW5hdGVzLCBpLmUuIGZyb20gYW4gZXhjaGFuZ2UgZmlsZSBmb3JtYXQgb3Igc2VsZiBjcmVhdGVkLiBJZiBhcHBsaWNhYmxlLCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIHByZXNlbnQgaW4gdGhlIE9yaWdpbkRldGFpbCBwcm9wZXJ0eS4gKi9cclxuICAgIG9yaWdpbj86IE9yaWdpbkR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbXBsZW1lbnRzIHRoZSBPcmlnaW4gcHJvcGVydHkuIFNvbWUgZm9ybWF0cywgZS5nLiBHYWViWG1sIG1pZ2h0IGhhdmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhdHRhY2hlZCwgZS5nLiBHQUVCIFhNTCBWMy4yIG9kZXIgR0FFQiBYTUwgVjMuMS4gVGhpcyBzdHJpbmcgcHJvcGVydHkgaXMgdXNlZCB0byBob2xkIHN1Y2ggZGF0YS4gVGhlIERhbmdsLkFWQSBtb2R1bGUgZG9lcyBub3QgaGF2ZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLCBzaW5jZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIG5hdGl2ZSBmb3JtYXQgYXNzZW1ibGllcywgZS5nLiBEYW5nbC5HQUVCIG9yIERhbmdsLk9lbm9ybS4gKi9cclxuICAgIG9yaWdpbkRldGFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBDcmVhdGlvbiBkYXRlIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXHJcbiAgICBjcmVhdGlvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERhdGUgaW5kaWNhdGluZyB1bnRpbCB3aGVuIGFuIG9mZmVyIGhhcyB0byBiZSBzdWJtaXR0ZWQuIEluIEdlcm1hbiwgdGhpcyBpcyBvZnRlbiBjYWxsZWQgdGhlIFwiRXLDtmZmbnVuZ3N0ZXJtaW5cIiAqL1xyXG4gICAgb2ZmZXJCeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERhdGUgaW5kaWNhdGluZyBieSB3aGVuIHRoZSBidXllciB3aWxsIHNlbGVjdCBhIGNvbnRyYWN0b3IuICovXHJcbiAgICBkZWNpc2lvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERhdGUgb2Ygd2hlbiB0aGUgb2ZmZXIgLyBiaWQgd2FzIGNyZWF0ZWQgKi9cclxuICAgIGJpZERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIGEgY29uc3RydWN0aW9uIHByb2plY3QgcmVxdWlyZXMgYSB3YXJyYW50eSBib25kLCB0aGlzIHByb3BlcnR5IGluZGljYXRlcyB0aGUgYW1vdW50IGFzIGEgcGVyY2VudGFnZSwgZS5nLiAnMC4xNW0nIG1lYW5zIDE1JSBvZiB0aGUgY29uc3RydWN0aW9uIHRvdGFsIGFtb3VudCBhcyBhIHdhcnJhbnR5IGJvbmQuICovXHJcbiAgICB3YXJyYW50eUJvbmRQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIGEgY29uc3RydWN0aW9uIHByb2plY3QgcmVxdWlyZXMgYW4gZXhlY3V0aW9uIGd1YXJhbnR0eSwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIGFtb3VudCBhcyBhIHBlcmNlbnRhZ2UsIGUuZy4gJzAuMTVtJyBtZWFucyAxNSUgb2YgdGhlIGNvbnN0cnVjdGlvbiB0b3RhbCBhbW91bnQgYXMgYW4gZXhlY3V0aW9uIGd1YXJhbnRlZS4gSW4gcHJhY3RpY2UsIHRoaXMgcGVyY2VudGFnZSBpcyB1c3VhbGx5IGRlZHVjdGVkIGZyb20gaW50ZXJtZWRpYXRlIGludm9pY2VzIGFuZCBvbmx5IGJpbGxlZCBpbiB0aGUgZmluYWwgaW52b2ljZS4gKi9cclxuICAgIGV4ZWN1dGlvbkd1YXJhbnRlZVBlcmNlbnRhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogU3RyaW5nIGluZGljYXRpbmcgd2hlcmUgdGhlIHBoeXNpY2FsIHN1Ym1pc3Npb24gb2YgdGhlIG9mZmVyIGlzIHRha2luZyBwbGFjZS4gKi9cclxuICAgIHN1Ym1pc3Npb25Mb2NhdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXNjcmlwdGlvbiBvZiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiAqL1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cclxuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBQcmljZUluZm9ybWF0aW9uIGNvbnRhaW5zIGdsb2JhbCBkYXRhIGZvciB0aGUgU2VydmljZVNwZWNpZmljYXRpb24uIFdoZW4gaW5zaWRlIGEgUHJvamVjdCwgZG8gbm90IHNldCB0aGlzIHByb3BlcnR5IG1hbnVhbGx5LiAqL1xyXG4gICAgcHJpY2VJbmZvcm1hdGlvbj86IFByaWNlSW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZSB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBDYXRhbG9ndWUgcmVmZXJlbmNlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuICovXHJcbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFJlZmVyZW5jZWQgY2F0YWxvZ3VlcyBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZGF0ZSB3aGVuIHRoZSBleGVjdXRpb24gb2YgdGhlIHNlcnZpY2VzIGlzIHNjaGVkdWxlZCB0byBzdGFydCAqL1xyXG4gICAgcGxhbm5lZEV4ZWN1dGlvblN0YXJ0PzogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZGF0ZSB0aGVuIHRoZSBleGVjdXRpb24gb2YgdGhlIHNlcnZpY2VzIGlzIHNjaGVkdWxlZCB0byBiZSBmaW5pc2hlZCAqL1xyXG4gICAgcGxhbm5lZEV4ZWN1dGlvbkVuZD86IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGRhdGUgb24gd2hpY2ggdGhlIGNvbnRyYWN0IGhhcyBiZWVuIGF3YXJkZWQuIFRoaXMgbWF0Y2hlcyBcIkF1ZnRyYWdzZGF0dW1cIiBpbiBHQUVCICovXHJcbiAgICBjb250cmFjdERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgdmFsdWUgY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhlIG51bWJlciBvciBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdC4gSXQgbWF0Y2hlcyBcIkF1ZnRyYWdzbnVtbWVyXCIgaW4gR0FFQiAqL1xyXG4gICAgY29udHJhY3RJZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGhvdyBsb25nIHRoZSB3YXJyYW50eSBwZXJpb2QgaXMgZm9yIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24gKi9cclxuICAgIHdhcnJhbnR5RHVyYXRpb24/OiBXYXJyYW50eUR1cmF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSB3YXJyYW50eSBwZXJpb2QgZW5kcyAqL1xyXG4gICAgd2FycmFudHlFbmQ/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSBzZXJ2aWNlcyByZW5kZXJlZCBieSB0aGUgYmlkZGVyIGFyZSBzY2hlZHVsZWQgdG8gYmUgYXBwcm92ZWQgYnkgdGhlIGJ1eWVyICovXHJcbiAgICBhcHByb3ZhbERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgc2hvdWxkIHNwZWNpZnkgaG93IHRoZSBhcHByb3ZhbCBpcyBwZXJmb3JtZWQgYnkgdGhlIGJ1eWVyLiBUaGlzIG1hdGNoZXMgXCJBY2NlcHRUeXBlXCIgaW4gR0FFQiAqL1xyXG4gICAgdHlwZU9mQXBwcm92YWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBzdHJpbmcgcHJvcGVydHkgaXMgc2hhcmVkIGJ5IGFsbCBJRWxlbWVudHMsIGFuZCBpbmRpY2F0ZXMgaWYgdGhlIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSwgYSAnTmFjaHRyYWcnIGluIEdlcm1hbi4gKi9cclxuICAgIGFkZGVuZHVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzLCBpZiB0aGlzIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSBhbiwgaWYgeWVzLCB3aXRoIHdoYXQgc3RhdHVzLiAqL1xyXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGhvbGRzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdGhhdCdzIG9ubHkgdmFsaWQgaW4gY29tbWVyY2UgZXhjaGFuZ2UgcGhhc2VzLiAqL1xyXG4gICAgY29tbWVyY2VQcm9wZXJ0aWVzPzogU2VydmljZVNwZWNpZmljYXRpb25Db21tZXJjZVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBpbnRlcm5hbGx5IHVzZWQgZHVyaW5nIG1hcHBpbmcgb3BlcmF0aW9ucyB0byB0ZW1wb3JhcmlseSBob2xkIGluZm9ybWF0aW9uIGFib3V0IHJlbW92ZWQgSXRlbU51bWJlclNjaGVtYXMuIFRob3NlIHNjaGVtYXMgYXJlIHNldCB0byBudWxsIGR1cmluZyB0aGUgbWFwcGluZyBwcm9jZXNzIHRvIGVuc3VyZSB0aGF0IHNjaGVtYXMgaW4gZWxlbWVudHMgaGlnaGVyIHVwIGluIHRoZSBoaWVyYXJjaHkgYXJlIGNvcnJlY3RseSBwYXNzZWQgZG93biB0byBjaGlsZCBlbGVtZW50cy4gKi9cclxuICAgIGl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uPzogSXRlbU51bWJlclNjaGVtYU1hcHBpbmdPcGVyYXRpb24gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBpbnRlcm5hbGx5IHVzZWQgZHVyaW5nIG1hcHBpbmcgb3BlcmF0aW9ucyB0byB0ZW1wb3JhcmlseSBob2xkIGluZm9ybWF0aW9uIGFib3V0IGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zICovXHJcbiAgICBjb21wbGVtZW50aW5nUG9zaXRpb25EYXRhPzogQ29tcGxlbWVudGluZ1Bvc2l0aW9uRGF0YSB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIEJhc2UgaW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIGVsZW1lbnRzIHdpdGhpbiBhbiBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJRWxlbWVudER0byB7XHJcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoaXMgaXMgdXNlZCB0byBzdG9yZSB0aGUgR0FFQiBYTUwgSWQgd2l0aGluIHRoaXMgSUVsZW1lbnQuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXHJcbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBzdHJpbmcgcHJvcGVydHkgaXMgc2hhcmVkIGJ5IGFsbCBJRWxlbWVudHMsIGFuZCBpbmRpY2F0ZXMgaWYgdGhlIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSwgYSAnTmFjaHRyYWcnIGluIEdlcm1hbi4gKi9cclxuICAgIGFkZGVuZHVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcjogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBkZXNjcmliZXMgYW4gZXh0ZXJuYWwgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2d1ZUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIENhdGFsb2d1ZS4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cclxuICAgIGdhZWJYbWxJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgbmFtZSB0aGF0IGlzIGdpdmVuIGZvciB0aGlzIGNhdGFsb2d1ZS4gKi9cclxuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGNhdGFsb2d1ZS4gKi9cclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIGdpdmVuLCB0aGlzIGdpdmVzIGEgY2xhc3NpZmljYXRpb24gZm9yIHRoZSBjb250ZW50cyBvZiB0aGUgY2F0YWxvZ3VlICovXHJcbiAgICBjYXRhbG9ndWVUeXBlPzogQ2F0YWxvZ3VlVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IG1heSBob2xkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhdGFsb2d1ZSB0eXBlLiBJdCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGluIEdBRUIgWE1MIGV4Y2hhbmdlIHRvIGNhcnJ5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgY2F0YWxvZ3VlIHR5cGUsIGJ1dCBpdCdzIG90aGVyd2lzZSBqdXN0IGEgZnJlZSB0ZXh0IGZpZWxkLiAqL1xyXG4gICAgY2F0YWxvZ3VlVHlwZURldGFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIHRoZSB0eXBlIG9mIGEgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xyXG5leHBvcnQgZW51bSBDYXRhbG9ndWVUeXBlRHRvIHtcclxuICAgIFVua25vd24gPSBcIlVua25vd25cIixcclxuICAgIExvY2F0aW9uID0gXCJMb2NhdGlvblwiLFxyXG4gICAgRElOMjc2ID0gXCJESU4yNzZcIixcclxuICAgIENvc3RVbml0ID0gXCJDb3N0VW5pdFwiLFxyXG4gICAgV29ya0NhdGVnb3J5ID0gXCJXb3JrQ2F0ZWdvcnlcIixcclxuICAgIE9lbm9ybUIxODAxQ29zdEdyb3VwID0gXCJPZW5vcm1CMTgwMUNvc3RHcm91cFwiLFxyXG4gICAgQklNID0gXCJCSU1cIixcclxuICAgIEF0dGFjaG1lbnQgPSBcIkF0dGFjaG1lbnRcIixcclxufVxyXG5cclxuLyoqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBsaW5rIGRhdGEgYmV0d2VlbiBjYXRhbG9ndWVzIGFuZCBvYmplY3RzLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2d1ZVJlZmVyZW5jZUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGlzIHBvaW50cyB0byB0aGUgaXRlbSBpbiB0aGUgY2F0YWxvZ3VlIGl0c2VsZi4gVGhpcyBtZWFucyB0aGF0LCBmb3IgZXhhbXBsZSB3aGVuIHRoaXMgcXVhbnRpdHkgYXNzaWdubWVudCByZWZlcmVuY2VzIGEgXCJESU4gMjc2XCIgY2F0YWxvZ3VlLCB0aGlzIHByb3BlcnR5IGluZGljYXRlcyB0aGUgbnVtYmVyIC8gaWRlbnRpZmllciAvIGtleSBpbiBESU4gMjc2IHRoYXQgaXMgcmVmZXJlbmNlZC4gKi9cclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZUtleT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgSWQgb2YgdGhlIENhdGFsb2d1ZVJlZmVyZW5jZSB0aGF0IGlzIHRhcmdldGVkIGJ5IHRoaXMgaXRlbS4gU2V0IHRoaXMgcHJvcGVydHkgdG8gc2V0IHRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZS4gKi9cclxuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZUlkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVSZWZlcmVuY2UgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xyXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHJldHVybnMgdGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlLiBXaWxsIHJldHVybiBudWxsIGlmIHRoZXJlIGlzIG5vIHJlZmVyZW5jZSBvciB0aGUgY2F0YWxvZ3VlIGlzIG5vdCBwcmVzZW50IGluIHRoZSBQcm9qZWN0Q2F0YWxvZ3Vlcy4gKi9cclxuICAgIHJlYWRvbmx5IGNhdGFsb2d1ZT86IENhdGFsb2d1ZUR0byB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIEEgUG9zaXRpb24gaXMgdGhlIG1haW4gaXRlbSB0eXBlIGluIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGFza3MgdG8gYmUgZG9uZSwgdGhlaXIgcHJpY2VzLCBkZXNjcmlwdGlvbiwgYW1vdW50cyBldGMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb25EdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XHJcbiAgICAvKiogV2lsbCByZXR1cm4gdGhlIHByaWNlIHBlciB1bml0LCByb3VuZGVkIGFjY29yZGluZyB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBvciB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aHJlZSBkZWNpbWFsIHBsYWNlcyAqL1xyXG4gICAgcmVhZG9ubHkgdW5pdFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSB1bml0IHByaWNlIGZvciB0aGlzIHBvc2l0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFByaWNlQ29tcG9uZW50cyAqL1xyXG4gICAgdW5pdFByaWNlT3ZlcnJpZGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBQb3NpdGlvbidzIHRvdGFsIHF1YW50aXR5LCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xyXG4gICAgcmVhZG9ubHkgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBkaXJlY3RseSBzZXQgdGhlIHF1YW50aXR5IGZvciB0aGlzIHBvc2l0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFF1YW50aXR5Q29tcG9uZW50cyAqL1xyXG4gICAgcXVhbnRpdHlPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB0cnVlIGlmIHRoaXMgc3BlY2lmaWMgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGFzIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiBmb3IgYW55IGJhc2UgcG9zaXRpb24uICovXHJcbiAgICBpc0NvbXBsZW1lbnRpbmdQb3NpdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWYgSXNDb21wbGVtZW50aW5nUG9zaXRpb24gaXMgc2V0IHRvIHRydWUsIHRoaXMgd2lsbCBpbmRpY2F0ZSB3aGljaCBiYXNlIHBvc2l0aW9ucyBhcmUgdGFyZ2V0ZWQgYnkgdGhpcyBjb21wbGVtZW50aW5nIHBvc2l0aW9uLiAqL1xyXG4gICAgY29tcGxlbWVudHNQb3NpdGlvbnM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNwZWNpZnkgdGhlIHRvdGFsIHByaWNlIG9mIHRoaXMgcG9zaXRpb24gYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzdW0gb2YgdGhlIHRvdGFsIHByaWNlcyBvZiBiYXNlIHBvc2l0aW9ucyB0aGF0IHRoaXMgcG9zaXRpb24gY29tcGxlbWVudHMuIEl0IHdpbGwgZXNzZW50aWFsbHkgc2V0IHRoZSB0b3RhbCBwcmljZSBmb3IgdGhpcyBwb3NpdGlvbiB0byB0aGUgc3VtIG9mIGFsbCB0b3RhbCBwcmljZXMgb2YgdGhlIHBvc2l0aW9ucyBzcGVjaWZpZWQgaW4gQ29tcGxlbWVudHNQb3NpdGlvbnMgbXVsdGlwbGllZCBieSB0aGUgcGVyY2VudGFnZSBoZXJlLiBJZiBwcmVzZW50LCB0aGlzIGhhcyBwcmVjZWRlbmNlIG92ZXIgVW5pdFByaWNlT3ZlcnJpZGUgYXMgd2VsbCBhcyBRdWFudGl0eU92ZXJyaWRlLiAqL1xyXG4gICAgY29tcGxlbWVudGluZ1ByaWNlUGVyY2VudGFnZU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYSByZWFkIG9ubHkgcHJvcGVydHkgc2hvd2luZyB0aGUgdG90YWwgcHJpY2Ugb2YgdGhpcyBwb3NpdGlvbnMgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzdW0gb2YgdGhlIHRvdGFsIHByaWNlcyBvZiBhbGwgYmFzZSBwb3NpdGlvbnMsIGluIGNhc2UgdGhpcyBwb3NpdGlvbiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zLiBJZiB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIHRoaXMgd2lsbCBiZSBudWxsLiBBbHNvLCBpZiBubyBwcmljZXMgYXJlIHByZXNlbnQsIHRoaXMgd2lsbCBhbHNvIGJlIG51bGwuICovXHJcbiAgICBjb21wbGVtZW50aW5nUHJpY2VQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0YWcgb2YgdGhlIHVuaXQgdXNlZCBmb3IgdGhpcyBwb3NpdGlvbnMgcXVhbnRpdHkuICovXHJcbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBjb21wb25lbnRzIGZvciBsYWJvdXIgdGltZSBpbiB0aGlzIFBvc2l0aW9uLiAqL1xyXG4gICAgbGFib3VyQ29tcG9uZW50cz86IExhYm91clByaWNlQ29tcG9uZW50RHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzaW5nbGUgcHJpY2UgY29tcG9uZW50cyBpbiB0aGlzIFBvc2l0aW9uLiBQcmljZSBjb21wb25lbnRzIHNob3VsZCBub3QgYmUgaGFuZGxlZCBkaXJlY3RseSBvbiBhIHBlci1wb3NpdGlvbiBiYXNpcyBidXQgc2V0IGdsb2JhbGx5IGluIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xyXG4gICAgcHJpY2VDb21wb25lbnRzPzogUHJpY2VDb21wb25lbnREdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcXVhbnRpdHkgY29tcG9uZW50cyBvZiB0aGlzIFBvc2l0aW9uLiAqL1xyXG4gICAgcXVhbnRpdHlDb21wb25lbnRzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBGdXJ0aGVyIHN0cnVjdHVyaW5nIG9mIHRoaXMgUG9zaXRpb24uICovXHJcbiAgICBzdWJEZXNjcmlwdGlvbnM/OiBTdWJEZXNjcmlwdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyB0aGUgc3RhdHVzIG9mIHRoaXMgUG9zaXRpb24ncyBjb21pc3Npb24uICovXHJcbiAgICBjb21pc3Npb25TdGF0dXM/OiBDb21pc3Npb25TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogQSBsaXN0IG9mIHBvc2l0aW9ucyB0aGF0IGNvbXBsZW1lbnQgdGhpcyBQb3NpdGlvbi4gVGhlIHBvc2l0aW9ucyBhcmUgcmVmZXJlbmNlZCBieSB0aGVpciBHVUlEcy4gSXQgbWlnaHQgYmUgdXNlZCB0b2dldGhlciB3aXRoIENvbXBsZW1lbnRlZEJ5UXVhbnRpdGllcyBpbiBjYXNlIHRoYXQgb25seSBhIGdpdmVuIHF1YW50aXR5IGlzIGNvbXBsZW1lbnRlZCBieSBwb3NpdGlvbnMuICovXHJcbiAgICBjb21wbGVtZW50ZWRCeT86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdpbGwgaW5kaWNhdGUgaWYgdGhpcyBQb3NpdGlvbiBpcyBjb21wbGVtZW50ZWQgaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbiBieSBvdGhlciBQb3NpdGlvbnMuIEl0IGNhbiBub3QgYmUgc2V0IHRvIGZhbHNlIHdoZW4gdGhlcmUgYXJlIGVudHJpZXMgaW4gdGhlIENvbXBsZW1lbnRlZEJ5IHByb3BlcnR5LiAqL1xyXG4gICAgY29tcGxlbWVudGVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgYW1vdW50IGZvciB0aGlzIFBvc2l0aW9uIGlzIHRvIGJlIHNldCBieSB0aGUgYmlkZGVyLiAqL1xyXG4gICAgYW1vdW50VG9CZUVudGVyZWRCeUJpZGRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBiaWRkZXIgZGVtYW5kcyBmb3IgcHJpY2VzIHRvIGJlIGJyb2tlbiB1cCBpbnRvIHRoZWlyIHByaWNlIGNvbXBvbmVudHMuICovXHJcbiAgICBwcmljZUNvbXBvc2l0aW9uUmVxdWlyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIFBvc2l0aW9uIHNob3VsZCB1c2UgYSBkaWZmZXJlbnQgVGF4UmF0ZSB0aGFuIHdoYXQgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZSBQcm9qZWN0LiAqL1xyXG4gICAgdXNlRGlmZmVyZW50VGF4UmF0ZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogV2lsbCByZXR1cm4gZWl0aGVyIHRoZSBwYXJlbnQgU2VydmljZVNwZWNpZmljYXRpb24ncyBUYXhSYXRlIG9yIGl0J3Mgb3duIGlmIGl0IGhhcyBhIGRpZmZlcmVudCB2YWx1ZS4gKEZvciBleGFtcGxlLCBpbiBHZXJtYW55IFdhdGVyIGhhcyBhIGRpZmZlcmVudCBUYXhSYXRlIHRoYW4gcmVndWxhciBQb3NpdGlvbnMpICovXHJcbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyIGZvciB0aGlzIFBvc2l0aW9uLiAqL1xyXG4gICAgaXRlbU51bWJlcj86IEl0ZW1OdW1iZXJEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHJhdGUgb2YgZGVkdWN0aW9ucywgaS5lLiAwLjEybSBtZWFucyAxMiUgcHJpY2UgZGVkdWN0aW9uLiAqL1xyXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFJldHVybnMgdGhlIHByb2R1Y3Qgb2YgVW5pdFByaWNlIHRpbWVzIFF1YW50aXR5LiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIHRoaXMgUG9zaXRpb24uICovXHJcbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhpcyBpcyB0aGUgdG90YWwgcHJpY2UsIGZyb20gVG90YWxQcmljZSwgbm90IHRoZSB1bml0IHByaWNlIG9mIHRoZSBwb3NpdGlvbi4gKi9cclxuICAgIHJlYWRvbmx5IGRlZHVjdGVkUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgYSBwb3NpdGlvbi4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBwb3NpdGlvbiwgaXRzIEFsdGVybmF0aXZlVG8gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byB0aGUgaWQgb2YgdGhlIHBvc2l0aW9uIGl0IGNhbiByZXBsYWNlLiAqL1xyXG4gICAgcG9zaXRpb25UeXBlPzogUG9zaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyB0aGUgUHJpY2VUeXBlIG9mIHRoaXMgUG9zaXRpb24uICovXHJcbiAgICBwcmljZVR5cGU/OiBQcmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBwb3NpdGlvbiBpcyByZWd1bGFyIG9yIGRlc2NyaWJpbmcgYSBsYWJvdXIgLyBob3VybHkgcGFpZCB3b3JrIHNlcnZpY2UgKi9cclxuICAgIHNlcnZpY2VUeXBlPzogU2VydmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBkZXNjcmliZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBhIHByb2R1Y3QgYmVpbmcgdXNlZCB3aXRoaW4gdGhpcyBQb3NpdGlvbi4gRm9yIGV4YW1wbGUsIGEgcGlwZSBwb3NpdGlvbiwgcGVyIGxlbmd0aCB1bml0LCBjb3VsZCBiZSBjb21wb3NlZCBvZiBkaWZmZXJlbnQgcGlwZSBzZWdtZW50cywgZml0dGluZyBhbmQgb3RoZXIgYWNjZXNzb3J5IGFydGljbGVzLiAqL1xyXG4gICAgcHJvZHVjdERhdGE/OiBQcm9kdWN0RGF0YUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXHJcbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xyXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50IGNvbnRhaW5zIEJ1eWVyIG9yIEJpZGRlciBhZGRpdGlvbnMgdG8gdGhlIHRleHQuICovXHJcbiAgICBhZGRpdGlvblR5cGU/OiBBZGRpdGlvblR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBRdWFudGl0eSBhc3NpZ25tZW50cyBhcmUsIGluIGNvbnRyYXN0IHRvIFN1YkRlc2NyaXB0aW9ucywgdXNlZCB0byBjYXRlZ29yaXplIHBhcnRzIG9mIHRoaXMgUG9zaXRpb24uIEZvciBleGFtcGxlLCBpdCBjb3VsZCBiZSBjYXRlZ29yaXplZCBieSBjb3N0IGdyb3VwIC0gZS5nLiBhIFBvc2l0aW9uIGRlc2NyaWJpbmcgY29uY3JldGUgd2FsbHMgY291bGQgZm9sbG93IHRoZSBHZXJtYW4gRElOIDI3NiBDb3N0IEdyb3VwcyBTdGFuZGFyZCBhbmQgc3BlY2lmeSB0aGF0IG9mIHRoZSB0b3RhbCAxLjAwMG3CsiB3YWxsLCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgZXh0ZXJpb3Igd2FsbHMgYW5kIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBpbnRlcmlvciB3YWxscy4gVGhleSB3b3VsZCB0aGVuIGhhdmUgZGlmZmVyZW50IGNvc3QgZ3JvdXBzIGFzc29jaWF0ZWQsIGUuZy4gZm9yIGFjY291bnRpbmcgcHVycG9zZXMuICovXHJcbiAgICBxdWFudGl0eUFzc2lnbm1lbnRzPzogUXVhbnRpdHlBc3NpZ25tZW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIENvbW1lcmNlUHJvcGVydGllcyBzdXBwb3J0IHNwZWNpYWxpemVkIGluZm9ybWF0aW9uIHRoYXQgaXMgb25seSB1c2VmdWwgaW4gR0FFQiBYTUwgOXggZGF0YSBleGNoYW5nZSBwaGFzZXMuIEl0IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYXJ0aWNsZSBpbmZvcm1hdGlvbi4gKi9cclxuICAgIGNvbW1lcmNlUHJvcGVydGllcz86IENvbW1lcmNlUHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIHBvc2l0aW9uIGlzIGFuIEFsdGVybmF0aXZlLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgcG9zaXRpb24gaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBzZXQgdG8gYSB2YWx1ZSwgeW91IGNhbiBvcHRpb25hbGx5IGFsc28gc3BlY2lmeSBhbiBpZGVudGlmaWVyIHZpYSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgdG8gc3BlY2lmaXkgbXVsdGlwbGUgcG9zaXRpb25zIHRoYXQgbXVzdCBiZSB1c2VkIHRvZ2V0aGVyIHRvIGJlIGFuIGFsdGVybmF0aXZlIHRvIGEgc2luZ2xlIGJhc2UgcG9zaXRpb24uICovXHJcbiAgICBhbHRlcm5hdGl2ZVRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8uIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgcG9zaXRpb24gaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCBpZiB5b3Ugc3BlY2lmaXkgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgUG9zaXRpb25zIHdpdGggdGhlIHNhbWUgQWx0ZXJuYXRpdmVJZGVudGlmaWVyLCB5b3UgY2FuIGluZGljYXRlIHRoYXQgdG8gcmVwbGFjZSBhIHNpbmdsZSBiYXNlIFBvc2l0aW9uLCBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBQb3NpdGlvbnMgc2hvdWxkIGJlIHVzZWQuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgcG9zaXRpb24gdmlhIEFsdGVybmF0aXZlVG8uICovXHJcbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUbyBhbmQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIuIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgcG9zaXRpb24gaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCB5b3UgY2FuIHNwZWNpZnkgdGhlIGlkIChpbiBpbnRlZ2VyIGZvcm1hdCkgZm9yIHRoZSBhbHRlcm5hdGl2ZSBncm91cCB0aGlzIHBvc2l0aW9uIGJlbG9uZ3MgdG8uIEl0J3MgZGlmZmVyZW50IHRvIEFsdGVybmF0aXZlSWRlbnRpZmllciBpbiB0aGF0IHRoZSBvdGhlciBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGlkIG9mIHRoZSBncm91cCwgd2hpbGUgdGhpcyBwcm9wZXJ0eSBoZXJlIGRlc2NyaWJlcyB0aGUgZ3JvdXAgaXRzZWxmLiBJZiBhIHBvc2l0aW9uIG9ubHkgaGFzIHNldCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllciBidXQgbm90IEFsdGVybmF0aXZlSWRlbnRpZmllciwgdGhlbiBpdCBsaWtlbHkgaXMgYSBiYXNlIHBvc2l0aW9uIGZvciBhIHNwZWNpZmljIGdyb3VwLiBUaGlzIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gdjIuOS4wIHRvIGJlIGFibGUgdG8gbW9kZWwgYm90aCBwb3NpdGlvbiBhbmQgZ3JvdXAgaWRzIGZvciBhbHRlcm5hdGl2ZSBncm91cCBjb21iaW5hdGlvbnMuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgcG9zaXRpb24gdmlhIEFsdGVybmF0aXZlVG8uICovXHJcbiAgICBhbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHRydWUsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBwb3NpdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGx1bXAgc3VtLCBcIlBhdXNjaGFsXCIgaW4gR2VybWFuLiBUaGlzIG1lYW5zIHRoZSBwb3NpdGlvbiB0b3RhbCBwcmljZSB0aGF0IGlzIGJlaW5nIGludm9pY2VkIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBhY3R1YWwgcXVhbnRpdHkuIEluIHByYWN0aWNlLCBwYXJ0aWFsIGludm9pY2VzIGFyZSBzdGlsbCBvZnRlbiB1c2VkIGZvciBwYXJ0aWFsIHNlcnZpY2VzIHJlbmRlcmVkLiBUaGlzIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCB0aGUgcHJpY2UgY2FsY3VsYXRpb24gZm9yIHRoaXMgcG9zaXRpb24uIFR5cGljYWxseSwgdGhlIFF1YW50aXR5IHNob3VsZCBiZSBzZXQgdG8gMS4wIHdoZW4gdGhpcyBmbGFnIGlzIHVzZWQuICovXHJcbiAgICBpc0x1bXBTdW0/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaWRlbnRpZmllciBjYW4gYmUgdXNlZCB0byBwb2ludCB0byB0aGUgSWQgb2YgYSBwb3NpdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiB0aGF0IGFjdHMgYXMgYSBiYXNlIHBvc2l0aW9uLiBJdCBtYXRjaGVzIFwiQmV6dWdzcG9zaXRpb25cIiBpbiBHQUVCLiBUaGlzIGNhbiBiZSB1c2VkIGZvciBwb3NpdGlvbnMgdGhhdCByZXBlYXQgcGFydGlhbGx5IG9yIGFyZSBsaW5rZWQgdG9nZXRoZXIgKi9cclxuICAgIHJlcGV0aXRpb25Ubz86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIHYxQ29tcGF0aWJpbGl0eVByaWNlVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cclxuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBsaXN0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gcG9zaXRpb25zIHRoYXQgY29tcGxlbWVudCB0aGlzIG9uZSwgYWRkaXRpb25hbGx5IGFsc28gc3BlY2lmeWluZyBhIHF1YW50aXR5IGZvciB3aGljaCB0aGUgYWRkaXRpb24gaXMgaW50ZW5kZWQuIFRoaXMgZG9lcyBub3QgcmVwbGFjZSB0aGUgQ29tcGxlbWVudGVkQnkgcHJvcGVydHkgYW5kIHRoZXJlIGFyZSBubyBhdXRvbWF0aWMgY2hlY2tzIGJlaW5nIGRvbmUgYmV0d2VlbiB0aGVzZSB0d28gcHJvcGVydGllcywgc28gaXQncyB1cCB0byB0aGUgdXNlciBjb2RlIHRvIGVuc3VyZSBkZWxldGlvbnMgKGFuZCBhZGRpdGlvbnMsIGlmIGRlc2lyZWQpIGFyZSBwZXJmb3JtZWQgZm9yIGJvdGggcHJvcGVydGllcy4gV2hlbiBjb3B5aW5nIHdpdGhpbmcga2VlcGluZyBJZHMsIHRoaXMgbGlzdCB3aWxsIG5vdCBiZSBwYXJ0IG9mIHRoZSBjb3B5IHByb2Nlc3MsIHNpbmNlIGl0IHdvdWxkIG9ubHkgY29udGFpbiBxdWFudGl0aWVzIHdpdGhvdXQgYWN0dWFsIHBvc2l0aW9uIHJlZmVyZW5jZXMuIENvbnRhaW5lcnMsIGhvd2V2ZXIsIHdpbGwgcmVidWlsZCB0aGUgbGlzdCB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gcmVmZXJlbmNlcyB3aGVuIGNvcHlpbmcgcG9zaXRpb25zIHRoYXQgY29udGFpbiBlbnRyaWVzIGhlcmUuICovXHJcbiAgICBjb21wbGVtZW50ZWRCeVF1YW50aXRpZXM/OiBDb21wbGVtZW50ZWRCeVF1YW50aXR5RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyBzaG91bGQgYmUgZXhlY3V0ZWQgaW4gcHJhY3RpY2UuIE9mdGVuLCB0aGUgcG9zaXRpb24gaXRzZWxmIHN0aWxsIGhhcyB0ZXh0IG9mIGl0cyBvd24gdG8gaGlnaGxpZ2h0IGRldmlhdGlvbnMgZnJvbSB0aGF0IG9yIGFkZCBtb3JlIGRldGFpbHMuICovXHJcbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiBhIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBvZmZlcmVkLiBUaGlzIGlzIHR5cGljYWxseSBvbmx5IGV4cGVjdGVkIHRvIGJlIHRydWUgd2hlbiB0aGUgZXhjaGFuZ2UgcGhhc2Ugb2YgdGhlIHBhcmVudCBTZXJ2aWNlU3BlY2lmaWNhdGlvbiBpcyBPZmZlciwgYW5kIGl0IG1lYW5zIHRoYXQgdGhlIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBvZmZlcmVkIGF0IGFsbC4gKi9cclxuICAgIG5vdE9mZmVyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIFBvc2l0aW9ucyBhbmQgZXh0ZW5kcyB0aGUgT2Vub3JtUHJvcGVydGllcyBiYXNlIGNsYXNzLiAqL1xyXG4gICAgb2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzPzogT2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXHJcbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGhpZXJhcmNoeSBsZXZlbC4gSXQncyBzZXQgYXV0b21hdGljYWxseSB3aGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBQcm9qZWN0LCBhbmQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGhpZXJhcmNoeSBsZXZlbCBvZiB0aGUgY3VycmVudCBlbGVtZW50LiAqL1xyXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXHJcbiAgICBhZGRlbmR1bVN0YXR1cz86IEFkZGVuZHVtU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNhbiBvcHRpb25hbGx5IGJlIHVzZWQgaW4gR0FFQiBleGNoYW5nZSBzY2VuYXJpb3MuIEl0IGlzIG9ubHkgbWVhbmluZ2Z1bCBpZiB0aGlzIHBvc2l0aW9uIGl0c2VsZiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIG1lYW5pbmcgaWYgdGhpcyBwb3NpdGlvbiBpcyBtYXJrZWQgaW4gb3RoZXIgcG9zaXRpb25zIGluIHRoZWlyIENvbXBsZW1lbnRlZEJ5IGxpc3QuIFRoZW4sIGl0IHNwZWNpZmllcyBob3cgdGhlIGNvbXBsZW1lbnRpbmcgc2hvdWxkIGJlIGV4cHJlc3NlZCBpbiBHQUVCLiBCeSBkZWZhdWx0LCBwb3NpdGlvbnMgYXJlIGFsd2F5cyBleHBsaWNpdGx5IHJlZmVyZW5jZWQsIGJ1dCBvdGhlciBvcHRpb25zIGFyZSBwb3NzaWJsZS4gUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoZSBEYW5nbC5BVkEuQ29udmVydGVyIHBhY2thZ2UsIHdoaWNoIGlzIHVzZWQgZm9yIEdBRUIgZXhwb3J0cywgd2lsbCBjaGVjayBpZiB0aGUgZ2l2ZW4gdHlwZSBpcyB2YWxpZCBpbiB0aGUgY3VycmVudCBwcm9qZWN0IGNvbmZpZ3VyYXRpb24uIElmIG5vdCwgZGlyZWN0bHkgcmVmZXJlbmNlZCBwb3NpdGlvbnMgd2lsbCBiZSB1c2VkIGFzIGZhbGxiYWNrLiAqL1xyXG4gICAgZ2FlYkNvbXBsZW1lbnRpbmdUeXBlPzogUG9zaXRpb25Db21wbGVtZW50aW5nVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBIb2xkT3V0IHByb3BlcnRpZXMgZGVzY3JpYmUgc2VydmljZXMgdGhhdCBhcmUgdG8gYmUgcHJvdmlkZWQgYW5kIG1haW50YWluZWQgZm9yIGEgc3BlY2lmaWMgdGltZSwgZS5nLiBmZW5jZXMgb24gYSBjb25zdHJ1Y3Rpb24gc2l0ZS4gKi9cclxuICAgIGhvbGRPdXRQcm9wZXJ0aWVzPzogUG9zaXRpb25Ib2xkT3V0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgcHJvcGVydHksIHdoaWNoIGRpcmVjdGx5IGhvbGRzIGEgbnVtZXJpY2FsIHZhbHVlIGZvciBhbiBlc3RpbWF0ZWQgcXVhbnRpdHkuIEl0IGlzIG5vdCB1c2VkIGZvciBhbnkgcHJpY2UgY2FsY3VsYXRpb25zLiAqL1xyXG4gICAgZXN0aW1hdGVkUXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGhvbGRzIHByaWNlIGNhdGFsb2d1ZSBkYXRhLiBUaGVzZSBhcmUgcHJpY2VzIHRoYXQgbWF5IHJlcHJlc2VudCBhbiBlc3RpbWF0ZSwgYW5kIHRoZXkgdHlwaWNhbGx5IGNvbWUgZnJvbSBhIHByaWNlIGNhdGFsb2d1ZS4gKi9cclxuICAgIHByaWNlQ2F0YWxvZ3VlRGF0YT86IFByaWNlQ2F0YWxvZ3VlRGF0YUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcy4gKi9cclxuICAgIGlnbm9yZVByb2plY3RDYXRhbG9ndWVQcm9wYWdhdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBCYXNlZCBvbiB0aGUgUHJpY2VDb21wb25lbnQsIHRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGxhYm91ciB0aW1lIGNvbXBvbmVudHMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFib3VyUHJpY2VDb21wb25lbnREdG8ge1xyXG4gICAgLyoqIFRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcmljZSBjb21wb25lbnQuIFdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cclxuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCwgY2FsY3VsYXRlZCBwcmljZSBvZiB0aGlzIGNvbXBvbmVudC4gV2lsbCBtdWx0aXBseSB0aGUgY2FsY3VsYXRlZCBhbW91bnQgb2YgaG91cnMgd2l0aCB0aGUgU2VydmljZVNwZWNpZmljYXRpb25zIGhvdXJseSB3YWdlIHJhdGUuICovXHJcbiAgICByZWFkb25seSBwcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY29zdCBwZXIgaG91ciBvZiBtYW51YWwgbGFib3IuICovXHJcbiAgICBob3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXHJcbiAgICB2YWx1ZXM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgU2VydmljZVNwZWNpZmljYXRpb24ncyBzdGFuZGFyZCBIb3VybHlXYWdlIGlzIHRvIGJlIHVzZWQgb3IgYSBjdXN0b20gdmFsdWUuICovXHJcbiAgICB1c2VPd25Ib3VybHlXYWdlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdG90YWwsIGNhbGN1bGF0ZWQgdGltZSBvZiB0aGlzIGNvbXBvbmVudC4gV2lsbCByZXR1cm4gdGhlIHJlc3VsdCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxUaW1lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cclxuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIGhvbGRzIG1lYW5zIHRvIGNhbGN1bGF0ZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbnMgZnJvbSBnaXZlbiBzdHJpbmdzLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENhbGN1bGF0aW9uRHRvIHtcclxuICAgIC8qKiBEZXNjcmlwdGl2ZSB0ZXh0IGZvciB0aGlzIGNhbGN1bGF0aW9uLiAqL1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBDYWxjdWxhdGlvbidzIG1hdGhlbWF0aWNhbCBleHByZXNzaW9uLiBQbGVhc2Ugbm90ZSB0aGF0IHRob3VzYW5kcyBzZXBhcmF0b3JzIGFyZSBub3Qgc3VwcG9ydGVkLiBCb3RoIGNvbW1hIGFuZCBwb2ludCB3aWxsIGJlIHRyZWF0ZWQgYXMgZGVjaW1hbCBzZXBhcmF0b3JzLiAqL1xyXG4gICAgZm9ybXVsYT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY2FsY3VsYXRlZCByZXN1bHQgZnJvbSB0aGUgZm9ybXVsYSwgMCBpZiBpbnZhbGlkLiAqL1xyXG4gICAgcmVhZG9ubHkgcmVzdWx0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdoZXRoZXIgdGhlIEZvcm11bGEgaXMgYSB2YWxpZCBleHByZXNzaW9uLiAqL1xyXG4gICAgcmVhZG9ubHkgdmFsaWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdpbGwgYmUgLTEgaWYgdGhlIEZvcm11bGEgaXMgY29ycmVjdCwgZWxzZSBpdCB3aWxsIHNob3cgdGhlIHBvc2l0aW9uIGluIHRoZSBmb3JtdWxhIHdoZXJlIGFuIGVycm9yIHdhcyBlbmNvdW50ZXJlZC4gVGhpcyBpcyBhIHplcm8gYmFzZWQgaW5kZXguICovXHJcbiAgICByZWFkb25seSBlcnJvclBvc2l0aW9uSW5MaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgQ2FsY3VsYXRpb24uIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cclxuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUmVmZXJlbmNlZCBjYXRhbG9ndWVzIGZvciB0aGlzIENhbGN1bGF0aW9uLiAqL1xyXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBwcm92aWRlcyBtZWFucyB0byBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIHByaWNlIGFuZCBpdCdzIGNvbXBvc2l0aW9uLiBOb3RlIHRoYXQgdGhpcyBpcyByZWZlcmVuY2luZyB0byBhIHNpbmdsZSBwcmljZSBjb21wb25lbnQsIHNvIGZvciBleGFtcGxlIGEgUG9zaXRpb24gd291bGQgaGF2ZSBhIGxpc3Qgb2YgUHJpY2VDb21wb25lbnRzLCBvbmUgZm9yIE1hdGVyaWFsLCBvbmUgZm9yIExhYm91ciBldGMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VDb21wb25lbnREdG8ge1xyXG4gICAgLyoqIFRoZSB0b3RhbCwgY2FsY3VsYXRlZCBwcmljZSBvZiB0aGlzIGNvbXBvbmVudC4gKi9cclxuICAgIHJlYWRvbmx5IHByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcmljZSBjb21wb25lbnQuIFdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cclxuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXHJcbiAgICB2YWx1ZXM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cclxuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIGFwcGVuZGVkIHRvIGEgUG9zaXRpb24gYW5kIGlzIHVzZWQgdG8gc2VwYXJhdGUgdGhlIGNvbXBsZXRlIFBvc2l0aW9uIGludG8gc21hbGxlciBhbW91bnRzIHRvIGJlIGRlc2NyaWJlZCBzZXBhcmF0ZWx5LCBmb3IgZXhhbXBsZSBjb25jcmV0ZSB3YWxscyBjb3VsZCBiZSBhdHRhY2hlZCB0byBkaWZmZXJlbnQgYnVpbGRpbmcgc3RvcmV5cy4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTdWJEZXNjcmlwdGlvbkR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBSZXR1cm5zIHRoZSB0b3RhbCBjYWxjdWxhdGVkIHN1bSBvZiBhbGwgcXVhbnRpdHkgYXNzaWdubWVudHMuIFdpbGwgcmV0dXJuIHRoZSByZXN1bHQgcm91bmRlZCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcy4gKi9cclxuICAgIHJlYWRvbmx5IHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSBxdWFudGl0eSBmb3IgdGhpcyBzdWIgZGVzY3JpcHRpb24uIFRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZ2l2ZW4gUXVhbnRpdHlDb21wb25lbnRzICovXHJcbiAgICBxdWFudGl0eU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEhvbGRzIHF1YW50aXR5IGluZm9ybWF0aW9uIGZvciB0aGlzIHN1YiBkZXNjcmlwdGlvbi4gUXVhbnRpdHkgaXMgbGlzdGVuaW5nIHRvIGNoYW5nZXMgaGVyZSBhbmQgaXMgcmVwb3J0aW5nIHRoZSB0b3RhbCBzdW0gb2YgYWxsIHF1YW50aXR5IGNvbXBvbmVudHMuICovXHJcbiAgICBxdWFudGl0eUNvbXBvbmVudHM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgYmlkZGVyIGlzIGFza2VkIHRvIHNwZWNpZnkgYW4gYW1vdW50LiAqL1xyXG4gICAgYW1vdW50VG9CZUVudGVyZWRCeUJpZGRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBTdWJEZXNjcmlwdGlvbi4gKi9cclxuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXHJcbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xyXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWYgdGhpcyBpcyBnaXZlbiwgdGhlbiB0aGUgc3ViIGRlc2NyaXB0aW9uIGhhcyBhIGRpZmZlcmVudCB1bml0IHRhZyB0aGFuIHRoZSBwYXJlbnQgcG9zaXRpb24uICovXHJcbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXHJcbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQgY29udGFpbnMgQnV5ZXIgb3IgQmlkZGVyIGFkZGl0aW9ucyB0byB0aGUgdGV4dC4gKi9cclxuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cclxuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyAob3Igc3ViIGRlc2NyaXB0aW9ucykgc2hvdWxkIGJlIGV4ZWN1dGVkIGluIHByYWN0aWNlLiBPZnRlbiwgdGhlIHBvc2l0aW9uIChvciBzdWIgZGVzY3JpcHRpb24pIGl0c2VsZiBzdGlsbCBoYXMgdGV4dCBvZiBpdHMgb3duIHRvIGhpZ2hsaWdodCBkZXZpYXRpb25zIGZyb20gdGhhdCBvciBhZGQgbW9yZSBkZXRhaWxzLiBXaGVuIHdvcmtpbmcgd2l0aCBpbXBvcnQgYW5kIGV4cG9ydCBmZWF0dXJlcywgdGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHN1cHBvcnRlZCBpbiBHQUVCIDkwIGRhdGEgZXhjaGFuZ2UuICovXHJcbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlcyB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIENhbGN1bGF0aW9uLiBDYXRhbG9ndWVzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gVGhleSBhcmUgcHJvcGFnYXRlIHRvIGFsbCBjaGlsZCBlbGVtZW50cywgZS5nLiBvdGhlciBjb250YWluZXJzIGFuZCBRdWFudGl0eUFzc2lnbm1lbnRzLiBJbiB0aGUgY29udGV4dCBvZiBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uLCBhbGwgZWxlbWVudHMgc2hhcmUgdGhlIHNhbWUgaW5zdGFuY2Ugb2YgdGhlIGNvbGxlY3Rpb24uICovXHJcbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXHJcbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgZWxlbWVudFR5cGVEaXNjcmltaW5hdG9yPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogSW5kaWNhdGVzIHRoZSBvcmlnaW4gb2YgYW4gZWxlbWVudC4gKi9cclxuZXhwb3J0IGVudW0gQWRkaXRpb25UeXBlRHRvIHtcclxuICAgIE5vbmUgPSBcIk5vbmVcIixcclxuICAgIEJ5QnV5ZXIgPSBcIkJ5QnV5ZXJcIixcclxuICAgIEJ5QmlkZGVyID0gXCJCeUJpZGRlclwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8ge1xyXG4gICAgLyoqIFRoaXMgZW51bWVyYXRpb24gaWRlbnRpZmllcyBhIHByZS1rbm93biBzdGFuZGFyZCB1c2VkIGZvciByZWZlcmVuY2luZyBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb25zLiAqL1xyXG4gICAgc3RhbmRhcmRSZWZlcmVuY2VUeXBlPzogU3RhbmRhcmRSZWZlcmVuY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgc3RyaW5nIHByb3BlcnR5IGlzIHRoZSBpZGVudGlmaWVyIHRvIG1hcCB0byB0aGUgcmVmZXJlbmNlcyBzdGFuZGFyZC4gSXRzIHR5cGUgaXMgZ2l2ZW4gaW4gdGhlIFN0YW5kYXJkUmVmZXJlbmNlVHlwZSAqL1xyXG4gICAgc3RhbmRhcmRSZWZlcmVuY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhIHNwZWNpYWwgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiByZWZlcmVuY2UuIElmIHRoaXMgaXMgdXNlZCwgdGhlIFN0YW5kYXJkUmVmZXJlbmNlIHByb3BlcnR5IHNob3VsZCBub3QgYmUgc2V0LiAqL1xyXG4gICAgc3RsYlJlZmVyZW5jZT86IFNUTEJSZWZlcmVuY2VEdG8gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGVudW1lcmF0aW9uIGlkZW50aWZpZXMgYSBwcmUta25vd24gc3RhbmRhcmQgdXNlZCBmb3IgcmVmZXJlbmNpbmcgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9ucy4gKi9cclxuZXhwb3J0IGVudW0gU3RhbmRhcmRSZWZlcmVuY2VUeXBlRHRvIHtcclxuICAgIFVua25vd24gPSBcIlVua25vd25cIixcclxuICAgIFN0TEIgPSBcIlN0TEJcIixcclxuICAgIFN0TEsgPSBcIlN0TEtcIixcclxuICAgIFNUTEJCYXVaID0gXCJTVExCQmF1WlwiLFxyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3BlY2lhbGl6ZWQgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIi4gVGhlIFNUTEIgaXMgYSBjb21tZXJjaWFsIG9mZmVyaW5nIGFuZCBkZXNjcmliZXMgY29tbW9uIHNlcnZpY2VzIGluIHRoZSBjb25zdHJ1Y3Rpb24gc2VjdG9yLiBXaGVuIHRoaXMgaXMgdXNlZCwgdGhpcyBkZXNjcmliZXMgdGhlIGV4YWN0IHR5cGUgb2YgYSBzZXJ2aWNlIHZpYSBhIHJlZmVyZW5jZSB0byB0aGlzIHN0YW5kYXJkICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU1RMQlJlZmVyZW5jZUR0byB7XHJcbiAgICAvKiogVGhlIGRhdGUgb2YgdGhlIFNUTEIgdmVyc2lvbi4gVHlwaWNhbGx5LCBvbmx5IHRoZSBZZWFyIGFuZCBNb250aCBhcmUgdXNlZCAqL1xyXG4gICAgdmVyc2lvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBjYXRhbG9ndWUgd2l0aGluIHRoZSBTVExCICovXHJcbiAgICBjYXRhbG9ndWVOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBncm91cCBpbiBTVExCICovXHJcbiAgICBncm91cD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgY29zdCBncm91cCB0aGlzIHNlcnZpY2UgaXMgYXNzb2NpYXRlZCB3aXRoICovXHJcbiAgICBjb3N0R3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHNlcnZpY2UgYXJlYSAob3IgdHlwZSkgaW4gdGhlIFNUTEIgKi9cclxuICAgIHNlcnZpY2VBcmVhPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGtleXMgbWF5IG9wdGlvbmFsbHkgYmUgdXNlZCB0byBmdXJ0aGVyIHJlZmVyZW5jZSBtdWx0aXBsZSwgc3BlY2lmaWMgaXRlbXMgd2l0aGluIHRoZSBTVExCICovXHJcbiAgICBrZXlzPzogU1RMQktleUR0b1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGtleSByZWZlcmVuY2Ugd2l0aGluIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNUTEJLZXlEdG8ge1xyXG4gICAgLyoqIFRoaXMgaWRlbnRpZmllciBpcyByZXF1aXJlZCBhbmQgdW5pcXVlbHkgZGVzY3JpYmVzIGEgc2luZ2xlIHJlZmVyZW5jZSB3aXRoaW4gdGhlIFNUTEIgc3RhbmRhcmQuIEl0IG1hcHMgdG8gXCJBcnRDaHJJZGVudFwiIGluIEdBRUIgWE1MICovXHJcbiAgICBhcnRJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgaW5kZXggcHJvcGVydHkgZnVydGhlciBjYXRlZ29yaXplcyBhIHNpbmdsZSByZWZlcmVuY2Ugd2l0aGluIHRoZSBTVExCIHN0YW5kYXJkLiBJdCBtYXBzIHRvIFwiQXJ0Q2hJZHhcIiBpbiBHQUVCIFhNTCAqL1xyXG4gICAgYXJ0SW5kZXg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBpZGVudGlmaWVyIGZ1cnRoZXIgc3BlY2lmaWVzIHRoZSBleGVjdXRpb24ga2luZCBvZiB0aGUgcmVmZXJlbmNlIGluIHRoZSBTVExCIHN0YW5kYXJkLiBJdCBtYXBzIHRvIFwiQ2hWSWRlbnRcIiBpbiBHQUVCIFhNTCAqL1xyXG4gICAga2luZElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gaXRlbSBpcyBjb21taXNzaW9uZWQgKGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIGV4ZWN1dGVkKSwgcG9zdHBvbmVkIGZvciBsYXRlciBvciB1bmRlZmluZWQuICovXHJcbmV4cG9ydCBlbnVtIENvbWlzc2lvblN0YXR1c0R0byB7XHJcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxyXG4gICAgQ29tbWlzc2lvbmVkID0gXCJDb21taXNzaW9uZWRcIixcclxuICAgIFBvc3Rwb25lZCA9IFwiUG9zdHBvbmVkXCIsXHJcbiAgICBSZW1vdmVkID0gXCJSZW1vdmVkXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYXMgaWRlbnRpZmllciBvZiBhIGNlcnRhaW4gc2VydmljZSBzcGVjaWZpY2F0aW9uJ3MgZWxlbWVudCBhbmQgaXMgdW5pcXVlbHkgd2l0aGluIHRoZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbU51bWJlckR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIEl0ZW1OdW1iZXIgYXMgcG9pbnQgZGVsaW1pdGVkIHN0cmluZy4gV2lsbCBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiB1cHBlci0gYW5kIGxvd2VyY2FzZSBhbmQgcmV0dXJuIGFuIGFsbC1sb3dlcmNhc2UgcmVwcmVzZW50YXRpb24uIFdpbGwgY29uc2lkZXIgZmlyc3QgbnVtYmVycywgdGhlbiBjaGFyYWN0ZXJzLCBlLmcuIDFhIGlzIGNvbnNpZGVyZWQgcHJlY2VkaW5nIGFhLiBUcmFuc2Zvcm1hdGlvbiB0byBhbGwgbG93ZXJjYXNlIGNhbiBiZSBjb25maWd1cmVkIGluIHRoZSBJdGVtTnVtYmVyU2NoZW1hIHByb3BlcnR5LiAqL1xyXG4gICAgc3RyaW5nUmVwcmVzZW50YXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjaGFyYWN0ZXJzIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBJZGVudGlmaWVycyBtYXRjaCB0aGUgY3VycmVudCBJdGVtTnVtYmVyU2NoZW1hLiAqL1xyXG4gICAgcmVhZG9ubHkgaXNTY2hlbWFDb21wbGlhbnQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFVzZWQgZm9yIHJlcHJlc2VudGluZyBhbmQgdmFsaWRhdGluZyB0aGlzIEl0ZW1OdW1iZXIuICovXHJcbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBDb2xsZWN0aW9uIG9mIHRoZSBzaW5nbGUgaWRlbnRpZmllcnMgaW4gdGhpcyBJdGVtTnVtYmVyLiBQLmUuLCBcIjAyLjAzLjAwNFwiIHdpbGwgaGF2ZSB0aHJlZSBlbGVtZW50cyBcIjAyXCIsIFwiMDNcIiwgYW5kIFwiMDA0XCIuIFNpbmNlIFJlYWRPbmx5T2JzZXJ2YWJsZUNvbGxlY3Rpb25gMSBkb2VzIGhhdmUgdGhlIGV2ZW50IHNldCB0byBwcm90ZWN0ZWQsIGl0IGNhbiBiZSBhY2Nlc3NlZCBsaWtlIHRoaXM6IChpdGVtTnVtYmVyLklkZW50aWZpZXJzIGFzIElOb3RpZnlDb2xsZWN0aW9uQ2hhbmdlZCkuQ29sbGVjdGlvbkNoYW5nZWQgKi9cclxuICAgIGlkZW50aWZpZXJzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBpdGVtIG51bWJlciBpcyBhdCB0aGUgbG90IGxldmVsLiBGaW5kIG91dCBtb3JlIGFib3V0IGxvdHMgaW4gdGhlIGRvY3VtZW50YXRpb24uICovXHJcbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhIHplcm8gYmFzZWQgaGllcmFyY2h5IGxldmVsLiBJdCdzIHNldCBhdXRvbWF0aWNhbGx5IHdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIFByb2plY3QsIGFuZCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgaGllcmFyY2h5IGxldmVsIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuICovXHJcbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGlzIEl0ZW1OdW1iZXIgaXMgYXR0YWNoZWQgdG8gYW4gb2JqZWN0IG9mIHRoZSBQb3NpdGlvbiB0eXBlLiAqL1xyXG4gICAgcmVhZG9ubHkgaXNBdHRhY2hlZFRvUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgaXRlbU51bWJlclNjaGVtYUJlZm9yZU1hcHBpbmc/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBpcyBhIGNsYXNzaWZpY2F0aW9uIGZvciBQb3NpdGlvbiBlbGVtZW50cy4gKi9cclxuZXhwb3J0IGVudW0gUG9zaXRpb25UeXBlRHRvIHtcclxuICAgIFJlZ3VsYXIgPSBcIlJlZ3VsYXJcIixcclxuICAgIE9wdGlvbmFsID0gXCJPcHRpb25hbFwiLFxyXG4gICAgQWx0ZXJuYXRpdmUgPSBcIkFsdGVybmF0aXZlXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGluZGljYXRlcyB0aGUgcHJpY2UgdHlwZSBvZiBhIElQcmljZWRFbGVtZW50LiAqL1xyXG5leHBvcnQgZW51bSBQcmljZVR5cGVEdG8ge1xyXG4gICAgV2l0aFRvdGFsID0gXCJXaXRoVG90YWxcIixcclxuICAgIFdpdGhvdXRUb3RhbCA9IFwiV2l0aG91dFRvdGFsXCIsXHJcbn1cclxuXHJcbi8qKiBUaGUgc2VydmljZSB0eXBlIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiBzZXJ2aWNlIGEgUG9zaXRpb24gcmVwcmVzZW50cy4gKi9cclxuZXhwb3J0IGVudW0gU2VydmljZVR5cGVEdG8ge1xyXG4gICAgUmVndWxhciA9IFwiUmVndWxhclwiLFxyXG4gICAgSG91cmx5UGFpZFdvcmsgPSBcIkhvdXJseVBhaWRXb3JrXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgZGF0YSBhYm91dCBwcm9kdWN0cyBhbmQgdGhlaXIgdmVuZG9yICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdERhdGFEdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhpcyBQYXJ0eUluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgZGV0YWlscyBhYm91dCB0aGUgdmVuZG9yIG9mIHRoaXMgUHJvZHVjdERhdGEuICovXHJcbiAgICB2ZW5kb3I/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBjb2xsZWN0aW9uIG9mIEFydGljbGVEYXRhIHRoYXQgZGVzY3JpYmUgdGhpcyBwcm9kdWN0LCBlLmcuIGEgcGlwZSBwcm9kdWN0IGNvdWxkIGJlIGNvbXBvc2VkIG91dCBvZiBtdWx0aXBsZSBwaXBlIHNlZ21lbnRzIGFuZCBmaXR0aW5ncy4gKi9cclxuICAgIGFydGljbGVzPzogQXJ0aWNsZURhdGFEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXHJcbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xyXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGFydGljbGUsIHVzdWFsbHkgdXNlZCB3aXRoaW4gUHJvZHVjdERhdGEgKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlRGF0YUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGUgbmFtZSAob3IgYnJhbmQgbmFtZSkgZm9yIHRoaXMgYXJ0aWNsZSwgdXN1YWxseSBnaXZlbiBieSB0aGUgc3VwcGxpZXIgb3IgdmVuZG9yLiAqL1xyXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBBbiBhcnRpY2xlIG51bWJlciB0aGF0IGRlc2NyaWJlcyBpdCwgdXNlZnVsIHdoZW4gaW50ZWdyYXRpbmcgb3RoZXIgc3lzdGVtcy4gKi9cclxuICAgIGFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUXVhbnRpdHkgZm9yIHRoaXMgYXJ0aWNsZS4gSWYgdGhpcyBpcyB1c2VkIHdpdGhpbiBhIFBvc2l0aW9uLCB0aGUgcXVhbnRpdHkgaGVyZSBzaG91bGQgYmUgdGhlIHF1YW50aXR5IHJlcXVpcmVkIGZvciB0aGUgZnVsbCBxdWFudGl0eSBvZiB0aGUgcG9zaXRpb24sIG5vdCBmb3IgYSBzaW5nbGUgdW5pdC4gKi9cclxuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB1bml0IHRhZyBmb3IgdGhpcyBzaW5nbGUgQXJ0aWNsZURhdGEuICovXHJcbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgdGV4dCBlbGVtZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gZnVydGhlciBkZXNjcmliZSB0aGUgQXJ0aWNsZURhdGEuICovXHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXHJcbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xyXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogUXVhbnRpdHkgYXNzaWdubWVudHMgYXJlLCBpbiBjb250cmFzdCB0byBTdWJEZXNjcmlwdGlvbnMsIHVzZWQgdG8gY2F0ZWdvcml6ZSBwYXJ0cyBvZiB0aGVpciBwYXJlbnQgUG9zaXRpb24uIEZvciBleGFtcGxlLCBpdCBjb3VsZCBiZSBjYXRlZ29yaXplZCBieSBjb3N0IGdyb3VwIC0gZS5nLiBhIFBvc2l0aW9uIGRlc2NyaWJpbmcgY29uY3JldGUgd2FsbHMgY291bGQgZm9sbG93IHRoZSBHZXJtYW4gRElOIDI3NiBDb3N0IEdyb3VwcyBTdGFuZGFyZCBhbmQgc3BlY2lmeSB0aGF0IG9mIHRoZSB0b3RhbCAxLjAwMG3CsiB3YWxsLCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgZXh0ZXJpb3Igd2FsbHMgYW5kIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBpbnRlcmlvciB3YWxscy4gVGhleSB3b3VsZCB0aGVuIGhhdmUgZGlmZmVyZW50IGNvc3QgZ3JvdXBzIGFzc29jaWF0ZWQsIGUuZy4gZm9yIGFjY291bnRpbmcgcHVycG9zZXMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVhbnRpdHlBc3NpZ25tZW50RHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBxdWFudGl0eSBpbiB0aGlzIHF1YW50aXR5IGFzc2lnbm1lbnQgKi9cclxuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWUgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xyXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgUXVhbnRpdHlBc3NpZ25tZW50LiAqL1xyXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBob2xkcyBzcGVjaWFsaXplZCBpbmZvcm1hdGlvbiB0aGF0IGlzIHJlbGV2YW50IHRvIHRyYWRlIG9yIGNvbW1lcmNlIGJhc2VkIGRhdGEgZXhjaGFuZ2Ugc2NlbmFyaW9zLCBlLmcuIGJldHdlZW4gY3VzdG9tZXJzLCB2ZW5kb3JzLCBzdXBwbGllcnMgYW5kIGRpc3RyaWJ1dG9ycy4gSXQgaXMgdXNlZCB3aGVuIGV4cG9ydGluZyB0byBHQUVCIFhNTCA5eCBleGNoYW5nZSBwaGFzZXMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWVyY2VQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gYXJ0aWNsZSBudW1iZXIgZ2l2ZW4gYnkgdGhlIHN1cHBsaWVyLiAqL1xyXG4gICAgYXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIG1hcHMgdG8gRUFOIGluIEdBRUIgWE1MIGFuZCByZXByZXNlbnRzIGFuIEdUSU4gKGZvcm1lcmx5IEVBTikgYXJ0aWNsZSBudW1iZXIuICovXHJcbiAgICBlYW5HdGluQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm9JRCBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBJTE4gYXJ0aWNsZSBudW1iZXIuICovXHJcbiAgICBpbG5BcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgbWFwcyB0byBDYXRhbG9nTm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gaWRlbnRpZmllciBvZiBhIHNwZWNpZmljIGNhdGFsb2d1ZS4gVGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlIGlzIHVzdWFsbHkgYSBjdXN0b21lciBzcGVjaWZpYyBvbmUsIG5vdCByZWxhdGVkIHRvIENhdGFsb2d1ZVJlZmVyZW5jZXMuICovXHJcbiAgICBjYXRhbG9ndWVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBtYXBzIHRvIENhdGFsb2dBcnRObyBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhIGtleSB0aGF0IG1hcHMgdG8gYW4gZW50cnkgaW4gYSBzcGVjaWZpYyBjYXRhbG9ndWUuIFRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZSBpcyB1c3VhbGx5IGEgY3VzdG9tZXIgc3BlY2lmaWMgb25lLCBub3QgcmVsYXRlZCB0byBDYXRhbG9ndWVSZWZlcmVuY2VzLiAqL1xyXG4gICAgY2F0YWxvZ3VlQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIHRoZSBiYXNpcyBmb3IgcHJpY2VzIGZvciBhIHNpbmdsZSBwb3NpdGlvbi4gUHJpY2UgYmFzaXMgbWVhbnMgdGhhdCB0aGUgcHJpY2UgaXMgZ2l2ZW4gcGVyIHVuaXQgb2YgdGhlIGJhc2lzLCBlLmcuIHBlciBhIHBhY2sgb2YgZml2ZSB3aGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvICc1Jy4gKi9cclxuICAgIHByaWNlQmFzaXM/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBvcHRpb25hbCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSBhIHN1YiBwb3NpdGlvbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGUgY29tbWVyY2UgZXhjaGFuZ2UgKi9cclxuICAgIHN1YlBvc2l0aW9uSWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbiBhIGNvbW1lcmNlIGV4Y2hhbmdlLCB0aGlzIHByb3BlcnR5IGlzIHVzdWFsbHkgdXNlZCB0byByZWZlcmVuY2UgdGhlIGJhc2UgaXRlbSBudW1iZXIgb2YgYW4gdW5kZXJseWluZyBwaGFzZSA4MyBleGNoYW5nZSBmaWxlICovXHJcbiAgICBjdXN0b21lckJhc2VJdGVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBsaW5raW5nIHRvIGEgY29tcGxlbWVudGFyeSBwb3NpdGlvbiB3aXRoIGEgc3BlY2lmaWMgcXVhbnRpdHkgc2V0LiBGb3IgZXhhbXBsZSwgUG9zaXRpb24gJ0EnIGNvdWxkIGJlIGNvbXBsZW1lbnRpbmcgUG9zaXRpb24gJ0InIHdpdGggYSB0b3RhbCBxdWFudGl0eSBvZiAyMCB1bml0cyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRlZEJ5UXVhbnRpdHlEdG8ge1xyXG4gICAgLyoqIFRoZSBxdWFudGl0eSB0aGF0IGlzIGNvbXBsZW1lbnRlZC4gRS5nLiwgaWYgdGhlIGJhc2UgcG9zaXRpb24gaGFzIGEgcXVhbnRpdHkgb2YgMTAwIG3CsiBvZiBhIGJyaWNrIHdhbGwsIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiBtaWdodCBiZSBmb3IgJ3dhbGxzIHRoYXQgZXhjZWVkIDMgbSBoZWlnaHQnIGFuZCBmb3IgYSB0b3RhbCBxdWFudGl0eSBvZiAxMCBtwrIuICovXHJcbiAgICBxdWFudGl0eT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHRoZSByZWZlcmVuY2UgdG8gdGhlIElkIG9mIHRoZSBQb3NpdGlvbiB0aGF0IGlzIGNvbXBsZW1lbnRpbmcuIFRoaXMgbWVhbnMgaXQgZG9lcyBOT1QgcmVmZXJlbmNlIHRoZSBiYXNlIHBvc2l0aW9uIGJ1dCB0aGUgb25lIHRoYXQgY29udGFpbnMgdGhlIGFjdHVhbCBhZGRpdGlvbi4gKi9cclxuICAgIGNvbXBsZW1lbnRpbmdQb3NpdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gSXQgaXMgc3BlY2lhbCBmb3IgUG9zaXRpb25zIGFuZCBleHRlbmRzIHRoZSBPZW5vcm1Qcm9wZXJ0aWVzIGJhc2UgY2xhc3MuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgT2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xyXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xyXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGUgw5ZOb3JtICd3ZXNlbnRsaWNoZSBwb3NpdGlvbicgbWFyayBpcyBzZXQgKi9cclxuICAgIGlzTWFpblBvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGUgw5ZOb3JtIHBvc2l0aW9uIHdhcyBhICd1bmdldGVpbHRlcG9zaXRpb24nICh1bmRpdmlkZWQgcG9zaXRpb24pLiBUaGlzIHdpbGwgb25seSBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiB0aGUgcG9zaXRpb24gaXMgYWxzbyB0aGUgc29sZSBlbGVtZW50IGluc2lkZSBpdCdzIHBhcmVudCBncm91cCAqL1xyXG4gICAgaXNVbmRpdmlkZWRQb3NpdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW4gc29tZSDDlk5vcm0gZm9ybWF0cywgdGhlIHNob3J0IHRleHQgY2FuIGhhdmUgaXQncyBvd24gYWRkaXRpb24sIHNvIHRoZSB0ZXh0IGlzIHNwbGl0IHVwIGluIE9lbm9ybVNob3J0VGV4dCBhbmQgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gVG8gc2VyaWFsaXplIHRoaXMsIGVpdGhlciB0aGUgU2hvcnRUZXh0IHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgcG9zaXRpb24gbmVlZHMgdG8gYmUgbnVsbCwgb3IgT2Vub3JtU2hvcnRUZXh0ICcgJyBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBuZWVkcyB0byBtYXRjaCB0aGUgU2hvcnRUZXh0LiAqL1xyXG4gICAgb2Vub3JtU2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluIHNvbWUgw5ZOb3JtIGZvcm1hdHMsIHRoZSBzaG9ydCB0ZXh0IGNhbiBoYXZlIGl0J3Mgb3duIGFkZGl0aW9uLCBzbyB0aGUgdGV4dCBpcyBzcGxpdCB1cCBpbiBPZW5vcm1TaG9ydFRleHQgYW5kIE9lbm9ybVNob3J0VGV4dEFkZGl0aW9uIFRvIHNlcmlhbGl6ZSB0aGlzLCBlaXRoZXIgdGhlIFNob3J0VGV4dCBwcm9wZXJ0eSBvZiB0aGUgcGFyZW50IHBvc2l0aW9uIG5lZWRzIHRvIGJlIG51bGwsIG9yIE9lbm9ybVNob3J0VGV4dCAnICcgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gbmVlZHMgdG8gbWF0Y2ggdGhlIFNob3J0VGV4dC4gKi9cclxuICAgIG9lbm9ybVNob3J0VGV4dEFkZGl0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cclxuZXhwb3J0IGVudW0gT2Vub3JtT3JpZ2luQ29kZUR0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBGcmVlVGV4dCA9IFwiRnJlZVRleHRcIixcclxuICAgIEFkZGl0aW9uRGVzY3JpcHRpb24gPSBcIkFkZGl0aW9uRGVzY3JpcHRpb25cIixcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIGFuIGFkZGVuZHVtLCAnTmFjaHRyYWcnIGluIEdlcm1hbiAqL1xyXG5leHBvcnQgZW51bSBBZGRlbmR1bVN0YXR1c0R0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBSZWNvZ25pemVkID0gXCJSZWNvZ25pemVkXCIsXHJcbiAgICBGaWxlZCA9IFwiRmlsZWRcIixcclxuICAgIE9mZmVyZWQgPSBcIk9mZmVyZWRcIixcclxuICAgIFdpdGhkcmF3biA9IFwiV2l0aGRyYXduXCIsXHJcbiAgICBSZWplY3RlZCA9IFwiUmVqZWN0ZWRcIixcclxuICAgIFJlamVjdGlvbk9iamVjdGVkID0gXCJSZWplY3Rpb25PYmplY3RlZFwiLFxyXG4gICAgRm9ybWFsbHlBY2tub3dsZWRnZWQgPSBcIkZvcm1hbGx5QWNrbm93bGVkZ2VkXCIsXHJcbiAgICBBcHByb3ZlZCA9IFwiQXBwcm92ZWRcIixcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bSByZXByZXNlbnRzIHRoZSBkaWZmZXJlbnQgd2F5cyBpbiB3aGljaCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24gdHlwZSBjYW4gYmUgc3BlY2lmaWVkLiBJdCBpcyB0eXBpY2FsbHkgb25seSB1c2VkIGluIEdBRUIgZXhwb3J0cywgc2luY2UgaW4gRGFuZ2wuQVZBLCBjb21wbGVtZW50aW5nIHBvc2l0aW9ucyBhcmUgYWx3YXlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gKi9cclxuZXhwb3J0IGVudW0gUG9zaXRpb25Db21wbGVtZW50aW5nVHlwZUR0byB7XHJcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxyXG4gICAgQWxsUHJldmlvdXNNYXJrZWRQb3NpdGlvbnMgPSBcIkFsbFByZXZpb3VzTWFya2VkUG9zaXRpb25zXCIsXHJcbiAgICBBbGxQcmV2aW91c1Bvc2l0aW9ucyA9IFwiQWxsUHJldmlvdXNQb3NpdGlvbnNcIixcclxuICAgIFJlZmVyZW5jZWRQb3NpdGlvbnMgPSBcIlJlZmVyZW5jZWRQb3NpdGlvbnNcIixcclxufVxyXG5cclxuLyoqIFRoaXMgY2xhc3MgaG9sZHMgcHJvcGVydGllcyB0aGF0IGRlc2NyaWJlIHJldGVudGlvbiB0eXBlcyBpbiBwb3NpdGlvbi4gUmV0ZW50aW9uIC8gaG9sZCBvdXQgdXN1YWxseSBtZWFucyB0aGF0IGEgc2VydmljZSBpcyBwcm92aWRlZCBhbmQga2VwdCBhdmFpbGFibGUgZm9yIGEgc3BlY2lmaWMgYW1vdW50IG9mIHRpbWUsIGUuZy4gZmVuY2VzIG9uIGEgY29uc3RydWN0aW9uIHNpdGUgKi9cclxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbkhvbGRPdXRQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoZSBhY3R1YWwgdHlwZSAqL1xyXG4gICAgaG9sZE91dFR5cGU/OiBIb2xkT3V0VHlwZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgZHVyYXRpb24gb2YgdGhlIHBlcmlvZCAqL1xyXG4gICAgaG9sZE91dER1cmF0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0aW1lIHVuaXQgb2YgdGhlIHBlcmlvZCAqL1xyXG4gICAgaG9sZE91dER1cmF0aW9uVW5pdD86IEhvbGRPdXREdXJhdGlvblVuaXREdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUmVmZXJlbmNlcyB0byBiYXNlIHBvc2l0aW9ucyAqL1xyXG4gICAgYmFzZVBvc2l0aW9uUmVmZXJlbmNlcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVHlwZXMgb2YgcmV0ZW50aW9ucyB0byBiZSB1c2VkIGluIHBvc2l0aW9ucyAqL1xyXG5leHBvcnQgZW51bSBIb2xkT3V0VHlwZUR0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBCYXNlID0gXCJCYXNlXCIsXHJcbiAgICBFeHRlbnNpb24gPSBcIkV4dGVuc2lvblwiLFxyXG4gICAgUmVudCA9IFwiUmVudFwiLFxyXG59XHJcblxyXG4vKiogRHVyYXRpb24gdXNlZCBpbiByZXRlbnRpb24gcG9zaXRpb25zICovXHJcbmV4cG9ydCBlbnVtIEhvbGRPdXREdXJhdGlvblVuaXREdG8ge1xyXG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxyXG4gICAgTWludXRlcyA9IFwiTWludXRlc1wiLFxyXG4gICAgSG91cnMgPSBcIkhvdXJzXCIsXHJcbiAgICBEYXlzID0gXCJEYXlzXCIsXHJcbiAgICBXZWVrcyA9IFwiV2Vla3NcIixcclxuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXHJcbn1cclxuXHJcbi8qKiBQcmljZSBjYXRhbG9ndWUgZGF0YSByZXByZXNlbnRzIGFzc3VtZWQgb3IgZXN0aW1hdGVkIHByaWNlcyBmcm9tIGEgY2F0YWxvZ3VlIHNvdXJjZSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlQ2F0YWxvZ3VlRGF0YUR0byB7XHJcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIC8qKiBUaGUgbG93ZXIgYm91bmQgb2YgdGhlIHVuaXQgcHJpY2UgKi9cclxuICAgIHVuaXRQcmljZUZyb20/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHVwcGVyIGJvdW5kIG9mIHRoZSB1bml0IHByaWNlICovXHJcbiAgICB1bml0UHJpY2VUbz86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgYXZlcmFnZSB1bml0IHByaWNlICovXHJcbiAgICB1bml0UHJpY2VBdmVyYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBsb3dlciBib3VuZCBvZiB0aGUgd2FnZSBwcmljZSAqL1xyXG4gICAgd2FnZVByaWNlRnJvbT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHdhZ2UgcHJpY2UgKi9cclxuICAgIHdhZ2VQcmljZVRvPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBhdmVyYWdlIHdhZ2UgcHJpY2UgKi9cclxuICAgIHdhZ2VQcmljZUF2ZXJhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBBbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpcyB1c2VkIHRvIGdpdmUgbW9yZSBkZXRhaWxzIGZvciBjZXJ0YWluIGl0ZW1zLCBlc3BlY2lhbGx5IG9uIGhvdyB0aGV5IGFyZSBtZWFudCB0byBiZSBleGVjdXRlZC4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRpb25EZXNjcmlwdGlvbkR0byBleHRlbmRzIElFbGVtZW50RHRvIHtcclxuICAgIC8qKiBCbG9ja3Mgd2l0aGluIGFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGNvbnRhaW4gdGhlIGFjdHVhbCBpbmZvcm1hdGlvbi4gKi9cclxuICAgIGJsb2Nrcz86IE5vdGVUZXh0RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogTGFiZWxzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXHJcbiAgICBsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXHJcbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBSZXByZXNlbnRzIGFuIGVsZW1lbnQgdGhhdCBob2xkcyB0ZXh0IGluZm9ybWF0aW9uLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVUZXh0RHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xyXG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgdGV4dCBpcyBtZWFudCB0byBub3QgYmUgc2VlbiBhcyBwYXJ0IG9mIHRoZSByZWd1bGFyIGVsZW1lbnRzIGhpZXJhcmNoeSBidXQgYXMgYSBzcGVjaWFsIG9wZW5pbmcgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9qZWN0LiBGb3IgZXhhbXBsZSwgaW4gR0FFQiBYTUwsIHRoaXMgd291bGQgbWFwIHRvIHRoZSBHQUVCLkF3YXJkLkFkZFRleHQuIFR5cGljYWxseSwgc3VjaCB0ZXh0cyBkZXNjcmliZSBwcm9qZWN0LXdpZGUgY29udHJhY3R1YWwgZGVmaW5pdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXHJcbiAgICBpc09wZW5pbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIHRleHQgaXMgbWVhbnQgdG8gbm90IGJlIHNlZW4gYXMgcGFydCBvZiB0aGUgcmVndWxhciBlbGVtZW50cyBoaWVyYXJjaHkgYnV0IGFzIGEgc3BlY2lhbCBjbG9zaW5nIHRleHQgYXQgdGhlIGVuZCBvZiB0aGUgcHJvamVjdC4gRm9yIEV4YW1wbGUsIGluIEdBRUIgWE1MLCB0aGlzIHdvdWxkIG1hcCB0byB0aGUgR0FFQi5BZGRUZXh0LiBUeXBpY2FsbHksIHN1Y2ggdGV4dHMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgcHJvamVjdCB3aWRlIGZpbmlzaGluZyBkZXNjcmlwdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXHJcbiAgICBpc0Nsb3NpbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gKi9cclxuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xyXG4gICAgYWRkaXRpb25UeXBlPzogQWRkaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cclxuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXHJcbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBpbnRlcm5hbCBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gdGhpcyBOb3RlVGV4dC4gSXQgaXMgbm90IHN1cHBvcnRlZCBpbiBHQUVCIGltcG9ydCBvciBleHBvcnQuICovXHJcbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcmVwcmVzZW50cyBhIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbi4gVGhpcyBtZWFucyB0aGF0IGluc3RlYWQgb2Ygc29sZWx5IHJlbHlpbmcgb24gdGV4dHMgdG8gZGVzY3JpYmUgYSBzZXJ2aWNlLCBleHRlcm5hbCBzdGFuZGFyZHMgYW5kIGRlZmluaXRpb25zIGFyZSByZWZlcmVuY2VkIGZvciBhIGNvbW1vbiB1bmRlcnN0YW5kaW5nLiAqL1xyXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXHJcbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIE5vdGVUZXh0cy4gKi9cclxuICAgIG9lbm9ybU5vdGVUZXh0UHJvcGVydGllcz86IE9lbm9ybU5vdGVUZXh0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcclxuICAgIHJlYWRvbmx5IGhhc0JpZGRlckNvbW1lbnRJbkh0bWxMb25nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBOb3RlVGV4dHMuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgT2Vub3JtTm90ZVRleHRQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xyXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIGEgZ3JvdXBpbmcgSUVsZW1lbnQgdGhhdCBob2xkcyBvdGhlciBJRWxlbWVudHMgd2l0aGluLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XHJcbiAgICAvKiogVGhlIGhvdXJseSB3YWdlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xyXG4gICAgcmVhZG9ubHkgcHJvamVjdEhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHRheCByYXRlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xyXG4gICAgcHJvamVjdFRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHByaWNlIGNvbXBvbmVudHMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiBUaGV5IGFyZSBpZ25vcmVkIGR1cmluZyBKc29uIGRlc2VyaWFsaXphdGlvbiBiZWNhdXNlIHRoZXkgd2lsbCBiZSBzZXQgZnJvbSB0aGUgcGFyZW50IHByb2plY3QuICovXHJcbiAgICBwcm9qZWN0UHJpY2VDb21wb25lbnRzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuICovXHJcbiAgICBwcm9qZWN0SXRlbU51bWJlclNjaGVtYT86IEl0ZW1OdW1iZXJTY2hlbWFEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIElFbGVtZW50cyB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cclxuICAgIGVsZW1lbnRzPzogSUVsZW1lbnREdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgbGFiZWwgdXNlZCBpbiB0aGUgcGFyZW50IFByb2plY3QgdG8gbWFyayBsYWJvdXIgdGltZSwgZS5nLiBcIkhvdXJzXCIgb3IgXCJTdHVuZGVuXCIuICovXHJcbiAgICByZWFkb25seSBwcm9qZWN0TGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJdGVtTnVtYmVycyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJdGVtTnVtYmVyIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cclxuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJZHMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSWQgcy4gV2lsbCBhbHdheXMgaW5kaWNhdGUgZmFsc2Ugd2hlbiB0b2xkIHRvIGlnbm9yZSBkdXBsaWNhdGUgaXRlbSBudW1iZXJzLiAqL1xyXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIEl0ZW1OdW1iZXJzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xyXG4gICAgaWdub3JlRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzICovXHJcbiAgICBpZ25vcmVQcm9qZWN0Q2F0YWxvZ3VlUHJvcGFnYXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEluZGljYXRlIGlmIGR1cGxpY2F0ZWQgSWRzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xyXG4gICAgaWdub3JlRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogUHJpY2UgY29tcG9zaXRpb24gYnkgdGF4IHJhdGUuICovXHJcbiAgICB0b3RhbFByaWNlR3Jvc3NCeVRheFJhdGU/OiBHcm9zc1ByaWNlQ29tcG9uZW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW50ZXJuYWxseSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBwcm9wYWdhdGlvbiBpcyBjdXJyZW50bHkgZG9uZSwgdGhpcyBpcyBkb25lIHRvIG5vdCByZWNhbGN1bGF0ZSBldmVyeSBzaW5nbGUgcmVzdWx0IGZyb20gYSBsb3Qgb2YgY2hhbmdlcyB3aGVuIGl0IGlzIHN1ZmZpY2llbnQgdG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBwcmljZSBhdCBvbmNlLiAqL1xyXG4gICAgaWdub3JlQ2hpbGRQcmljZVVwZGF0ZXM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIE5ldCBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXHJcbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEZhY3RvciBvZiBhcHBsaWVkIGRlZHVjdGlvbnMgdG8gdGhlIHRvdGFsIHByaWNlLiBGb3IgZXhhbXBsZSwgXCIwLjAzXCIgbWVhbnMgdGhhdCBhIDMlIGRlZHVjdGlvbiBpcyB0byBiZSBhcHBsaWVkLiAqL1xyXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBleGFjdCBhbW91bnQgb2YgdGhlIGRpc2NvdW50IGFzIGFuIGFic29sdXRlIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucywgc2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWxzbyBzZXQgYSBjYWxjdWxhdGVkIHZhbHVlIHRvIERlZHVjdGlvbkZhY3Rvciwgd2hpY2ggd2lsbCBhbHNvIGJlIHVwZGF0ZWQgaW4gY2FzZSB0aGUgdG90YWwgcHJpY2UgaXMgY2hhbmdlZCB0byByZWZsZWN0IGEgcmVsYXRpdmUgdmFsdWUgb2YgdGhlIGFic29sdXRlIGRpc2NvdW50IHN1bS4gKi9cclxuICAgIGFic29sdXRlRGVkdWN0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UncyB0b3RhbCBwcmljZS4gKi9cclxuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHRvdGFsIGdyb3NzIHByaWNlIGZvciB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlIGluY2x1ZGluZyBhbGwgY2hpbGQgZWxlbWVudHMuICovXHJcbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBQcmljZVR5cGUgb2YgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSwgd2hldGhlciBpdCBzaG91bGQgZmFjdG9yIGludG8gdG90YWwgY29zdHMgb3Igbm90LiAqL1xyXG4gICAgcHJpY2VUeXBlPzogUHJpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIERlc2NyaXB0aW9uIGZvciB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXAuICovXHJcbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIGdyb3VwIGlzIGNvbW1pc3Npb25lZCAoYW5kIHRoZXJlZm9yZSBzaG91bGQgYmUgZXhlY3V0ZWQpLCBwb3N0cG9uZWQgZm9yIGxhdGVyIG9yIHVuZGVmaW5lZC4gKi9cclxuICAgIGNvbWlzc2lvblN0YXR1cz86IENvbWlzc2lvblN0YXR1c0R0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgSXRlbU51bWJlciBmb3IgdGhpcyBJTnVtYmVyZWRFbGVtZW50IGludGVyZmFjZS4gKi9cclxuICAgIGl0ZW1OdW1iZXI/OiBJdGVtTnVtYmVyRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBncm91cCBpcyB0aGUgcGFyZW50IG9mIGEgbG90LiBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgd29ya2luZyB3aXRoIGxvdHMuICovXHJcbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogSWYgdGhpcyBncm91cCBpcyBhbiBhbHRlcm5hdGl2ZSBmb3IgYSBiYXNlIGdyb3VwLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgZ3JvdXAgaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBncm91cCB0byBhIGJhc2UgZ3JvdXAsIHRoZSBQcmljZVR5cGUgc2hvdWxkIHR5cGljYWxseSBiZSBzZXQgdG8gXCJXaXRob3V0VG90YWxcIiBzbyB0aGlzIGdyb3VwIGRvZXMgbm90IGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzLiBUaGUgUHJpY2VUeXBlIGlzIG5vdCBjaGFuZ2VkIHdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQgKi9cclxuICAgIGFsdGVybmF0aXZlVG8/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICB2MUNvbXBhdGliaWxpdHlQcmljZVR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gKi9cclxuICAgIG9lbm9ybVByb3BlcnRpZXM/OiBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGhpZXJhcmNoeSBsZXZlbC4gSXQncyBzZXQgYXV0b21hdGljYWxseSB3aGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBQcm9qZWN0LCBhbmQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGhpZXJhcmNoeSBsZXZlbCBvZiB0aGUgY3VycmVudCBlbGVtZW50LiAqL1xyXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXHJcbiAgICBhZGRlbmR1bVN0YXR1cz86IEFkZGVuZHVtU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgaW50ZXJuYWxseSB1c2VkIGR1cmluZyBtYXBwaW5nIG9wZXJhdGlvbnMgdG8gdGVtcG9yYXJpbHkgaG9sZCBpbmZvcm1hdGlvbiBhYm91dCByZW1vdmVkIEl0ZW1OdW1iZXJTY2hlbWFzLiBUaG9zZSBzY2hlbWFzIGFyZSBzZXQgdG8gbnVsbCBkdXJpbmcgdGhlIG1hcHBpbmcgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBzY2hlbWFzIGluIGVsZW1lbnRzIGhpZ2hlciB1cCBpbiB0aGUgaGllcmFyY2h5IGFyZSBjb3JyZWN0bHkgcGFzc2VkIGRvd24gdG8gY2hpbGQgZWxlbWVudHMuICovXHJcbiAgICBpdGVtTnVtYmVyU2NoZW1hTWFwcGluZ09wZXJhdGlvbj86IEl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8uIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgZ3JvdXAgaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCBpZiB5b3Ugc3BlY2lmaXkgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgd2l0aCB0aGUgc2FtZSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHlvdSBjYW4gaW5kaWNhdGUgdGhhdCB0byByZXBsYWNlIGEgc2luZ2xlIGJhc2UgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cCwgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgc2hvdWxkIGJlIHVzZWQuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgZ3JvdXAgdmlhIEFsdGVybmF0aXZlVG8uICovXHJcbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUbyBhbmQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIuIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgZ3JvdXAgaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCB5b3UgY2FuIHNwZWNpZnkgdGhlIGlkIChpbiBpbnRlZ2VyIGZvcm1hdCkgZm9yIHRoZSBhbHRlcm5hdGl2ZSBncm91cCB0aGlzIGdyb3VwIGJlbG9uZ3MgdG8uIEl0J3MgZGlmZmVyZW50IHRvIEFsdGVybmF0aXZlSWRlbnRpZmllciBpbiB0aGF0IHRoZSBvdGhlciBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGlkIG9mIHRoZSBncm91cCwgd2hpbGUgdGhpcyBwcm9wZXJ0eSBoZXJlIGRlc2NyaWJlcyB0aGUgZ3JvdXAgaXRzZWxmLiBJZiBhIGdyb3VwIG9ubHkgaGFzIHNldCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllciBidXQgbm90IEFsdGVybmF0aXZlSWRlbnRpZmllciwgdGhlbiBpdCBsaWtlbHkgaXMgYSBiYXNlIGdyb3VwIGZvciBhIHNwZWNpZmljIGdyb3VwLiBUaGlzIHByb3BlcnR5IGlzIG5vdCBjaGVja2VkIG9yIG1hbmFnZWQgYXV0b21hdGljYWxseSwgc28gaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgcHJvcGVydHkgdG8gYmVjb21lIGludmFsaWQsIGJ5IGZvciBleGFtcGxlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBidXQgbm90IHNldHRpbmcgYSBiYXNlIGdyb3VwIHZpYSBBbHRlcm5hdGl2ZVRvLiAqL1xyXG4gICAgYWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGlzIHVzZWQgaW4gYW4gRWxlbWVudENvbnRhaW5lckJhc2UgdG8gaG9sZCB0aGUgcHJpY2UgY29tcG9zaXRpb24uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3Jvc3NQcmljZUNvbXBvbmVudER0byB7XHJcbiAgICAvKiogVGhpcyBjb21wb25lbnRzIHRheCByYXRlLiAqL1xyXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHRoZSBmYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIGZvciB0aGlzIGNvbXBvbmVudCAqL1xyXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBuZXQgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXHJcbiAgICB0b3RhbE5ldD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcmVzdWx0aW5nIHByaWNlIGNvbXBvbmVudCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMgKi9cclxuICAgIHJlYWRvbmx5IHRvdGFsRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHRvdGFsIHRheCBhbW91bnQgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXHJcbiAgICByZWFkb25seSB0b3RhbFRheD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXHJcbiAgICByZWFkb25seSB0b3RhbEdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZSwgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xyXG4gICAgcmVhZG9ubHkgdG90YWxHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB0b3RhbCB0YXggYW1vdW50IGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXHJcbiAgICByZWFkb25seSB0b3RhbFRheERlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xyXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xyXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoaXMgYWJzdHJhY3QgY2xhc3MgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGhvbGQgcmVzdWx0cyBhYm91dCBhbiBpdGVtIG51bWJlciBzY2hlbWEgcmVtb3ZhbCBvcGVyYXRpb24uIEl0ZW0gbnVtYmVyIHNjaGVtYXMgYXJlIHJlbW92ZWQgZHVyaW5nIHRoZSBtYXBwaW5nIHByb2Nlc3MgdG8gYWxsb3cgdG9wLWRvd24gcHJvcGFnYXRpb24gYWZ0ZXIgY29udmVyc2lvbiwgYnV0IGFyZSB0aGVuIGFkZGVkIGJhY2sgdG8gdGhlIERUT3MgdG8gcHJlc2VydmUgdGhlIG9yaWdpbmFsIHNvdXJjZS4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtTnVtYmVyU2NoZW1hTWFwcGluZ09wZXJhdGlvbiB7XHJcbn1cclxuXHJcbi8qKiBJbmRpY2F0ZXMgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbidzIGV4Y2hhbmdlIHBoYXNlLCBiYXNlZCBvbiB0aGUgR0FFQiBleGNoYW5nZSBwaGFzZXMuICovXHJcbmV4cG9ydCBlbnVtIEV4Y2hhbmdlUGhhc2VEdG8ge1xyXG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcclxuICAgIEJhc2UgPSBcIkJhc2VcIixcclxuICAgIENvc3RFc3RpbWF0ZSA9IFwiQ29zdEVzdGltYXRlXCIsXHJcbiAgICBPZmZlclJlcXVlc3QgPSBcIk9mZmVyUmVxdWVzdFwiLFxyXG4gICAgT2ZmZXIgPSBcIk9mZmVyXCIsXHJcbiAgICBTaWRlT2ZmZXIgPSBcIlNpZGVPZmZlclwiLFxyXG4gICAgR3JhbnQgPSBcIkdyYW50XCIsXHJcbn1cclxuXHJcbi8qKiBJbmRpY2F0ZXMgd2hlcmUgYSBzZXJ2aWNlIHNwZWNpZmljYXRpb24gd2FzIG9yaWdpbmFsbHkgY3JlYXRlZC4gKi9cclxuZXhwb3J0IGVudW0gT3JpZ2luRHRvIHtcclxuICAgIFNlbGYgPSBcIlNlbGZcIixcclxuICAgIEdhZWI5MCA9IFwiR2FlYjkwXCIsXHJcbiAgICBHYWViMjAwMCA9IFwiR2FlYjIwMDBcIixcclxuICAgIEdhZWJYbWwgPSBcIkdhZWJYbWxcIixcclxuICAgIE9lbm9ybSA9IFwiT2Vub3JtXCIsXHJcbiAgICBSZWIgPSBcIlJlYlwiLFxyXG4gICAgU2lhID0gXCJTaWFcIixcclxufVxyXG5cclxuLyoqIEhvbGRzIGdsb2JhbCBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlSW5mb3JtYXRpb25EdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBwZXIgb25lIGhvdXIgb2YgbWFudWFsIGxhYm91ciB3b3JrIGluIHRoaXMgcHJvamVjdC4gKi9cclxuICAgIGhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGZpbmFsLCB0b3RhbCBwcmljZSB3aWxsIGJlIGRlZHVjdGVkIGJ5IHRoaXMgcmF0ZS4gKi9cclxuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIGdpdmVuIHdoZW4gdGhlcmUgaXMgb25seSBvbmUgZmxhdCBwcmljZSBmb3IgdGhlIHdob2xlIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbi4gKi9cclxuICAgIGZsYXRTdW0/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogR2xvYmFsIHRheCByYXRlIGZvciB0aGUgcHJvamVjdC4gTm90ZSB0aGF0IGNlcnRhaW4gZWxlbWVudHMgbWF5IGhhdmUgYSBkaWZmZXJlbnQsIHNwZWNpZmljIHRheCByYXRlLiAqL1xyXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgVGF4UmF0ZSBwcm9wZXJ0eSBpcyBhY3R1YWxseSB6ZXJvICgwKSBvciBpZiBpdCdzIGp1c3QgdW5zZXQuIFRoZSBUYXhSYXRlIGlzIGEgbm9uLW51bGxhYmxlIHByb3BlcnR5LCBzbyBpdCBjYW4ndCBiZSBudWxsIGFuZCB0aGVyZWZvcmUgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHVuc2V0IGFuZCB6ZXJvIHJlbGllcyBvbiB0aGlzIGFkZGl0aW9uYWwgcHJvcGVydHkuIFdoZW4gZXhwb3J0aW5nIHRvIEdBRUIsIHRoaXMgY2FuIGJlIHVzZWQgZS5nLiB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdGhlIHRheCByYXRlIHNob3VsZCBiZSBzZXJpYWxpemVkLiBUaGlzIHByb3BlcnR5IGlzIGF1dG9tdGljYWxseSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgVGF4UmF0ZSBpcyBzZXQgdG8gYW55IHZhbHVlLCBldmVuIHplcm8uIElmIHRoZSBUYXhSYXRlIGlzIG5vdCBzZXQgdG8gemVybywgdGhpcyBwcm9wZXJ0eSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgYW5kIGNhbiBub3QgYmUgc2V0IHRvIHRydWUuICovXHJcbiAgICBoYXNVbnNldFRheFJhdGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRyYWRlIGRpc2NvdW50cyBmb3Igb2ZmZXJlZCBpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiAqL1xyXG4gICAgdHJhZGVEaXNjb3VudHM/OiBUcmFkZURpc2NvdW50RHRvW10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IG9mZmVyZWQgdHJhZGUgZGlzY291bnRzIChTa29udG8gaW4gR2VybWFuKSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyYWRlRGlzY291bnREdG8ge1xyXG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKiogVGhlIGFtb3VudCBvZiBkYXlzIGZvciBob3cgbG9uZyBhIGRlY2xhcmVkIHRyYWRlIGRpc2NvdW50IGFwcGxpZXMuIE11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIsIG5lZ2F0aXZlIHZhbHVlcyB3aWxsIGJlIGlnbm9yZWQgYW5kIG5vdCBzZXQuICovXHJcbiAgICBkZWFkbGluZT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcmF0ZSBvZiB0aGUgdHJhZGUgZGlzY291bnQuICovXHJcbiAgICByYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogVGhpcyBjbGFzcyBkb2VzIG5vdCByZXByZXNlbnQgYSB0eXBpY2FsIGBUaW1lU3BhbmAgYnV0IGhhcyBhIHNjYWxhciB2YWx1ZSBpbnQgRHVyYXRpb24gYW5kIGEgRHVyYXRpb25Vbml0IFVuaXQgdG8gcmVwcmVzZW50IGR1cmF0aW9ucyBhcyB0eXBpY2FsbHkgdXNlZCBpbiBjb250cmFjdHMsIGUuZy4gNSBNb250aHMgKi9cclxuZXhwb3J0IGludGVyZmFjZSBXYXJyYW50eUR1cmF0aW9uRHRvIHtcclxuICAgIC8qKiBUaGUgc2NhbGFyIHZhbHVlIG9mIHRoZSBkdXJhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGJpZ2dlciB0aGFuIHplcm8gKD49IDApLiBOZWdhdGl2ZSB2YWx1ZXMgY2FuIG5vdCBiZSBzZXQgYW5kIHdpbGwgYmUgaWdub3JlZC4gKi9cclxuICAgIGR1cmF0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSB1bml0IG9mIHRoZSBkdXJhdGlvbiAqL1xyXG4gICAgdW5pdD86IER1cmF0aW9uVW5pdER0byB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgdW5pdCBvZiBhIGR1cmF0aW9uICovXHJcbmV4cG9ydCBlbnVtIER1cmF0aW9uVW5pdER0byB7XHJcbiAgICBNb250aHMgPSBcIk1vbnRoc1wiLFxyXG4gICAgWWVhcnMgPSBcIlllYXJzXCIsXHJcbn1cclxuXHJcbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgcHJvcGVydGllcyB1c2VkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHNjZW5hcmlvcyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uQ29tbWVyY2VQcm9wZXJ0aWVzRHRvIHtcclxuICAgIC8qKiBUaGUgZGF0ZSB1bnRpbCB0aGUgcHJpY2UgaXMgdmFsaWQgb3IgZml4ZWQuICovXHJcbiAgICBmaXhlZFByaWNlRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIGRhdGUgb2YgdGhlIGRlbGl2ZXJ5IHZvdWNoZXIgbm90ZS4gKi9cclxuICAgIGRlbGl2ZXJ5Vm91Y2hlckRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBhY3R1YWwgZGF0ZSBvZiBkZWxpdmVyeS4gKi9cclxuICAgIGRlbGl2ZXJ5RGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIG51bWJlciBvZiB0aGUgaW5xdWlyeSwgdXN1YWxseSBpbiBhIGNvbnRleHQgb2Ygb2ZmZXIgcmVxdWVzdHMuICovXHJcbiAgICBpbnF1aXJ5TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBudW1iZXIgb2YgdGhlIG9mZmVyLCB1c3VhbGx5IGluIGEgY29udGV4dCBvZiBhbiBvZmZlci4gKi9cclxuICAgIG9mZmVyTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBvcmRlciBudW1iZXIsIHVzdWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgYSBncmFudCBvciBjb250cmFjdC4gKi9cclxuICAgIG9yZGVyTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBvcmRlciBjb25maXJtYXRpb24gbnVtYmVyICovXHJcbiAgICBvcmRlckNvbmZpcm1hdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBkZWxpdmVyeSwgZS5nLiBvbiB0aGUgZGVsaXZlcnkgbm90ZSB2b3VjaGVyLiAqL1xyXG4gICAgZGVsaXZlcnlOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHJlZmVyZW5jZSBudW1iZXIgb2YgdGhlIGN1c3RvbWVyIC8gYnV5ZXIuICovXHJcbiAgICBjdXN0b21lclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgcmVmZXJlbmNlIG51bWJlciBvZiB0aGUgc3VwcGxpZXIgLyBiaWRkZXIuICovXHJcbiAgICBzdXBwbGllclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgdHlwZSBvZiBzaGlwcG1lbnQuICovXHJcbiAgICBzaGlwcGluZ1R5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIHByaWNlIGlucXVpcnkuICovXHJcbiAgICBpbnF1aXJ5VHlwZT86IENvbW1lcmNlSW5xdWlyeVR5cGVEdG8gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBUaGlzIGVudW0gcmVwcmVzZW50cyB0eXBlcyBvZiBwcmljZSBpbnF1aXJpZXMgKi9cclxuZXhwb3J0IGVudW0gQ29tbWVyY2VJbnF1aXJ5VHlwZUR0byB7XHJcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXHJcbiAgICBQcm9qZWN0ID0gXCJQcm9qZWN0XCIsXHJcbiAgICBJbW1lZGlhdGUgPSBcIkltbWVkaWF0ZVwiLFxyXG4gICAgRXhoaWJpdGlvbiA9IFwiRXhoaWJpdGlvblwiLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRpbmdQb3NpdGlvbkRhdGEge1xyXG4gICAgcG9zaXRpb25zQnlJZD86IHsgW2tleTogc3RyaW5nXTogUG9zaXRpb25EdG87IH0gfCB1bmRlZmluZWQ7XHJcbiAgICBiYXNlUG9zaXRpb25zPzogeyBba2V5OiBzdHJpbmddOiBQb3NpdGlvbkR0bzsgfSB8IHVuZGVmaW5lZDtcclxuICAgIGNvbXBsZW1lbnRpbmdQb3NpdGlvbklkcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKiogQSBQcm9qZWN0IGNvbnRhaW5zIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdC4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0RHRvIHtcclxuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIGFsbCBwcmljZSBwcm9wZXJ0aWVzLCBtZWFuaW5nIGhvdyBtYW55IGRlY2ltYWwgcGxhY2VzIGFyZSBwcmVzZXJ2ZWQgaW4gY2FsY3VsYXRpb25zLiBJdCBkZWZhdWx0cyB0byBERUZBVUxUX1BSSUNFX0FDQ1VSQUNZLiBQbGVhc2Ugc2VlIHRoZSBEYW5nbC5BVkEgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBkZWNpbWFsIHByZWNpc2lvbi4gSWYgVW5pdFByaWNlQWNjdXJhY3kgaXMgc2V0LCB0aGVuIHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZCBmb3IgdW5pdCBwcmljZXMuICovXHJcbiAgICBwcmljZUFjY3VyYWN5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHBvc2l0aW9uIHVuaXQgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIFRoaXMgY2FuIGJlIHNlcGFyYXRlbHkgc2V0IGZyb20gUHJpY2VBY2N1cmFjeSwgYW5kIGl0IG9ubHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHRoZSB1bml0IHByaWNlIG9mIHBvc2l0aW9ucywgbm90IHRoZSB0b3RhbCBwcmljZS4gSXQgZGVmYXVsdHMgdG8gbnVsbCwgd2hpY2ggbWVhbnMgdGhlIHN0YW5kYXJkIFByaWNlQWNjdXJhY3kgaXMgdXNlZCBmb3IgdW5pdCBwcmljZXMuICovXHJcbiAgICB1bml0UHJpY2VBY2N1cmFjeT86IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGZvcmNlcyB0b3RhbCBwcmljZXMgdG8gYmUgdGhlIHN0cmljdCBwcm9kdWN0IG9mIHF1YW50aXRpZXMgdGltZXMgdW5pdCBwcmljZSBpbiBwb3NpdGlvbnMuIEl0IGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgYm90aCB0aGUgdW5pdCBwcmljZSBhbmQgdGhlIHRvdGFsIHByaWNlIG9mIHBvc2l0aW9ucyBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIG5vbi1yb3VuZGVkIHZhbHVlcy4gUGxlYXNlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYSBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIHRoaXMgc2V0dGluZy4gKi9cclxuICAgIGZvcmNlU3RyaWN0VG90YWxzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSByb3VuZGluZyBtb2RlIG9mIGFsbCBwcmljZSBwcm9wZXJ0aWVzLCBtZWFuaW5nIGhvdyByb3VuZGluZyBvZiBkZWNpbWFsIHBsYWNlcyBpcyBwZXJmb3JtZWQgaW4gcHJpY2UgY2FsY3VsYXRpb25zLiBJdCBkZWZhdWx0cyB0byBERUZBVUxUX1JPVU5ESU5HX01PREUuIFBsZWFzZSBzZWUgdGhlIERhbmdsLkFWQSBkb2N1bWVudGF0aW9uIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IGRlY2ltYWwgcHJlY2lzaW9uLiAqL1xyXG4gICAgcHJpY2VSb3VuZGluZ01vZGU/OiBQcmljZVJvdW5kaW5nTW9kZUR0byB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9qZWN0IGFuZCBpdHMgc3RydWN0dXJlLiAqL1xyXG4gICAgcHJvamVjdEluZm9ybWF0aW9uPzogUHJvamVjdEluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIFRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbnMgaW4gdGhpcyBQcm9qZWN0LiAqL1xyXG4gICAgc2VydmljZVNwZWNpZmljYXRpb25zPzogU2VydmljZVNwZWNpZmljYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcclxuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIFByb2plY3QuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXHJcbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuIl19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9tb2RlbC9hdmEtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QjtBQUN4QixtQkFBbUI7QUFDbkIsMkhBQTJIO0FBQzNILG9CQUFvQjtBQUNwQix3QkFBd0I7QUFFeEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQix1Q0FBdUM7QUFFdkMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIseUNBQWlCLENBQUE7SUFDakIsdUNBQWUsQ0FBQTtJQUNmLDJDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CO0FBMElELGlEQUFpRDtBQUNqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLGtEQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsc0lBQXNJO0FBQ3RJLE1BQU0sQ0FBTixJQUFZLDJCQU1YO0FBTkQsV0FBWSwyQkFBMkI7SUFDbkMsc0RBQXVCLENBQUE7SUFDdkIsOENBQWUsQ0FBQTtJQUNmLG9EQUFxQixDQUFBO0lBQ3JCLDhDQUFlLENBQUE7SUFDZiwwQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQU5XLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFNdEM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFOLElBQVkscUJBTVg7QUFORCxXQUFZLHFCQUFxQjtJQUM3Qiw0Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBZSxDQUFBO0lBQ2YsZ0RBQXVCLENBQUE7SUFDdkIsd0NBQWUsQ0FBQTtJQUNmLHdEQUErQixDQUFBO0FBQ25DLENBQUMsRUFOVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBTWhDO0FBRUQsaU5BQWlOO0FBQ2pOLE1BQU0sQ0FBTixJQUFZLFlBWVg7QUFaRCxXQUFZLFlBQVk7SUFDcEIsMkNBQTJCLENBQUE7SUFDM0IsbURBQW1DLENBQUE7SUFDbkMseURBQXlDLENBQUE7SUFDekMsbUhBQW1HLENBQUE7SUFDbkcsaUVBQWlELENBQUE7SUFDakQscUNBQXFCLENBQUE7SUFDckIsNkZBQTZFLENBQUE7SUFDN0UsNkNBQTZCLENBQUE7SUFDN0IsMkNBQTJCLENBQUE7SUFDM0IsNkVBQTZELENBQUE7SUFDN0QsdURBQXVDLENBQUE7QUFDM0MsQ0FBQyxFQVpXLFlBQVksS0FBWixZQUFZLFFBWXZCO0FBRUQsaVNBQWlTO0FBQ2pTLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0RBQTJCLENBQUE7SUFDM0Isa0VBQTJDLENBQUE7SUFDM0MsMERBQW1DLENBQUE7SUFDbkMsc0ZBQStELENBQUE7QUFDbkUsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUI7QUE4SUQsMlhBQTJYO0FBQzNYLE1BQU0sQ0FBTixJQUFZLGdCQVNYO0FBVEQsV0FBWSxnQkFBZ0I7SUFDeEIsdUNBQW1CLENBQUE7SUFDbkIseUNBQXFCLENBQUE7SUFDckIscUNBQWlCLENBQUE7SUFDakIseUNBQXFCLENBQUE7SUFDckIsaURBQTZCLENBQUE7SUFDN0IsaUVBQTZDLENBQUE7SUFDN0MsK0JBQVcsQ0FBQTtJQUNYLDZDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFUVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUzNCO0FBd05ELDBDQUEwQztBQUMxQyxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFZRCx1R0FBdUc7QUFDdkcsTUFBTSxDQUFOLElBQVksd0JBS1g7QUFMRCxXQUFZLHdCQUF3QjtJQUNoQywrQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBYSxDQUFBO0lBQ2IseUNBQWEsQ0FBQTtJQUNiLGlEQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFMVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBS25DO0FBNEJELHlJQUF5STtBQUN6SSxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzFCLDZDQUF1QixDQUFBO0lBQ3ZCLG1EQUE2QixDQUFBO0lBQzdCLDZDQUF1QixDQUFBO0lBQ3ZCLHlDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSzdCO0FBdUJELHNEQUFzRDtBQUN0RCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLHNDQUFtQixDQUFBO0lBQ25CLHdDQUFxQixDQUFBO0lBQ3JCLDhDQUEyQixDQUFBO0FBQy9CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUVELHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLHVDQUF1QixDQUFBO0lBQ3ZCLDZDQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUVELDRFQUE0RTtBQUM1RSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLG1EQUFpQyxDQUFBO0FBQ3JDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQWdHRCw2SEFBNkg7QUFDN0gsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtJQUNyQixrRUFBMkMsQ0FBQTtBQUMvQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELGtGQUFrRjtBQUNsRixNQUFNLENBQU4sSUFBWSxpQkFVWDtBQVZELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLDhDQUF5QixDQUFBO0lBQ3pCLG9DQUFlLENBQUE7SUFDZix3Q0FBbUIsQ0FBQTtJQUNuQiw0Q0FBdUIsQ0FBQTtJQUN2QiwwQ0FBcUIsQ0FBQTtJQUNyQiw0REFBdUMsQ0FBQTtJQUN2QyxrRUFBNkMsQ0FBQTtJQUM3QywwQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBVlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQVU1QjtBQUVELGdPQUFnTztBQUNoTyxNQUFNLENBQU4sSUFBWSw0QkFLWDtBQUxELFdBQVksNEJBQTRCO0lBQ3BDLHVEQUF1QixDQUFBO0lBQ3ZCLHlGQUF5RCxDQUFBO0lBQ3pELDZFQUE2QyxDQUFBO0lBQzdDLDJFQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFMVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBS3ZDO0FBZ0JELGtEQUFrRDtBQUNsRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLCtCQUFhLENBQUE7SUFDYix5Q0FBdUIsQ0FBQTtJQUN2QiwrQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUVELDJDQUEyQztBQUMzQyxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQzlCLDZDQUFtQixDQUFBO0lBQ25CLDZDQUFtQixDQUFBO0lBQ25CLHlDQUFlLENBQUE7SUFDZix1Q0FBYSxDQUFBO0lBQ2IseUNBQWUsQ0FBQTtJQUNmLDJDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBT2pDO0FBbUtELDRGQUE0RjtBQUM1RixNQUFNLENBQU4sSUFBWSxnQkFRWDtBQVJELFdBQVksZ0JBQWdCO0lBQ3hCLDJDQUF1QixDQUFBO0lBQ3ZCLGlDQUFhLENBQUE7SUFDYixpREFBNkIsQ0FBQTtJQUM3QixpREFBNkIsQ0FBQTtJQUM3QixtQ0FBZSxDQUFBO0lBQ2YsMkNBQXVCLENBQUE7SUFDdkIsbUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBUlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQVEzQjtBQUVELHNFQUFzRTtBQUN0RSxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ2pCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQixrQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQix3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtBQUNmLENBQUMsRUFSVyxTQUFTLEtBQVQsU0FBUyxRQVFwQjtBQXNDRCx5REFBeUQ7QUFDekQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2QixvQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQThCRCxvREFBb0Q7QUFDcEQsTUFBTSxDQUFOLElBQVksc0JBS1g7QUFMRCxXQUFZLHNCQUFzQjtJQUM5Qiw2Q0FBbUIsQ0FBQTtJQUNuQiw2Q0FBbUIsQ0FBQTtJQUNuQixpREFBdUIsQ0FBQTtJQUN2QixtREFBeUIsQ0FBQTtBQUM3QixDQUFDLEVBTFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUtqQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gPGF1dG8tZ2VuZXJhdGVkPlxuLy8gICAgIEdlbmVyYXRlZCB1c2luZyB0aGUgTlN3YWcgdG9vbGNoYWluIHYxNC4wLjAuMCAoTkpzb25TY2hlbWEgdjExLjAuMC4wIChOZXd0b25zb2Z0Lkpzb24gdjEzLjAuMC4wKSkgKGh0dHA6Ly9OU3dhZy5vcmcpXG4vLyA8L2F1dG8tZ2VuZXJhdGVkPlxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gUmVTaGFycGVyIGRpc2FibGUgSW5jb25zaXN0ZW50TmFtaW5nXG5cbi8qKiBUaGlzIGVudW0gY29uZmlndXJlcyByb3VuZGluZyBtb2RlcyBmb3IgcHJpY2UgY2FsY3VsYXRpb25zIGluIHByb2plY3RzICovXG5leHBvcnQgZW51bSBQcmljZVJvdW5kaW5nTW9kZUR0byB7XG4gICAgTm9ybWFsID0gXCJOb3JtYWxcIixcbiAgICBGbG9vciA9IFwiRmxvb3JcIixcbiAgICBDZWlsaW5nID0gXCJDZWlsaW5nXCIsXG59XG5cbi8qKiBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IGEgUHJvamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdEluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGJ1eWVyLiAqL1xuICAgIGJ1eWVyPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVzY3JpcHRpb24gZm9yIHRoZSBwcm9qZWN0LiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhlIHByb2plY3QuICovXG4gICAgZGVzY3JpcHRpb25TaG9ydD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmFtZSBvZiB0aGUgcHJvamVjdC4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgc2l0ZS4gKi9cbiAgICBzaXRlPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdXNlZCBpbiB0aGUgcHJvamVjdC4gKi9cbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgbGFiZWwgZm9yIHRoZSBjdXJyZW5jeSB1c2VkLiAqL1xuICAgIGN1cnJlbmN5U2hvcnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEZ1bGwgbGFiZWwgb2YgdGhlIGN1cnJlbmN5IHVzZWQuICovXG4gICAgY3VycmVuY3lMb25nPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBMYWJlbCBmb3IgdGhlIGxhYm91ciB0aW1lIHBhcnQgb2YgcHJpY2VzIHVzZWQgaW4gdGhlIHByb2plY3QuICovXG4gICAgbGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBMYWJlbHMgZm9yIHRoZSBwcmljZSBjb21wb25lbnRzIHVzZWQgaW4gdGhlIHByb2plY3QuIENhdXRpb246IFJlbW92YWwgb2YgYSBwcmljZSBjb21wb25lbnQgd2lsbCB0cmlnZ2VyIHRvIGhhdmUgZGVwZW5kZW50IHByaWNlIGluZm9ybWF0aW9ucyBiZSBkZWxldGVkIGluIElFbGVtZW50cyB0aGF0IHVzZSB0aGlzIHByb3BlcnR5LiBJZiB0aGlzIHByb3BlcnR5IGlzIGNoYW5nZWQgb3IgYWx0ZXJlZCBhZnRlciB0aGUgcHJvamVjdCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQsIGl0IGlzIHN0cm9uZ2x5IGFkdmlzZWQgdG8gZG8gb3BlcmF0aW9ucyBzdGVwIGJ5IHN0ZXAsIGUuZy4gaWYgcmVuYW1pbmcgYW5kIHJlb3JkZXJpbmcgbXVsdGlwbGUgcHJpY2UgY29tcG9uZW50cywgdGhpcyBzaG91bGQgYmUgZG9uZSBvbmUgYnkgb25lLiBPdGhlcndpc2UsIGEgY29tYmluYXRpb24gb2YgcmVuYW1lIGFuZCByZW9yZGVyaW5nIHdpbGwgbm90IGJlIGNvcnJlY3RseSBwcm9wYWdhdGVkIGRvd253YXJkcyB0byBjaGlsZCBvYmplY3RzIGluIHRoaXMgUHJvamVjdC4gKi9cbiAgICBwcmljZUNvbXBvbmVudHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBkaWN0aW9uYXJ5IHNwZWNpZmllcyBhY3R1YWwgdHlwZXMgdXNlZCBmb3IgdGhlIFByaWNlQ29tcG9uZW50cy4gRm9yIGV4YW1wbGUsIGEgc2luZ2xlIHByaWNlIGNvbXBvbmVudCBtaWdodCBoYXZlIHRoZSBuYW1lICdNYXRlcmlhbCcgYXMgYSBzdHJpbmcsIGFucyB0aGlzIGRpY3Rpb25hcnkgd291bGQgdGhlbiBoYXZlIGEga2V5ICdNYXRlcmlhbCcgYW5kIGEgdmFsdWUgb2YgTWF0ZXJpYWxzLiBZb3UgY2FuIG5vdCBhZGQga2V5cyBoZXJlIHRoYXQgYXJlIG5vdCBhbHNvIHByZXNlbnQgaW4gdGhlIFByaWNlQ29tcG9uZW50cyBwcm9wZXJ0eSwgYW5kIHJlbW92aW5nIHByaWNlIGNvbXBvbmVudHMgd2lsbCBhbHNvIHJlbW92ZSB0aGVtIGZyb20gdGhpcyBkaWN0aW9uYXJ5IGhlcmUuICovXG4gICAgcmVhZG9ubHkgcHJpY2VDb21wb25lbnRUeXBlcz86IHsgW2tleTogc3RyaW5nXTogUHJpY2VDb21wb25lbnRUeXBlRHRvOyB9IHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGJvb2wgaW5kaWNhdGVzIGlmIHRoaXMgcHJvamVjdCBhbGxvd3MgdGhlIGJpZGRlciB0byBhZGQgYmlkZGVyIGNvbW1lbnRzLiBCaWRkZXIgY29tbWVudHMgYXJlIGEgd2F5IHRvIGF0dGFjaCBjbGFyaWZ5aW5nIGluZm9ybWF0aW9uIHdoZW4gc3VibWl0dGluZyBhbiBvZmZlci4gKi9cbiAgICBiaWRkZXJDb21tZW50QWxsb3dlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIGlmIHRoZSBwcm9qZWN0IHNob3VsZCBhbGxvdyBzaWRlIG9mZmVycyBmcm9tIGNvbnRyYWN0b3JzLiBJbiBHQUVCLCBhIHNpZGUgb2ZmZXIgd291bGQgdHlwaWNhbGx5IGJlIGluIGV4Y2hhbmdlIHBoYXNlIDg1LiAqL1xuICAgIHNpZGVPZmZlcnNBbGxvd2VkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIGF3YXJkIC8gcHJvY3VyZW1lbnQgcHJvY2Vzcy4gSWYgdGhpcyBpcyB1c2VkIGluIGEgR0FFQiBjb250ZXh0LCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF3YXJkIHR5cGVzIGNhbiBiZSBmb3VuZCBpbiB0aGUgR2VybWFuIFZPQi9BIHJ1bGVzIGFuZCB0aGUgR0FFQiBzdGFuZGFyZCAqL1xuICAgIGF3YXJkVHlwZT86IEF3YXJkVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgYXdhcmRzIGZvciBwcm9qZWN0IHRoYXQgYXJlIG5vdCBqdXN0IGEgcmVndWxhciBwcm9jdXJlbWVudC4gRm9yIGV4YW1wbGUsIGl0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIHJlY3VycmluZyBtYWludGVuYW5jZSBvciBhbiBvdXRsaW5lIGNvbnRyYWN0IChHZXJtYW46IFJhaG1lbnZlcnRyYWcpIHdoaWNoIGp1c3Qgc3BlY2lmaWVzIHNlcnZpY2VzIGFuZCBwcmljZXMgYnV0IG1heSBiZSByZXF1ZXN0ZWQgb24gZGVtYW5kIHdoZW4gbmVjZXNzYXJ5ICovXG4gICAgc3BlY2lhbEF3YXJkS2luZD86IFNwZWNpYWxBd2FyZEtpbmREdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlcXVlc3RlcnMgaW4gYSBjb25zdHJ1Y3Rpb24gcHJvamVjdCwgaW4gR2VybWFuIGFsc28gY2FsbGVkICdCZWRhcmZzdHLDpGdlcicsIGFyZSBwYXJ0aWVzIGNvbm5lY3RlZCB0byB0aGUgYnVpbGRpbmcgcHJvY2VzcywgZS5nLiBhcmNoaXRlY3RzIG9yIHBsYW5uZXJzLiAqL1xuICAgIHJlcXVlc3RlcnM/OiBQYXJ0eUluZm9ybWF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIE5vdGlmaWNhdGlvbiBzaXRlcyBhcmUgYWRkcmVzc2VzIHRoYXQgYXJlIHVzZWQgZm9yIGRlbGl2ZXJpbmcgbWVzc2FnZXMgaW4gdGhlIGNvbnRleHQgb2YgY29uc3RydWN0aW9uIHByb2plY3RzLiAqL1xuICAgIG5vdGlmaWNhdGlvblNpdGVzPzogUGFydHlJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIHBhcnR5IChhIHNpdGUgb3IgYW4gb3JnYW5pemF0aW9uKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydHlJbmZvcm1hdGlvbkR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgbmFtZS4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3Mgc3RyZWV0LiAqL1xuICAgIHN0cmVldD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIFppcENvZGUuICovXG4gICAgemlwQ29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIENpdHkuICovXG4gICAgY2l0eT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIENvdW50cnkuICovXG4gICAgY291bnRyeT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIElkZW50aWZpZXIuICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogUmVtYXJrcyBmb3IgdGhpcyBwYXJ0eS4gKi9cbiAgICByZW1hcmtzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBbiBlbWFpbCBhZGRyZXNzIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIGVtYWlsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBIHBob25lIG51bWJlciBmb3IgdGhpcyBwYXJ0eS4gKi9cbiAgICBwaG9uZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG5hbWUgb2YgYSBjb250YWN0IHBlcnNvbi4gKi9cbiAgICBjb250YWN0UGVyc29uTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhpcyBQYXJ0eUluZm9ybWF0aW9uIGFuZCB0aGVpciBpbnRlcm5hbCByZWZlcmVuY2Ugb2YgdGhlIHRlbmRlciAob3IgYXdhcmQpLiBUaGlzIG1pZ2h0IGJlIHVzZWQgdG8gYXNzaWduIGFuIGlkZW50aWZpZXIgKEdlcm1hbiBcIlZlcmdhYmVudW1tZXJcIikgZm9yIHRoZSBjdXJyZW50IHByb2plY3QuIFRoaXMgaXMgdHlwaWNhbGx5IG9ubHkgdXNlZCBpbiBCdXllciBhbmQgQmlkZGVyIHJlcHJlc2VudGF0aW9ucyBhbmQgc2hvdWxkIG1hcCB0byB0aGUgY29uY2VwdCBvZiBcIlZlcmdhYmVudW1tZXJcIiBvciBcIkF3YXJkTm9cIiBpbiBHQUVCLiAqL1xuICAgIGF3YXJkSWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHBhcnR5IGlzIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBFdXJvcGVhbiBFY29ub21pYyBBcmVhLiAqL1xuICAgIGlzSW5FdXJvcGVhbkVjb25vbWljQXJlYT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgd2l0aGluIHRoZSBFdXJvcGVhbiBFY29ub21pYyBBcmVhIChzZWUgSXNJbkV1cm9wZWFuRWNvbm9taWNBcmVhLCB0aGVuIGFzIGEgYnVzaW5lc3MgZW50aXR5IGl0IGxpa2VseSBoYXMgYW4gRVUgVkFUIElkLiAqL1xuICAgIHZhdElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZmF4IG51bWJlciBmb3IgdGhpcyBwYXJ0eS4gKi9cbiAgICBmYXg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0d28gbGV0dGVyIElTTyBjb3VudHJ5IGNvZGUsIGUuZy4gREUgZm9yIEdlcm1hbnkuICovXG4gICAgY291bnRyeUNvZGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERlcGVuZGluZyBvbiB3aGljaCBwYXJ0eSB0aGlzIGNsYXNzIHJlcHJlc2VudHMsIGl0IG1pZ2h0IGhhdmUgZWl0aGVyIGEgJ2NyZWRpdG9yJyBvciAnZGVidG9yJyBudW1iZXIuIFRoaXMgaXMgb2Z0ZW4gdXNlZCBpbiBpbnRlcm5hbCBhY2NvdW50aW5nIHN5c3RlbXMuICovXG4gICAgY3JlZGl0b3JPckRlYnRvcklkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBHbG9iYWwgTG9jYXRpb24gTnVtYmVyIChHTE4pIGlzIGlzc3VlZCBieSBHUzEgYW5kIGlzIGludGVuZGVkIHRvIGJlIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIG9mIGEgcGFydHksIGUuZy4gYSBidXNpbmVzcyBvZmZpY2UuICovXG4gICAgZ2xvYmFsTG9jYXRpb25OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbGlzdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBiYW5rIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFBhcnR5SW5mb3JtYXRpb24uIEl0J3MgdHlwaWNhbGx5IHVzZWQgZm9yIGJ1eWVycyBhbmQgYmlkZGVycy4gKi9cbiAgICBiYW5raW5nSW5mb3JtYXRpb24/OiBCYW5raW5nSW5mb3JtYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcmVnaXN0cmF0aW9uIG51bWJlciBmb3IgdGhpcyBwYXJ0eSwgZS5nLiBhIGNvbXBhbnkgcmVnaXN0cmF0aW9uIG51bWJlci4gSXQgaXMgdXN1YWxseSB1c2VkIGluIEdBRUIgWE1MIGNvbW1lcmNlIGV4Y2hhbmdlcyBmb3IgYmlkZGVycyB0byBzdXBwbHkgdGhlaXIgV0VFRSByZWdpc3RyYXRpb24gbnVtYmVyLCB3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZW0gYXMgYSByZWdpc3RlcmVkIFdFRUUgY29tcGFueS4gKi9cbiAgICByZWdpc3RyYXRpb25OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGJhbmsgY29ubmVjdGlvbi4gSXQgaXMgdXN1YWxseSB1c2VkIHdpdGhpbiBhIFBhcnR5SW5mb3JtYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEJhbmtpbmdJbmZvcm1hdGlvbkR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgYmFuay4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgaW50ZXJuYXRpb25hbCBpZGVudGlmaWVyIGZvciB0aGUgYmFuayBhY2NvdW50LiAqL1xuICAgIGliYW4/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhY2NvdW50IG51bWJlci4gVHlwaWNhbGx5IG5vIGxvbmdlciB1c2VkIHNpbmNlIHRoZSBpbnRyb2R1Y3Rpb24gb2YgSUJBTiB3aXRoaW4gdGhlIFNFUEEgYXJlYS4gKi9cbiAgICBhY2NvdW50TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgaW50ZXJuYXRpb25hbCBiYW5rIGlkZW50aWZpZXIuICovXG4gICAgYmljPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcm91dGluZyBudW1iZXIgZm9yIHRoZSBiYW5rLiBUeXBpY2FsbHkgbm8gbG9uZ2VyIHVzZWQgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBJQkFOIHdpdGhpbiB0aGUgU0VQQSBhcmVhLiAqL1xuICAgIHJvdXRpbmdOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGUgc2NoZW1hIGZvciBJdGVtTnVtYmVyJ3MgaW4gYSBQcm9qZWN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJdGVtTnVtYmVyU2NoZW1hRHRvIHtcbiAgICAvKiogVGhlIGNvdW50IG9mIHRpZXJzIGluIHRoZSBJdGVtTnVtYmVyU2NoZW1hICovXG4gICAgcmVhZG9ubHkgdG90YWxMZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBjb2xsZWN0aW9uIG9mIHRpZXJzIGZvciB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEuICovXG4gICAgdGllcnM/OiBJdGVtTnVtYmVyU2NoZW1hVGllckR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgc2VwYXJhdG9yIHRvIHVzZSBmb3Igc2VwYXJpdGluZyB0aGUgZGlmZmVyZW50IGxldmVscyBpbiBhbiBJdGVtTnVtYmVyLiBEZWZhdWx0cyB0byBERUZBVUxUX1NFUEFSQVRPUiwgd2hpY2ggaXMgYSBwb2ludCAnLicuIFNldHRpbmcgdGhpcyB0byBhIHNwYWNlIG9yIG90aGVyIHdoaXRlc3BhY2VzIGlzIGRpc2NvdXJhZ2VkLCBhcyB0aGlzIG1pZ2h0IG5vdCB3b3JrIGNvcnJlY3QgaW4gYWxsIHNpdHVhdGlvbnMgYW5kIGl0ZW0gbnVtYmVycyBjb3VsZCBiZSBkaXNwbGF5ZWQgbm90IGFzIGludGVuZGVkLiBUaGlzIGNhbiBub3QgYmUgc2V0IHRvIGFuIGVtcHR5IG9yIG51bGwgc3RyaW5nLCB0cnlpbmcgdGhhdCB3aWxsIGRlZmF1bHQgdG8gdGhlIERFRkFVTFRfU0VQQVJBVE9SLiBJZiBhIHZhbHVlIGlzIHNldCB0aGF0IGhhcyBhIGRpZmZlcmVudCBsZW5ndGggdGhhbiBvbmUgJzEnLCB0aGUgREVGQVVMVF9TRVBBUkFUT1Igd2lsbCBiZSB1c2VkIGluc3RlYWQuIFlvdSBzaG91bGQgYWxzbyBub3QgdXNlIHZhbHVlcyBmb3IgdGhlIHNlcGFyYXRvciB0aGF0IGFyZSBhbHNvIHZhbGlkIGZvciB0aGUgaXRlbSBudW1iZXJzIHRoZW1zZWx2ZXMsIGFzIHRoYXQgbWlnaHQgYWxzbyBsZWFkIHRvIGluY29ycmVjdCByZXN1bHRzICovXG4gICAgc2VwYXJhdG9yPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHN0cmluZyBpcyB1c2VkIHRvIGZpbGwgKGxlZnQtcGFkKSBpdGVtIG51bWJlcnMuIEZvciBleGFtcGxlLCBpZiBhIHRpZXIgaGFzIGEgbGVuZ3RoIG9mICc0JyBidXQgdGhlIGdpdmVuIGl0ZW0gbnVtYmVyIGlzICcxMicsIHdpdGggYSBGaWxsZXIgb2YgJzAnLCB0aGVuIHRoZSBmaW5hbCBpdGVtIG51bWJlciB3aWxsIGJlIHJlcHJlc2VudGVkIGFzICcwJy4gVGhpcyBtdXN0IGJlIGEgc2luZ2xlIGNoYXJhY3RlciBzdHJpbmcsIGlmIGEgdmFsdWUgaXMgZ2l2ZW4gd2hlcmUgdGhlIExlbmd0aCBwcm9wZXJ0eSBkb2VzIG5vdCBldmFsdWF0ZSB0byAnMScsIHRoZSBERUZBVUxUX0ZJTExFUiAnMCcgaXMgdXNlZC4gQSBzcGFjZSBpcyBmaW5lIHRvIHVzZS4gWW91IHNob3VsZCBlbnN1cmUgdGhhdCB5b3UgdXNlIGEgdmFsdWUgZGlmZmVyZW50IHRoYW4gU2VwYXJhdG9yLCBhcyB0aGF0IG1pZ2h0IHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzLiBObyBhdHRlbXB0IGlzIGRvbmUgYnkgdGhlIGNvZGUgdG8gcmVjb3ZlciBmcm9tIHN1Y2ggYW1iaWd1b3VzIGNvbmZpZ3VyYXRpb25zLiAqL1xuICAgIGZpbGxlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBqdXN0IGEgc3RyaW5nIHByb3BlcnR5IHRoYXQgY2FuIG9wdGlvbmFsbHkgYmUgdXNlZCB0byBzdG9yZSBhZGRpdGlvbmFsIGRhdGEgZm9yIHRoaXMgSXRlbU51bWJlclNjaGVtYSwgZS5nLiBhbiBpZGVudGlmaWNhdGlvbiBvciBhIHR5cGUuIEl0IGRvZXMgbm90IGhhdmUgYW55IGluZmx1ZW5jZSBvdmVyIGhvdyBpdGVtIG51bWJlcnMgYXJlIGdlbmVyYXRlZCwgYW5kIGlzIG5vdCBzdXBwb3J0ZWQgaW4gbW9zdCBleGNoYW5nZSBmb3JtYXRzLiBIb3dldmVyLCBpdCBpcyB1c2VkIHRvIHN0b3JlIMOWTm9ybSBzZXJ2aWNlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIHR5cGVzLiAqL1xuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIGlmIEl0ZW1OdW1iZXJzIHVzaW5nIHRoaXMgSXRlbU51bWJlclNjaGVtYSBzaG91bGQgc2tpcCBlbXB0eSBncm91cCBsZXZlbHMuIFRoaXMgaXMgY29tbW9ubHkgb25seSB1c2VkIGluIEdBRUIgZmlsZXMsIHdoZXJlIHRoZXJlIG1pZ2h0IGJlIGdhcHMgaW4gdGhlIGhpZXJhcmNoeSBvZiBlbGVtZW50cyBhbmQgcG9zaXRpb24gaWRlbnRpZmllcnMgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24uICovXG4gICAgc2tpcE5vbkV4aXN0aW5nTGV2ZWxzSW5Qb3NpdGlvbkl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzdHJpbmcgaXMgdXNlZCBvbmx5IHdoZW4gdGhlIHByb3BlcnR5IFNraXBOb25FeGlzdGluZ0xldmVsc0luUG9zaXRpb25JdGVtTnVtYmVycyBpbiB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEgaXMgYWxzbyBzZXQgdG8gdHJ1ZS4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9TS0lQUEVEX1RJRVJTX0ZJTExFUiwgYnV0IGNhbiBiZSBzZXQgdG8gYW55IHN0cmluZyB3aXRoIGEgbGVuZ2h0IG9mIG9uZS4gTnVsbCB2YWx1ZXMgb3IgdmFsdWVzIHdpdGggYSBsb25nZXIgbGVuZ3RoIHdpbGwgbGVhZCB0byB0aGlzIHByb3BlcnR5IHJldmVydGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlLiBUaGlzIGlzIHVzZWQgdG8gZmlsbCBza2lwcGVkIHRpZXJzIGluIGl0ZW0gbnVtYmVycyB3aGVyZSBhIHBvc2l0aW9uIGlzIHBsYWNlZCBpbiBhIGhpZ2hlciBoaWVyYXJjaHkgbGV2ZWwgdGhhbiB3aGF0IHdvdWxkIGJlIGRlZmluZWQgaW4gdGhlIFRpZXJzLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgcHJvZHVjZSBhbiBpdGVtIG51bWJlciBsaWtlICcwMS5fXy4wMicsIHdoaWNoIHdvdWxkIGluZGljYXRlIGEgc2tpcHBlZCBzZWNvbmQgbGV2ZWwuIFRoaXMgc2hvdWxkIGJlIHVzaW5nIGRpZmZlcmVudCB2YWx1ZXMgdGhhbiBGaWxsZXIgYW5kIFNlcGFyYXRvciwgc2luY2UgdGhhdCBjb3VsZCBjYXVzZSBhbWJpZ3VpdGllcyBpbiB0aGUgY29kZSB0aGF0IGdlbmVyYXRlcyB0aGUgYWN0dWFsIGl0ZW0gbnVtYmVycy4gTm8gYXR0ZW1wdCBpcyBkb25lIGJ5IHRoZSBjb2RlIHRvIHJlY292ZXIgZnJvbSBzdWNoIGFtYmlndW91cyBjb25maWd1cmF0aW9ucy4gKi9cbiAgICBza2lwcGVkVGllcnNGaWxsZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYSByZWFkLW9ubHkgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXMgaWYgdGhpcyBzY2hlbWEgaGFzIGEgdmFsaWQgc3RydWN0dXJlLiBJdCBpbnRlcm5hbGx5IGp1c3QgcmV0dXJucyB0aGUgcmVzdWx0IGZyb20gSXNDb3JyZWN0bHlEZWZpbmVkLiBUaGlzIHdpbGwgcmV0dXJuIGlmIHRoZSBJdGVtTnVtYmVyU2NoZW1hIGlzIGNvcnJlY3RseSBkZWZpbmVkLiBGb3IgaXQgdG8gYmUgY29ycmVjdGx5IGRlZmluZWQsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBtdXN0IGJlIHRydWU6IFRoZXJlIG1heSBvbmx5IGJlIG9uZSBsb3QgZ3JvdXAsIGlmIHRoZXJlIGlzIG9uZSwgaXQgbXVzdCBiZSBhdCB0aGUgdG9wLiBGb2xsb3dpbmcgbG90IGxldmVscywgdGhlcmUgbWF5IGJlIGF0IGxlYXN0IG9uZSBncm91cCBsZXZlbC4gQWZ0ZXIgdGhlIGdyb3VwIGxldmVscywgdGhlcmUgbXVzdCBiZSBvbmUgcG9zaXRpb24gbGV2ZWwuIEFmdGVyIHRoZSBwb3NpdGlvbiBsZXZlbCwgdGhlcmUgbWF5IGJlIG9uZSBpbmRleCBsZXZlbC4gSWYgbm8gdGllcnMgYXJlIGRlZmluZWQgYXQgYWxsLCB0aGlzIHdpbGwgYWxzbyByZXR1cm4gZmFsc2UuICovXG4gICAgcmVhZG9ubHkgc2NoZW1hSXNDb3JyZWN0bHlEZWZpbmVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVmYXVsdHMgdG8gZmFsc2UuIElmIHRoaXMgaXMgZGlzYWJsZWQsIGFsbCBsZXR0ZXJzIGluIHRoZSBJdGVtTnVtYmVyIHN0cmluZyByZXByZXNlbnRhdGlvbnMgd2lsbCBiZSB0cmFuc2Zvcm1lZCB0byB0aGVpciBsb3dlcmNhc2UgcmVwcmVzZW50YXRpb24uICovXG4gICAgYWxsb3dVcHBlckNhc2VMZXR0ZXJpbmc/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBUaWVyIGluIGFuIEl0ZW1OdW1iZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvIHtcbiAgICAvKiogVGhlIChtYXhpbXVtKSBsZW5ndGggZm9yIHRoaXMgdGllci4gV2lsbCBub3QgYWNjZXB0IGEgbGVuZ3RoIGxlc3MgdGhhbiAxLiBEZWZhdWx0cyB0byAxIGlmIGxlbmd0aCBsZXNzIHRoYW4gb25lIGlzIHNwZWNpZmllZC4gKi9cbiAgICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgSXRlbU51bWJlclNjaGVtYVRpZXIncyB0eXBlLiAqL1xuICAgIHR5cGU/OiBJdGVtTnVtYmVyVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzcGVjaWZpZXMgd2hpY2ggSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlIHRoaXMgdGllciByZXByZXNlbnRzLiBUaGlzIGNhbiBiZSwgZm9yIGV4YW1wbGUsIGEgZ3JvdXAgdGllciAvIGxldmVsLCBhIHBvc2l0aW9uIGxldmVsIG9yIGEgbG90IGxldmVsLiAqL1xuICAgIHRpZXJUeXBlPzogSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyB0aWVyIHJlcHJlc2VudHMgYSBsb3QuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBsb3RzLiAqL1xuICAgIHJlYWRvbmx5IGlzTG90PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyB2YWx1ZSBpcyB0aGUgaW5jcmVtZW50LCBvciBzdGVwIHNpemUsIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIG5ldyBpdGVtIG51bWJlcnMuIEl0IGRlZmF1bHRzIHRvIERFRkFVTFRfSU5DUkVNRU5ULCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYW55IG90aGVyIHBvc2l0aXZlIG51bWJlciBncmVhdGVyIHRoYW4gemVyby4gSW52YWxpZCB2YWx1ZXMgbWFrZSB0aGlzIGJlIHNldCB0byBvbmUgJzEnICovXG4gICAgaW5jcmVtZW50PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIG9wdGlvbmFsIG5hbWUgZm9yIHRoZSBnaXZlbiB0aWVyICovXG4gICAgdGllck5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIGFuIEl0ZW1OdW1iZXJTY2hlbWEgKi9cbmV4cG9ydCBlbnVtIEl0ZW1OdW1iZXJUeXBlRHRvIHtcbiAgICBOdW1lcmljID0gXCJOdW1lcmljXCIsXG4gICAgQWxwaGFudW1lcmljID0gXCJBbHBoYW51bWVyaWNcIixcbn1cblxuLyoqIFNwZWNpZmllcyB0aGUgdHlwZSBhbiBJdGVtTnVtYmVyU2NoZW1hVGllciByZXByZXNlbnRzLiBGb3IgZXhhbXBsZSwgYSB0aWVyIG1heSBpbmRpY2F0ZSB0byBiZSB1c2VkIGZvciBwb3NpdGlvbnMgb3IgZm9yIGdyb3Vwcy4gKi9cbmV4cG9ydCBlbnVtIEl0ZW1OdW1iZXJTY2hlbWFUaWVyVHlwZUR0byB7XG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcbiAgICBJbmRleCA9IFwiSW5kZXhcIixcbiAgICBQb3NpdGlvbiA9IFwiUG9zaXRpb25cIixcbiAgICBHcm91cCA9IFwiR3JvdXBcIixcbiAgICBMb3QgPSBcIkxvdFwiLFxufVxuXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBtb2RlbHMgdHlwZXMgb2YgcHJpY2UgY29tcG9uZW50cyBmb3IgYmV0dGVyIGNsYXNzaWZpY2F0aW9uLiAqL1xuZXhwb3J0IGVudW0gUHJpY2VDb21wb25lbnRUeXBlRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgV2FnZXMgPSBcIldhZ2VzXCIsXG4gICAgTWF0ZXJpYWxzID0gXCJNYXRlcmlhbHNcIixcbiAgICBQbGFudCA9IFwiUGxhbnRcIixcbiAgICBNaXNjZWxsYW5lb3VzID0gXCJNaXNjZWxsYW5lb3VzXCIsXG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgYXdhcmQgLyBwcm9jdXJlbWVudCBwcm9jZXNzLiBJZiB0aGlzIGlzIHVzZWQgaW4gYSBHQUVCIGNvbnRleHQsIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYXdhcmQgdHlwZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBHZXJtYW4gVk9CL0EgcnVsZXMgYW5kIHRoZSBHQUVCIHN0YW5kYXJkICovXG5leHBvcnQgZW51bSBBd2FyZFR5cGVEdG8ge1xuICAgIFVuc3BlY2lmaWVkID0gXCJVbnNwZWNpZmllZFwiLFxuICAgIE9wZW5Qcm9jdXJlbWVudCA9IFwiT3BlblByb2N1cmVtZW50XCIsXG4gICAgQ2xvc2VkUHJvZHVjcmVtZW50ID0gXCJDbG9zZWRQcm9kdWNyZW1lbnRcIixcbiAgICBOZWdvdGlhdGlvblByb2N1cmVtZW50V2l0aG91dFB1YmxpY0Fubm91bmNlbWVudCA9IFwiTmVnb3RpYXRpb25Qcm9jdXJlbWVudFdpdGhvdXRQdWJsaWNBbm5vdW5jZW1lbnRcIixcbiAgICBOZWdvdGlhdGlvblByb2N1cmVtZW50ID0gXCJOZWdvdGlhdGlvblByb2N1cmVtZW50XCIsXG4gICAgT3BlbkNhbGwgPSBcIk9wZW5DYWxsXCIsXG4gICAgU2VsZWN0ZWRDYWxsV2l0aG91dFB1YmxpY0NvbXBldGl0aW9uID0gXCJTZWxlY3RlZENhbGxXaXRob3V0UHVibGljQ29tcGV0aXRpb25cIixcbiAgICBTZWxlY3RlZENhbGwgPSBcIlNlbGVjdGVkQ2FsbFwiLFxuICAgIERpcmVjdEF3YXJkID0gXCJEaXJlY3RBd2FyZFwiLFxuICAgIEludGVybmF0aW9uYWxOQVRPUHJvY3VyZW1lbnQgPSBcIkludGVybmF0aW9uYWxOQVRPUHJvY3VyZW1lbnRcIixcbiAgICBDb21wZXRpdGl2ZURpYWxvZyA9IFwiQ29tcGV0aXRpdmVEaWFsb2dcIixcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIGF3YXJkcyBmb3IgcHJvamVjdCB0aGF0IGFyZSBub3QganVzdCBhIHJlZ3VsYXIgcHJvY3VyZW1lbnQuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSByZWN1cnJpbmcgbWFpbnRlbmFuY2Ugb3IgYW4gb3V0bGluZSBjb250cmFjdCAoR2VybWFuOiBSYWhtZW52ZXJ0cmFnKSB3aGljaCBqdXN0IHNwZWNpZmllcyBzZXJ2aWNlcyBhbmQgcHJpY2VzIGJ1dCBtYXkgYmUgcmVxdWVzdGVkIG9uIGRlbWFuZCB3aGVuIG5lY2Vzc2FyeSAqL1xuZXhwb3J0IGVudW0gU3BlY2lhbEF3YXJkS2luZER0byB7XG4gICAgVW5zcGVjaWZpZWQgPSBcIlVuc3BlY2lmaWVkXCIsXG4gICAgTWFpbnRlbmFuY2VDb250cmFjdCA9IFwiTWFpbnRlbmFuY2VDb250cmFjdFwiLFxuICAgIE91dGxpbmVDb250cmFjdCA9IFwiT3V0bGluZUNvbnRyYWN0XCIsXG4gICAgT3V0bGluZUZvck1haW50ZW5hbmNlQ29udHJhY3QgPSBcIk91dGxpbmVGb3JNYWludGVuYW5jZUNvbnRyYWN0XCIsXG59XG5cbi8qKiBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgYSB3aG9sZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBob3VybHkgd2FnZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cbiAgICByZWFkb25seSBwcm9qZWN0SG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRheCByYXRlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHByb2plY3RUYXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcHJpY2UgY29tcG9uZW50cyB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuIFRoZXkgYXJlIGlnbm9yZWQgZHVyaW5nIEpzb24gZGVzZXJpYWxpemF0aW9uIGJlY2F1c2UgdGhleSB3aWxsIGJlIHNldCBmcm9tIHRoZSBwYXJlbnQgcHJvamVjdC4gKi9cbiAgICBwcm9qZWN0UHJpY2VDb21wb25lbnRzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyU2NoZW1hIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiAqL1xuICAgIHByb2plY3RJdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIElFbGVtZW50cyB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cbiAgICBlbGVtZW50cz86IElFbGVtZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBsYWJlbCB1c2VkIGluIHRoZSBwYXJlbnQgUHJvamVjdCB0byBtYXJrIGxhYm91ciB0aW1lLCBlLmcuIFwiSG91cnNcIiBvciBcIlN0dW5kZW5cIi4gKi9cbiAgICByZWFkb25seSBwcm9qZWN0TGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSXRlbU51bWJlcnMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSXRlbU51bWJlciBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVJdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJZHMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSWQgcy4gV2lsbCBhbHdheXMgaW5kaWNhdGUgZmFsc2Ugd2hlbiB0b2xkIHRvIGlnbm9yZSBkdXBsaWNhdGUgaXRlbSBudW1iZXJzLiAqL1xuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlIGlmIGR1cGxpY2F0ZWQgSXRlbU51bWJlcnMgd2l0aGluIGNoaWxkIGVsZW1lbnRzIGFyZSB0byBiZSBpZ25vcmVkLiBXaWxsIG5vdCBwZXJmb3JtIGNoZWNrcyBmb3IgZHVwbGljYXRlcyBpZiB5ZXMuICovXG4gICAgaWdub3JlRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcyAqL1xuICAgIGlnbm9yZVByb2plY3RDYXRhbG9ndWVQcm9wYWdhdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlIGlmIGR1cGxpY2F0ZWQgSWRzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xuICAgIGlnbm9yZUR1cGxpY2F0ZUVsZW1lbnRJZHM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBQcmljZSBjb21wb3NpdGlvbiBieSB0YXggcmF0ZS4gKi9cbiAgICB0b3RhbFByaWNlR3Jvc3NCeVRheFJhdGU/OiBHcm9zc1ByaWNlQ29tcG9uZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEludGVybmFsbHkgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEgcHJvcGFnYXRpb24gaXMgY3VycmVudGx5IGRvbmUsIHRoaXMgaXMgZG9uZSB0byBub3QgcmVjYWxjdWxhdGUgZXZlcnkgc2luZ2xlIHJlc3VsdCBmcm9tIGEgbG90IG9mIGNoYW5nZXMgd2hlbiBpdCBpcyBzdWZmaWNpZW50IHRvIGNhbGN1bGF0ZSB0aGUgdG90YWwgcHJpY2UgYXQgb25jZS4gKi9cbiAgICBpZ25vcmVDaGlsZFByaWNlVXBkYXRlcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIE5ldCBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgZGVkdWN0ZWRQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogRmFjdG9yIG9mIGFwcGxpZWQgZGVkdWN0aW9ucyB0byB0aGUgdG90YWwgcHJpY2UuIEZvciBleGFtcGxlLCBcIjAuMDNcIiBtZWFucyB0aGF0IGEgMyUgZGVkdWN0aW9uIGlzIHRvIGJlIGFwcGxpZWQuICovXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZXhhY3QgYW1vdW50IG9mIHRoZSBkaXNjb3VudCBhcyBhbiBhYnNvbHV0ZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHNldHRpbmcgdGhpcyB2YWx1ZSB3aWxsIGFsc28gc2V0IGEgY2FsY3VsYXRlZCB2YWx1ZSB0byBEZWR1Y3Rpb25GYWN0b3IsIHdoaWNoIHdpbGwgYWxzbyBiZSB1cGRhdGVkIGluIGNhc2UgdGhlIHRvdGFsIHByaWNlIGlzIGNoYW5nZWQgdG8gcmVmbGVjdCBhIHJlbGF0aXZlIHZhbHVlIG9mIHRoZSBhYnNvbHV0ZSBkaXNjb3VudCBzdW0uICovXG4gICAgYWJzb2x1dGVEZWR1Y3Rpb24/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UncyB0b3RhbCBwcmljZS4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UgaW5jbHVkaW5nIGFsbCBjaGlsZCBlbGVtZW50cy4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRvdGFsIGdyb3NzIHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3NEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBQcmljZVR5cGUgb2YgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSwgd2hldGhlciBpdCBzaG91bGQgZmFjdG9yIGludG8gdG90YWwgY29zdHMgb3Igbm90LiAqL1xuICAgIHByaWNlVHlwZT86IFByaWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGJpZGRlci4gKi9cbiAgICBiaWRkZXI/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGRpc2NyaW1pbmF0b3IgaXMgdXNlZCB0byBpZGVudGlmeSBkaWZmZXJlbnQgYmlkZGVycyBpbiBhIHByb2plY3QuIEl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBJZGVudGlmaWVyIHByb3BlcnR5IGluIHRoZSBCaWRkZXIgaW4gdGhhdCB0aGUgQmlkZGVyRGlzY3JpbWluYXRvciBpcyBpbnRlbmRlZCB0byBiZSBhIG51bWVyaWNhbCBpZGVudGlmaWVyIHdpdGhpbiBhIHByb2plY3QsIHdoaWxlIHRoZSBJZGVudGlmaWVyIGRvZXMgdW5pcXVlbHkgaWRlbnRpZnkgYSBiaWRkZXIgaW4gdGhlIHN5c3RlbSBpbmRlcGVuZGVudCBvZiBhIHNwZWNpZmljIHByb2plY3QuIFRoaXMgcHJvcGVydHkgc2hvdWxkIG1hcCB0byBcIkJpZXRlcm51bW1lclwiIG9yIFwiQmlkZGVyTm9cIiBpbiBHQUVCLiAqL1xuICAgIGJpZGRlckRpc2NyaW1pbmF0b3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgdXNlZCB0byBzdG9yZSB0aGUgR0FFQiBYTUwgSWQgd2l0aGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIHVzZWQgd2l0aGluIHRoZSBQcm9qZWN0IGluIHdoaWNoIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UgaXMgY29udGFpbmVkLiBUaGlzIGlzIHJlZmVyZW5jZSBlcXVhbCB0byB0aGUgUHJvamVjdEluZm9ybWF0aW9uIHVzZWQgaW4gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RJbmZvcm1hdGlvbj86IFByb2plY3RJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb25zIGV4Y2hhbmdlIHBoYXNlLCBpLmUuIHRoZSBjdXJyZW50IHN0YXR1cyBpbiB0aGUgcHJvamVjdCBpdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIChzdWNoIGFzIHJlcXVlc3QgZm9yIG9mZmVyLCBvZmZlciwgYXdhcmRpbmcuLi4pLiAqL1xuICAgIGV4Y2hhbmdlUGhhc2U/OiBFeGNoYW5nZVBoYXNlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgc2VydmljZSBzcGVjaWZpY2F0aW9uIG9yaWdpbmF0ZXMsIGkuZS4gZnJvbSBhbiBleGNoYW5nZSBmaWxlIGZvcm1hdCBvciBzZWxmIGNyZWF0ZWQuIElmIGFwcGxpY2FibGUsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaXMgcHJlc2VudCBpbiB0aGUgT3JpZ2luRGV0YWlsIHByb3BlcnR5LiAqL1xuICAgIG9yaWdpbj86IE9yaWdpbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjb21wbGVtZW50cyB0aGUgT3JpZ2luIHByb3BlcnR5LiBTb21lIGZvcm1hdHMsIGUuZy4gR2FlYlhtbCBtaWdodCBoYXZlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXR0YWNoZWQsIGUuZy4gR0FFQiBYTUwgVjMuMiBvZGVyIEdBRUIgWE1MIFYzLjEuIFRoaXMgc3RyaW5nIHByb3BlcnR5IGlzIHVzZWQgdG8gaG9sZCBzdWNoIGRhdGEuIFRoZSBEYW5nbC5BVkEgbW9kdWxlIGRvZXMgbm90IGhhdmUgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcywgc2luY2UgdGhpcyBpcyBkZWZpbmVkIGluIHRoZSBuYXRpdmUgZm9ybWF0IGFzc2VtYmxpZXMsIGUuZy4gRGFuZ2wuR0FFQiBvciBEYW5nbC5PZW5vcm0uICovXG4gICAgb3JpZ2luRGV0YWlsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBDcmVhdGlvbiBkYXRlIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgY3JlYXRpb25EYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGF0ZSBpbmRpY2F0aW5nIHVudGlsIHdoZW4gYW4gb2ZmZXIgaGFzIHRvIGJlIHN1Ym1pdHRlZC4gSW4gR2VybWFuLCB0aGlzIGlzIG9mdGVuIGNhbGxlZCB0aGUgXCJFcsO2ZmZudW5nc3Rlcm1pblwiICovXG4gICAgb2ZmZXJCeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEYXRlIGluZGljYXRpbmcgYnkgd2hlbiB0aGUgYnV5ZXIgd2lsbCBzZWxlY3QgYSBjb250cmFjdG9yLiAqL1xuICAgIGRlY2lzaW9uRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERhdGUgb2Ygd2hlbiB0aGUgb2ZmZXIgLyBiaWQgd2FzIGNyZWF0ZWQgKi9cbiAgICBiaWREYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdCByZXF1aXJlcyBhIHdhcnJhbnR5IGJvbmQsIHRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIHRoZSBhbW91bnQgYXMgYSBwZXJjZW50YWdlLCBlLmcuICcwLjE1bScgbWVhbnMgMTUlIG9mIHRoZSBjb25zdHJ1Y3Rpb24gdG90YWwgYW1vdW50IGFzIGEgd2FycmFudHkgYm9uZC4gKi9cbiAgICB3YXJyYW50eUJvbmRQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0IHJlcXVpcmVzIGFuIGV4ZWN1dGlvbiBndWFyYW50dHksIHRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIHRoZSBhbW91bnQgYXMgYSBwZXJjZW50YWdlLCBlLmcuICcwLjE1bScgbWVhbnMgMTUlIG9mIHRoZSBjb25zdHJ1Y3Rpb24gdG90YWwgYW1vdW50IGFzIGFuIGV4ZWN1dGlvbiBndWFyYW50ZWUuIEluIHByYWN0aWNlLCB0aGlzIHBlcmNlbnRhZ2UgaXMgdXN1YWxseSBkZWR1Y3RlZCBmcm9tIGludGVybWVkaWF0ZSBpbnZvaWNlcyBhbmQgb25seSBiaWxsZWQgaW4gdGhlIGZpbmFsIGludm9pY2UuICovXG4gICAgZXhlY3V0aW9uR3VhcmFudGVlUGVyY2VudGFnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogU3RyaW5nIGluZGljYXRpbmcgd2hlcmUgdGhlIHBoeXNpY2FsIHN1Ym1pc3Npb24gb2YgdGhlIG9mZmVyIGlzIHRha2luZyBwbGFjZS4gKi9cbiAgICBzdWJtaXNzaW9uTG9jYXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERlc2NyaXB0aW9uIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBQcmljZUluZm9ybWF0aW9uIGNvbnRhaW5zIGdsb2JhbCBkYXRhIGZvciB0aGUgU2VydmljZVNwZWNpZmljYXRpb24uIFdoZW4gaW5zaWRlIGEgUHJvamVjdCwgZG8gbm90IHNldCB0aGlzIHByb3BlcnR5IG1hbnVhbGx5LiAqL1xuICAgIHByaWNlSW5mb3JtYXRpb24/OiBQcmljZUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIENhdGFsb2d1ZSByZWZlcmVuY2VzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZGF0ZSB3aGVuIHRoZSBleGVjdXRpb24gb2YgdGhlIHNlcnZpY2VzIGlzIHNjaGVkdWxlZCB0byBzdGFydCAqL1xuICAgIHBsYW5uZWRFeGVjdXRpb25TdGFydD86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIHRoZW4gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgc2VydmljZXMgaXMgc2NoZWR1bGVkIHRvIGJlIGZpbmlzaGVkICovXG4gICAgcGxhbm5lZEV4ZWN1dGlvbkVuZD86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSBjb250cmFjdCBoYXMgYmVlbiBhd2FyZGVkLiBUaGlzIG1hdGNoZXMgXCJBdWZ0cmFnc2RhdHVtXCIgaW4gR0FFQiAqL1xuICAgIGNvbnRyYWN0RGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgdmFsdWUgY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhlIG51bWJlciBvciBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdC4gSXQgbWF0Y2hlcyBcIkF1ZnRyYWdzbnVtbWVyXCIgaW4gR0FFQiAqL1xuICAgIGNvbnRyYWN0SWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaG93IGxvbmcgdGhlIHdhcnJhbnR5IHBlcmlvZCBpcyBmb3IgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xuICAgIHdhcnJhbnR5RHVyYXRpb24/OiBXYXJyYW50eUR1cmF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZGF0ZSBvbiB3aGljaCB0aGUgd2FycmFudHkgcGVyaW9kIGVuZHMgKi9cbiAgICB3YXJyYW50eUVuZD86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSBzZXJ2aWNlcyByZW5kZXJlZCBieSB0aGUgYmlkZGVyIGFyZSBzY2hlZHVsZWQgdG8gYmUgYXBwcm92ZWQgYnkgdGhlIGJ1eWVyICovXG4gICAgYXBwcm92YWxEYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzaG91bGQgc3BlY2lmeSBob3cgdGhlIGFwcHJvdmFsIGlzIHBlcmZvcm1lZCBieSB0aGUgYnV5ZXIuIFRoaXMgbWF0Y2hlcyBcIkFjY2VwdFR5cGVcIiBpbiBHQUVCICovXG4gICAgdHlwZU9mQXBwcm92YWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgc3RyaW5nIHByb3BlcnR5IGlzIHNoYXJlZCBieSBhbGwgSUVsZW1lbnRzLCBhbmQgaW5kaWNhdGVzIGlmIHRoZSBlbGVtZW50IGlzIHBhcnQgb2YgYW4gYWRkZW5kdW0sIGEgJ05hY2h0cmFnJyBpbiBHZXJtYW4uICovXG4gICAgYWRkZW5kdW1OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzLCBpZiB0aGlzIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSBhbiwgaWYgeWVzLCB3aXRoIHdoYXQgc3RhdHVzLiAqL1xuICAgIGFkZGVuZHVtU3RhdHVzPzogQWRkZW5kdW1TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaG9sZHMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0aGF0J3Mgb25seSB2YWxpZCBpbiBjb21tZXJjZSBleGNoYW5nZSBwaGFzZXMuICovXG4gICAgY29tbWVyY2VQcm9wZXJ0aWVzPzogU2VydmljZVNwZWNpZmljYXRpb25Db21tZXJjZVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgaW50ZXJuYWxseSB1c2VkIGR1cmluZyBtYXBwaW5nIG9wZXJhdGlvbnMgdG8gdGVtcG9yYXJpbHkgaG9sZCBpbmZvcm1hdGlvbiBhYm91dCByZW1vdmVkIEl0ZW1OdW1iZXJTY2hlbWFzLiBUaG9zZSBzY2hlbWFzIGFyZSBzZXQgdG8gbnVsbCBkdXJpbmcgdGhlIG1hcHBpbmcgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBzY2hlbWFzIGluIGVsZW1lbnRzIGhpZ2hlciB1cCBpbiB0aGUgaGllcmFyY2h5IGFyZSBjb3JyZWN0bHkgcGFzc2VkIGRvd24gdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgaXRlbU51bWJlclNjaGVtYU1hcHBpbmdPcGVyYXRpb24/OiBJdGVtTnVtYmVyU2NoZW1hTWFwcGluZ09wZXJhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBpbnRlcm5hbGx5IHVzZWQgZHVyaW5nIG1hcHBpbmcgb3BlcmF0aW9ucyB0byB0ZW1wb3JhcmlseSBob2xkIGluZm9ybWF0aW9uIGFib3V0IGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zICovXG4gICAgY29tcGxlbWVudGluZ1Bvc2l0aW9uRGF0YT86IENvbXBsZW1lbnRpbmdQb3NpdGlvbkRhdGEgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBCYXNlIGludGVyZmFjZSBkZWZpbml0aW9uIGZvciBlbGVtZW50cyB3aXRoaW4gYW4gRWxlbWVudENvbnRhaW5lckJhc2UuICovXG5leHBvcnQgaW50ZXJmYWNlIElFbGVtZW50RHRvIHtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgaXMgdXNlZCB0byBzdG9yZSB0aGUgR0FFQiBYTUwgSWQgd2l0aGluIHRoaXMgSUVsZW1lbnQuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHN0cmluZyBwcm9wZXJ0eSBpcyBzaGFyZWQgYnkgYWxsIElFbGVtZW50cywgYW5kIGluZGljYXRlcyBpZiB0aGUgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtLCBhICdOYWNodHJhZycgaW4gR2VybWFuLiAqL1xuICAgIGFkZGVuZHVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcjogc3RyaW5nO1xufVxuXG4vKiogVGhpcyBjbGFzcyBkZXNjcmliZXMgYW4gZXh0ZXJuYWwgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9ndWVEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBDYXRhbG9ndWUuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbmFtZSB0aGF0IGlzIGdpdmVuIGZvciB0aGlzIGNhdGFsb2d1ZS4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgY2F0YWxvZ3VlLiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBnaXZlbiwgdGhpcyBnaXZlcyBhIGNsYXNzaWZpY2F0aW9uIGZvciB0aGUgY29udGVudHMgb2YgdGhlIGNhdGFsb2d1ZSAqL1xuICAgIGNhdGFsb2d1ZVR5cGU/OiBDYXRhbG9ndWVUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IG1heSBob2xkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhdGFsb2d1ZSB0eXBlLiBJdCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGluIEdBRUIgWE1MIGV4Y2hhbmdlIHRvIGNhcnJ5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgY2F0YWxvZ3VlIHR5cGUsIGJ1dCBpdCdzIG90aGVyd2lzZSBqdXN0IGEgZnJlZSB0ZXh0IGZpZWxkLiAqL1xuICAgIGNhdGFsb2d1ZVR5cGVEZXRhaWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiBhIGNhdGFsb2d1ZS4gQ2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIGhvbGQgaW5mb3JtYXRpb24gdG8gY2F0ZWdvcml6ZSBhbmQgZGVzY3JpYmUgaXRlbXMuIEZvciBleGFtcGxlLCB0aGUgR2VybWFuIERJTiAyNzYgY29zdCBncm91cCBzdGFuZGFyZHMgZGVzY3JpYmUgZGlmZmVyZW50IHR5cGVzIG9mIGNvc3RzIGZvciBidWlsZGluZyBwcm9qZWN0cy4gV2hlbiByZWZlcmVuY2luZyB0aGUgRElOIDI3NiBjYXRhbG9ndWUgYW5kIHByb3ZpZGluZyBhbiBpdGVtIGtleSBvciBpZGVudGlmaWVyLCBpdCBpcyBwb3NzaWJsZSB0byByZWZlcmVuY2UgZGF0YSBpbiB0aGlzIGNhdGFsb2d1ZS4gKi9cbmV4cG9ydCBlbnVtIENhdGFsb2d1ZVR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBMb2NhdGlvbiA9IFwiTG9jYXRpb25cIixcbiAgICBESU4yNzYgPSBcIkRJTjI3NlwiLFxuICAgIENvc3RVbml0ID0gXCJDb3N0VW5pdFwiLFxuICAgIFdvcmtDYXRlZ29yeSA9IFwiV29ya0NhdGVnb3J5XCIsXG4gICAgT2Vub3JtQjE4MDFDb3N0R3JvdXAgPSBcIk9lbm9ybUIxODAxQ29zdEdyb3VwXCIsXG4gICAgQklNID0gXCJCSU1cIixcbiAgICBBdHRhY2htZW50ID0gXCJBdHRhY2htZW50XCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gbGluayBkYXRhIGJldHdlZW4gY2F0YWxvZ3VlcyBhbmQgb2JqZWN0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ3VlUmVmZXJlbmNlRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgcG9pbnRzIHRvIHRoZSBpdGVtIGluIHRoZSBjYXRhbG9ndWUgaXRzZWxmLiBUaGlzIG1lYW5zIHRoYXQsIGZvciBleGFtcGxlIHdoZW4gdGhpcyBxdWFudGl0eSBhc3NpZ25tZW50IHJlZmVyZW5jZXMgYSBcIkRJTiAyNzZcIiBjYXRhbG9ndWUsIHRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIHRoZSBudW1iZXIgLyBpZGVudGlmaWVyIC8ga2V5IGluIERJTiAyNzYgdGhhdCBpcyByZWZlcmVuY2VkLiAqL1xuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZUtleT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIElkIG9mIHRoZSBDYXRhbG9ndWVSZWZlcmVuY2UgdGhhdCBpcyB0YXJnZXRlZCBieSB0aGlzIGl0ZW0uIFNldCB0aGlzIHByb3BlcnR5IHRvIHNldCB0aGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVSZWZlcmVuY2UgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcmV0dXJucyB0aGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUuIFdpbGwgcmV0dXJuIG51bGwgaWYgdGhlcmUgaXMgbm8gcmVmZXJlbmNlIG9yIHRoZSBjYXRhbG9ndWUgaXMgbm90IHByZXNlbnQgaW4gdGhlIFByb2plY3RDYXRhbG9ndWVzLiAqL1xuICAgIHJlYWRvbmx5IGNhdGFsb2d1ZT86IENhdGFsb2d1ZUR0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEEgUG9zaXRpb24gaXMgdGhlIG1haW4gaXRlbSB0eXBlIGluIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGFza3MgdG8gYmUgZG9uZSwgdGhlaXIgcHJpY2VzLCBkZXNjcmlwdGlvbiwgYW1vdW50cyBldGMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uRHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xuICAgIC8qKiBXaWxsIHJldHVybiB0aGUgcHJpY2UgcGVyIHVuaXQsIHJvdW5kZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm9qZWN0IHNldHRpbmdzIG9yIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRocmVlIGRlY2ltYWwgcGxhY2VzICovXG4gICAgcmVhZG9ubHkgdW5pdFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNldCB0aGUgdW5pdCBwcmljZSBmb3IgdGhpcyBwb3NpdGlvbi4gVGhpcyB3aWxsIG92ZXJyaWRlIGFueSBnaXZlbiBQcmljZUNvbXBvbmVudHMgKi9cbiAgICB1bml0UHJpY2VPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBQb3NpdGlvbidzIHRvdGFsIHF1YW50aXR5LCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xuICAgIHJlYWRvbmx5IHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNldCB0aGUgcXVhbnRpdHkgZm9yIHRoaXMgcG9zaXRpb24uIFRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZ2l2ZW4gUXVhbnRpdHlDb21wb25lbnRzICovXG4gICAgcXVhbnRpdHlPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgdHJ1ZSBpZiB0aGlzIHNwZWNpZmljIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBhcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24gZm9yIGFueSBiYXNlIHBvc2l0aW9uLiAqL1xuICAgIGlzQ29tcGxlbWVudGluZ1Bvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgSXNDb21wbGVtZW50aW5nUG9zaXRpb24gaXMgc2V0IHRvIHRydWUsIHRoaXMgd2lsbCBpbmRpY2F0ZSB3aGljaCBiYXNlIHBvc2l0aW9ucyBhcmUgdGFyZ2V0ZWQgYnkgdGhpcyBjb21wbGVtZW50aW5nIHBvc2l0aW9uLiAqL1xuICAgIGNvbXBsZW1lbnRzUG9zaXRpb25zPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc3BlY2lmeSB0aGUgdG90YWwgcHJpY2Ugb2YgdGhpcyBwb3NpdGlvbiBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHN1bSBvZiB0aGUgdG90YWwgcHJpY2VzIG9mIGJhc2UgcG9zaXRpb25zIHRoYXQgdGhpcyBwb3NpdGlvbiBjb21wbGVtZW50cy4gSXQgd2lsbCBlc3NlbnRpYWxseSBzZXQgdGhlIHRvdGFsIHByaWNlIGZvciB0aGlzIHBvc2l0aW9uIHRvIHRoZSBzdW0gb2YgYWxsIHRvdGFsIHByaWNlcyBvZiB0aGUgcG9zaXRpb25zIHNwZWNpZmllZCBpbiBDb21wbGVtZW50c1Bvc2l0aW9ucyBtdWx0aXBsaWVkIGJ5IHRoZSBwZXJjZW50YWdlIGhlcmUuIElmIHByZXNlbnQsIHRoaXMgaGFzIHByZWNlZGVuY2Ugb3ZlciBVbml0UHJpY2VPdmVycmlkZSBhcyB3ZWxsIGFzIFF1YW50aXR5T3ZlcnJpZGUuICovXG4gICAgY29tcGxlbWVudGluZ1ByaWNlUGVyY2VudGFnZU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgcmVhZCBvbmx5IHByb3BlcnR5IHNob3dpbmcgdGhlIHRvdGFsIHByaWNlIG9mIHRoaXMgcG9zaXRpb25zIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgc3VtIG9mIHRoZSB0b3RhbCBwcmljZXMgb2YgYWxsIGJhc2UgcG9zaXRpb25zLCBpbiBjYXNlIHRoaXMgcG9zaXRpb24gaXMgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9ucy4gSWYgdGhpcyBwb3NpdGlvbiBpcyBub3QgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uLCB0aGlzIHdpbGwgYmUgbnVsbC4gQWxzbywgaWYgbm8gcHJpY2VzIGFyZSBwcmVzZW50LCB0aGlzIHdpbGwgYWxzbyBiZSBudWxsLiAqL1xuICAgIGNvbXBsZW1lbnRpbmdQcmljZVBlcmNlbnRhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0YWcgb2YgdGhlIHVuaXQgdXNlZCBmb3IgdGhpcyBwb3NpdGlvbnMgcXVhbnRpdHkuICovXG4gICAgdW5pdFRhZz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvbXBvbmVudHMgZm9yIGxhYm91ciB0aW1lIGluIHRoaXMgUG9zaXRpb24uICovXG4gICAgbGFib3VyQ29tcG9uZW50cz86IExhYm91clByaWNlQ29tcG9uZW50RHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgc2luZ2xlIHByaWNlIGNvbXBvbmVudHMgaW4gdGhpcyBQb3NpdGlvbi4gUHJpY2UgY29tcG9uZW50cyBzaG91bGQgbm90IGJlIGhhbmRsZWQgZGlyZWN0bHkgb24gYSBwZXItcG9zaXRpb24gYmFzaXMgYnV0IHNldCBnbG9iYWxseSBpbiB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cbiAgICBwcmljZUNvbXBvbmVudHM/OiBQcmljZUNvbXBvbmVudER0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcXVhbnRpdHkgY29tcG9uZW50cyBvZiB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIHF1YW50aXR5Q29tcG9uZW50cz86IENhbGN1bGF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEZ1cnRoZXIgc3RydWN0dXJpbmcgb2YgdGhpcyBQb3NpdGlvbi4gKi9cbiAgICBzdWJEZXNjcmlwdGlvbnM/OiBTdWJEZXNjcmlwdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIHN0YXR1cyBvZiB0aGlzIFBvc2l0aW9uJ3MgY29taXNzaW9uLiAqL1xuICAgIGNvbWlzc2lvblN0YXR1cz86IENvbWlzc2lvblN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogQSBsaXN0IG9mIHBvc2l0aW9ucyB0aGF0IGNvbXBsZW1lbnQgdGhpcyBQb3NpdGlvbi4gVGhlIHBvc2l0aW9ucyBhcmUgcmVmZXJlbmNlZCBieSB0aGVpciBHVUlEcy4gSXQgbWlnaHQgYmUgdXNlZCB0b2dldGhlciB3aXRoIENvbXBsZW1lbnRlZEJ5UXVhbnRpdGllcyBpbiBjYXNlIHRoYXQgb25seSBhIGdpdmVuIHF1YW50aXR5IGlzIGNvbXBsZW1lbnRlZCBieSBwb3NpdGlvbnMuICovXG4gICAgY29tcGxlbWVudGVkQnk/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCBpbmRpY2F0ZSBpZiB0aGlzIFBvc2l0aW9uIGlzIGNvbXBsZW1lbnRlZCBpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uIGJ5IG90aGVyIFBvc2l0aW9ucy4gSXQgY2FuIG5vdCBiZSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGVyZSBhcmUgZW50cmllcyBpbiB0aGUgQ29tcGxlbWVudGVkQnkgcHJvcGVydHkuICovXG4gICAgY29tcGxlbWVudGVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIHRoYXQgdGhlIGFtb3VudCBmb3IgdGhpcyBQb3NpdGlvbiBpcyB0byBiZSBzZXQgYnkgdGhlIGJpZGRlci4gKi9cbiAgICBhbW91bnRUb0JlRW50ZXJlZEJ5QmlkZGVyPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBiaWRkZXIgZGVtYW5kcyBmb3IgcHJpY2VzIHRvIGJlIGJyb2tlbiB1cCBpbnRvIHRoZWlyIHByaWNlIGNvbXBvbmVudHMuICovXG4gICAgcHJpY2VDb21wb3NpdGlvblJlcXVpcmVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgUG9zaXRpb24gc2hvdWxkIHVzZSBhIGRpZmZlcmVudCBUYXhSYXRlIHRoYW4gd2hhdCBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlIFByb2plY3QuICovXG4gICAgdXNlRGlmZmVyZW50VGF4UmF0ZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdpbGwgcmV0dXJuIGVpdGhlciB0aGUgcGFyZW50IFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3MgVGF4UmF0ZSBvciBpdCdzIG93biBpZiBpdCBoYXMgYSBkaWZmZXJlbnQgdmFsdWUuIChGb3IgZXhhbXBsZSwgaW4gR2VybWFueSBXYXRlciBoYXMgYSBkaWZmZXJlbnQgVGF4UmF0ZSB0aGFuIHJlZ3VsYXIgUG9zaXRpb25zKSAqL1xuICAgIHRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyIGZvciB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIGl0ZW1OdW1iZXI/OiBJdGVtTnVtYmVyRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcmF0ZSBvZiBkZWR1Y3Rpb25zLCBpLmUuIDAuMTJtIG1lYW5zIDEyJSBwcmljZSBkZWR1Y3Rpb24uICovXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9kdWN0IG9mIFVuaXRQcmljZSB0aW1lcyBRdWFudGl0eS4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIHRoaXMgUG9zaXRpb24uICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUb3RhbCBncm9zcyBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIE5ldCBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRoaXMgaXMgdGhlIHRvdGFsIHByaWNlLCBmcm9tIFRvdGFsUHJpY2UsIG5vdCB0aGUgdW5pdCBwcmljZSBvZiB0aGUgcG9zaXRpb24uICovXG4gICAgcmVhZG9ubHkgZGVkdWN0ZWRQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgYSBwb3NpdGlvbi4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBwb3NpdGlvbiwgaXRzIEFsdGVybmF0aXZlVG8gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byB0aGUgaWQgb2YgdGhlIHBvc2l0aW9uIGl0IGNhbiByZXBsYWNlLiAqL1xuICAgIHBvc2l0aW9uVHlwZT86IFBvc2l0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBQcmljZVR5cGUgb2YgdGhpcyBQb3NpdGlvbi4gKi9cbiAgICBwcmljZVR5cGU/OiBQcmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoaXMgcG9zaXRpb24gaXMgcmVndWxhciBvciBkZXNjcmliaW5nIGEgbGFib3VyIC8gaG91cmx5IHBhaWQgd29yayBzZXJ2aWNlICovXG4gICAgc2VydmljZVR5cGU/OiBTZXJ2aWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBkZXNjcmliZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBhIHByb2R1Y3QgYmVpbmcgdXNlZCB3aXRoaW4gdGhpcyBQb3NpdGlvbi4gRm9yIGV4YW1wbGUsIGEgcGlwZSBwb3NpdGlvbiwgcGVyIGxlbmd0aCB1bml0LCBjb3VsZCBiZSBjb21wb3NlZCBvZiBkaWZmZXJlbnQgcGlwZSBzZWdtZW50cywgZml0dGluZyBhbmQgb3RoZXIgYWNjZXNzb3J5IGFydGljbGVzLiAqL1xuICAgIHByb2R1Y3REYXRhPzogUHJvZHVjdERhdGFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xuICAgIGh0bWxMb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQgY29udGFpbnMgQnV5ZXIgb3IgQmlkZGVyIGFkZGl0aW9ucyB0byB0aGUgdGV4dC4gKi9cbiAgICBhZGRpdGlvblR5cGU/OiBBZGRpdGlvblR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFF1YW50aXR5IGFzc2lnbm1lbnRzIGFyZSwgaW4gY29udHJhc3QgdG8gU3ViRGVzY3JpcHRpb25zLCB1c2VkIHRvIGNhdGVnb3JpemUgcGFydHMgb2YgdGhpcyBQb3NpdGlvbi4gRm9yIGV4YW1wbGUsIGl0IGNvdWxkIGJlIGNhdGVnb3JpemVkIGJ5IGNvc3QgZ3JvdXAgLSBlLmcuIGEgUG9zaXRpb24gZGVzY3JpYmluZyBjb25jcmV0ZSB3YWxscyBjb3VsZCBmb2xsb3cgdGhlIEdlcm1hbiBESU4gMjc2IENvc3QgR3JvdXBzIFN0YW5kYXJkIGFuZCBzcGVjaWZ5IHRoYXQgb2YgdGhlIHRvdGFsIDEuMDAwbcKyIHdhbGwsIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBleHRlcmlvciB3YWxscyBhbmQgNTAwbcKyIGFyZSBjbGFzc2lmaWVkIGFzIGludGVyaW9yIHdhbGxzLiBUaGV5IHdvdWxkIHRoZW4gaGF2ZSBkaWZmZXJlbnQgY29zdCBncm91cHMgYXNzb2NpYXRlZCwgZS5nLiBmb3IgYWNjb3VudGluZyBwdXJwb3Nlcy4gKi9cbiAgICBxdWFudGl0eUFzc2lnbm1lbnRzPzogUXVhbnRpdHlBc3NpZ25tZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBDb21tZXJjZVByb3BlcnRpZXMgc3VwcG9ydCBzcGVjaWFsaXplZCBpbmZvcm1hdGlvbiB0aGF0IGlzIG9ubHkgdXNlZnVsIGluIEdBRUIgWE1MIDl4IGRhdGEgZXhjaGFuZ2UgcGhhc2VzLiBJdCBpcyBpbnRlbmRlZCB0byBwcm92aWRlIGFydGljbGUgaW5mb3JtYXRpb24uICovXG4gICAgY29tbWVyY2VQcm9wZXJ0aWVzPzogQ29tbWVyY2VQcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIHBvc2l0aW9uIGlzIGFuIEFsdGVybmF0aXZlLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgcG9zaXRpb24gaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBzZXQgdG8gYSB2YWx1ZSwgeW91IGNhbiBvcHRpb25hbGx5IGFsc28gc3BlY2lmeSBhbiBpZGVudGlmaWVyIHZpYSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgdG8gc3BlY2lmaXkgbXVsdGlwbGUgcG9zaXRpb25zIHRoYXQgbXVzdCBiZSB1c2VkIHRvZ2V0aGVyIHRvIGJlIGFuIGFsdGVybmF0aXZlIHRvIGEgc2luZ2xlIGJhc2UgcG9zaXRpb24uICovXG4gICAgYWx0ZXJuYXRpdmVUbz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUby4gSWYgdGhpcyBpcyBzZXQsIHlvdSBjYW4gaW5kaWNhdGUgd2hpY2ggYWx0ZXJuYXRpdmUgZ3JvdXAgYSBzcGVjaWZpYyBwb3NpdGlvbiBpcyBhc3NpZ25lZCB0by4gVGhhdCB3YXksIGlmIHlvdSBzcGVjaWZpeSBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBQb3NpdGlvbnMgd2l0aCB0aGUgc2FtZSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHlvdSBjYW4gaW5kaWNhdGUgdGhhdCB0byByZXBsYWNlIGEgc2luZ2xlIGJhc2UgUG9zaXRpb24sIG11bHRpcGxlIGFsdGVybmF0aXZlIFBvc2l0aW9ucyBzaG91bGQgYmUgdXNlZC4gVGhpcyBwcm9wZXJ0eSBpcyBub3QgY2hlY2tlZCBvciBtYW5hZ2VkIGF1dG9tYXRpY2FsbHksIHNvIGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIHByb3BlcnR5IHRvIGJlY29tZSBpbnZhbGlkLCBieSBmb3IgZXhhbXBsZSBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYnV0IG5vdCBzZXR0aW5nIGEgYmFzZSBwb3NpdGlvbiB2aWEgQWx0ZXJuYXRpdmVUby4gKi9cbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8gYW5kIEFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyLiBJZiB0aGlzIGlzIHNldCwgeW91IGNhbiBpbmRpY2F0ZSB3aGljaCBhbHRlcm5hdGl2ZSBncm91cCBhIHNwZWNpZmljIHBvc2l0aW9uIGlzIGFzc2lnbmVkIHRvLiBUaGF0IHdheSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBpZCAoaW4gaW50ZWdlciBmb3JtYXQpIGZvciB0aGUgYWx0ZXJuYXRpdmUgZ3JvdXAgdGhpcyBwb3NpdGlvbiBiZWxvbmdzIHRvLiBJdCdzIGRpZmZlcmVudCB0byBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgaW4gdGhhdCB0aGUgb3RoZXIgcHJvcGVydHkgZGVzY3JpYmVzIHRoZSBpZCBvZiB0aGUgZ3JvdXAsIHdoaWxlIHRoaXMgcHJvcGVydHkgaGVyZSBkZXNjcmliZXMgdGhlIGdyb3VwIGl0c2VsZi4gSWYgYSBwb3NpdGlvbiBvbmx5IGhhcyBzZXQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIgYnV0IG5vdCBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHRoZW4gaXQgbGlrZWx5IGlzIGEgYmFzZSBwb3NpdGlvbiBmb3IgYSBzcGVjaWZpYyBncm91cC4gVGhpcyB3YXMgaW50cm9kdWNlZCBpbiB2ZXJzaW9uIHYyLjkuMCB0byBiZSBhYmxlIHRvIG1vZGVsIGJvdGggcG9zaXRpb24gYW5kIGdyb3VwIGlkcyBmb3IgYWx0ZXJuYXRpdmUgZ3JvdXAgY29tYmluYXRpb25zLiBUaGlzIHByb3BlcnR5IGlzIG5vdCBjaGVja2VkIG9yIG1hbmFnZWQgYXV0b21hdGljYWxseSwgc28gaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgcHJvcGVydHkgdG8gYmVjb21lIGludmFsaWQsIGJ5IGZvciBleGFtcGxlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBidXQgbm90IHNldHRpbmcgYSBiYXNlIHBvc2l0aW9uIHZpYSBBbHRlcm5hdGl2ZVRvLiAqL1xuICAgIGFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHRydWUsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBwb3NpdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGx1bXAgc3VtLCBcIlBhdXNjaGFsXCIgaW4gR2VybWFuLiBUaGlzIG1lYW5zIHRoZSBwb3NpdGlvbiB0b3RhbCBwcmljZSB0aGF0IGlzIGJlaW5nIGludm9pY2VkIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBhY3R1YWwgcXVhbnRpdHkuIEluIHByYWN0aWNlLCBwYXJ0aWFsIGludm9pY2VzIGFyZSBzdGlsbCBvZnRlbiB1c2VkIGZvciBwYXJ0aWFsIHNlcnZpY2VzIHJlbmRlcmVkLiBUaGlzIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCB0aGUgcHJpY2UgY2FsY3VsYXRpb24gZm9yIHRoaXMgcG9zaXRpb24uIFR5cGljYWxseSwgdGhlIFF1YW50aXR5IHNob3VsZCBiZSBzZXQgdG8gMS4wIHdoZW4gdGhpcyBmbGFnIGlzIHVzZWQuICovXG4gICAgaXNMdW1wU3VtPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhIHBvc2l0aW9uIGluIHRoZSBzYW1lIFNlcnZpY2VTcGVjaWZpY2F0aW9uIHRoYXQgYWN0cyBhcyBhIGJhc2UgcG9zaXRpb24uIEl0IG1hdGNoZXMgXCJCZXp1Z3Nwb3NpdGlvblwiIGluIEdBRUIuIFRoaXMgY2FuIGJlIHVzZWQgZm9yIHBvc2l0aW9ucyB0aGF0IHJlcGVhdCBwYXJ0aWFsbHkgb3IgYXJlIGxpbmtlZCB0b2dldGhlciAqL1xuICAgIHJlcGV0aXRpb25Ubz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB2MUNvbXBhdGliaWxpdHlQcmljZVR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcmVwcmVzZW50cyBhIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbi4gVGhpcyBtZWFucyB0aGF0IGluc3RlYWQgb2Ygc29sZWx5IHJlbHlpbmcgb24gdGV4dHMgdG8gZGVzY3JpYmUgYSBzZXJ2aWNlLCBleHRlcm5hbCBzdGFuZGFyZHMgYW5kIGRlZmluaXRpb25zIGFyZSByZWZlcmVuY2VkIGZvciBhIGNvbW1vbiB1bmRlcnN0YW5kaW5nLiAqL1xuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbGlzdCBjb250YWlucyByZWZlcmVuY2VzIHRvIHBvc2l0aW9ucyB0aGF0IGNvbXBsZW1lbnQgdGhpcyBvbmUsIGFkZGl0aW9uYWxseSBhbHNvIHNwZWNpZnlpbmcgYSBxdWFudGl0eSBmb3Igd2hpY2ggdGhlIGFkZGl0aW9uIGlzIGludGVuZGVkLiBUaGlzIGRvZXMgbm90IHJlcGxhY2UgdGhlIENvbXBsZW1lbnRlZEJ5IHByb3BlcnR5IGFuZCB0aGVyZSBhcmUgbm8gYXV0b21hdGljIGNoZWNrcyBiZWluZyBkb25lIGJldHdlZW4gdGhlc2UgdHdvIHByb3BlcnRpZXMsIHNvIGl0J3MgdXAgdG8gdGhlIHVzZXIgY29kZSB0byBlbnN1cmUgZGVsZXRpb25zIChhbmQgYWRkaXRpb25zLCBpZiBkZXNpcmVkKSBhcmUgcGVyZm9ybWVkIGZvciBib3RoIHByb3BlcnRpZXMuIFdoZW4gY29weWluZyB3aXRoaW5nIGtlZXBpbmcgSWRzLCB0aGlzIGxpc3Qgd2lsbCBub3QgYmUgcGFydCBvZiB0aGUgY29weSBwcm9jZXNzLCBzaW5jZSBpdCB3b3VsZCBvbmx5IGNvbnRhaW4gcXVhbnRpdGllcyB3aXRob3V0IGFjdHVhbCBwb3NpdGlvbiByZWZlcmVuY2VzLiBDb250YWluZXJzLCBob3dldmVyLCB3aWxsIHJlYnVpbGQgdGhlIGxpc3Qgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIHJlZmVyZW5jZXMgd2hlbiBjb3B5aW5nIHBvc2l0aW9ucyB0aGF0IGNvbnRhaW4gZW50cmllcyBoZXJlLiAqL1xuICAgIGNvbXBsZW1lbnRlZEJ5UXVhbnRpdGllcz86IENvbXBsZW1lbnRlZEJ5UXVhbnRpdHlEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyBzaG91bGQgYmUgZXhlY3V0ZWQgaW4gcHJhY3RpY2UuIE9mdGVuLCB0aGUgcG9zaXRpb24gaXRzZWxmIHN0aWxsIGhhcyB0ZXh0IG9mIGl0cyBvd24gdG8gaGlnaGxpZ2h0IGRldmlhdGlvbnMgZnJvbSB0aGF0IG9yIGFkZCBtb3JlIGRldGFpbHMuICovXG4gICAgZXhlY3V0aW9uRGVzY3JpcHRpb25SZWZlcmVuY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIGEgcG9zaXRpb24gaGFzIG5vdCBiZWVuIG9mZmVyZWQuIFRoaXMgaXMgdHlwaWNhbGx5IG9ubHkgZXhwZWN0ZWQgdG8gYmUgdHJ1ZSB3aGVuIHRoZSBleGNoYW5nZSBwaGFzZSBvZiB0aGUgcGFyZW50IFNlcnZpY2VTcGVjaWZpY2F0aW9uIGlzIE9mZmVyLCBhbmQgaXQgbWVhbnMgdGhhdCB0aGUgcG9zaXRpb24gaGFzIG5vdCBiZWVuIG9mZmVyZWQgYXQgYWxsLiAqL1xuICAgIG5vdE9mZmVyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBQb3NpdGlvbnMgYW5kIGV4dGVuZHMgdGhlIE9lbm9ybVByb3BlcnRpZXMgYmFzZSBjbGFzcy4gKi9cbiAgICBvZW5vcm1Qb3NpdGlvblByb3BlcnRpZXM/OiBPZW5vcm1Qb3NpdGlvblByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXG4gICAgZGVzY3JpcHRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHplcm8gYmFzZWQgaGllcmFyY2h5IGxldmVsLiBJdCdzIHNldCBhdXRvbWF0aWNhbGx5IHdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIFByb2plY3QsIGFuZCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgaGllcmFyY2h5IGxldmVsIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuICovXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzLCBpZiB0aGlzIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSBhbiwgaWYgeWVzLCB3aXRoIHdoYXQgc3RhdHVzLiAqL1xuICAgIGFkZGVuZHVtU3RhdHVzPzogQWRkZW5kdW1TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIGluIEdBRUIgZXhjaGFuZ2Ugc2NlbmFyaW9zLiBJdCBpcyBvbmx5IG1lYW5pbmdmdWwgaWYgdGhpcyBwb3NpdGlvbiBpdHNlbGYgaXMgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uLCBtZWFuaW5nIGlmIHRoaXMgcG9zaXRpb24gaXMgbWFya2VkIGluIG90aGVyIHBvc2l0aW9ucyBpbiB0aGVpciBDb21wbGVtZW50ZWRCeSBsaXN0LiBUaGVuLCBpdCBzcGVjaWZpZXMgaG93IHRoZSBjb21wbGVtZW50aW5nIHNob3VsZCBiZSBleHByZXNzZWQgaW4gR0FFQi4gQnkgZGVmYXVsdCwgcG9zaXRpb25zIGFyZSBhbHdheXMgZXhwbGljaXRseSByZWZlcmVuY2VkLCBidXQgb3RoZXIgb3B0aW9ucyBhcmUgcG9zc2libGUuIFBsZWFzZSBhbHNvIG5vdGUgdGhhdCB0aGUgRGFuZ2wuQVZBLkNvbnZlcnRlciBwYWNrYWdlLCB3aGljaCBpcyB1c2VkIGZvciBHQUVCIGV4cG9ydHMsIHdpbGwgY2hlY2sgaWYgdGhlIGdpdmVuIHR5cGUgaXMgdmFsaWQgaW4gdGhlIGN1cnJlbnQgcHJvamVjdCBjb25maWd1cmF0aW9uLiBJZiBub3QsIGRpcmVjdGx5IHJlZmVyZW5jZWQgcG9zaXRpb25zIHdpbGwgYmUgdXNlZCBhcyBmYWxsYmFjay4gKi9cbiAgICBnYWViQ29tcGxlbWVudGluZ1R5cGU/OiBQb3NpdGlvbkNvbXBsZW1lbnRpbmdUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBIb2xkT3V0IHByb3BlcnRpZXMgZGVzY3JpYmUgc2VydmljZXMgdGhhdCBhcmUgdG8gYmUgcHJvdmlkZWQgYW5kIG1haW50YWluZWQgZm9yIGEgc3BlY2lmaWMgdGltZSwgZS5nLiBmZW5jZXMgb24gYSBjb25zdHJ1Y3Rpb24gc2l0ZS4gKi9cbiAgICBob2xkT3V0UHJvcGVydGllcz86IFBvc2l0aW9uSG9sZE91dFByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBwcm9wZXJ0eSwgd2hpY2ggZGlyZWN0bHkgaG9sZHMgYSBudW1lcmljYWwgdmFsdWUgZm9yIGFuIGVzdGltYXRlZCBxdWFudGl0eS4gSXQgaXMgbm90IHVzZWQgZm9yIGFueSBwcmljZSBjYWxjdWxhdGlvbnMuICovXG4gICAgZXN0aW1hdGVkUXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBob2xkcyBwcmljZSBjYXRhbG9ndWUgZGF0YS4gVGhlc2UgYXJlIHByaWNlcyB0aGF0IG1heSByZXByZXNlbnQgYW4gZXN0aW1hdGUsIGFuZCB0aGV5IHR5cGljYWxseSBjb21lIGZyb20gYSBwcmljZSBjYXRhbG9ndWUuICovXG4gICAgcHJpY2VDYXRhbG9ndWVEYXRhPzogUHJpY2VDYXRhbG9ndWVEYXRhRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcy4gKi9cbiAgICBpZ25vcmVQcm9qZWN0Q2F0YWxvZ3VlUHJvcGFnYXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogQmFzZWQgb24gdGhlIFByaWNlQ29tcG9uZW50LCB0aGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBsYWJvdXIgdGltZSBjb21wb25lbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJvdXJQcmljZUNvbXBvbmVudER0byB7XG4gICAgLyoqIFRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcmljZSBjb21wb25lbnQuIFdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cbiAgICBsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsLCBjYWxjdWxhdGVkIHByaWNlIG9mIHRoaXMgY29tcG9uZW50LiBXaWxsIG11bHRpcGx5IHRoZSBjYWxjdWxhdGVkIGFtb3VudCBvZiBob3VycyB3aXRoIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbnMgaG91cmx5IHdhZ2UgcmF0ZS4gKi9cbiAgICByZWFkb25seSBwcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvc3QgcGVyIGhvdXIgb2YgbWFudWFsIGxhYm9yLiAqL1xuICAgIGhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXG4gICAgdmFsdWVzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbidzIHN0YW5kYXJkIEhvdXJseVdhZ2UgaXMgdG8gYmUgdXNlZCBvciBhIGN1c3RvbSB2YWx1ZS4gKi9cbiAgICB1c2VPd25Ib3VybHlXYWdlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsLCBjYWxjdWxhdGVkIHRpbWUgb2YgdGhpcyBjb21wb25lbnQuIFdpbGwgcmV0dXJuIHRoZSByZXN1bHQgcm91bmRlZCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcy4gKi9cbiAgICByZWFkb25seSB0b3RhbFRpbWU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBob2xkcyBtZWFucyB0byBjYWxjdWxhdGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb25zIGZyb20gZ2l2ZW4gc3RyaW5ncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRpb25EdG8ge1xuICAgIC8qKiBEZXNjcmlwdGl2ZSB0ZXh0IGZvciB0aGlzIGNhbGN1bGF0aW9uLiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIENhbGN1bGF0aW9uJ3MgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24uIFBsZWFzZSBub3RlIHRoYXQgdGhvdXNhbmRzIHNlcGFyYXRvcnMgYXJlIG5vdCBzdXBwb3J0ZWQuIEJvdGggY29tbWEgYW5kIHBvaW50IHdpbGwgYmUgdHJlYXRlZCBhcyBkZWNpbWFsIHNlcGFyYXRvcnMuICovXG4gICAgZm9ybXVsYT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNhbGN1bGF0ZWQgcmVzdWx0IGZyb20gdGhlIGZvcm11bGEsIDAgaWYgaW52YWxpZC4gKi9cbiAgICByZWFkb25seSByZXN1bHQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdoZXRoZXIgdGhlIEZvcm11bGEgaXMgYSB2YWxpZCBleHByZXNzaW9uLiAqL1xuICAgIHJlYWRvbmx5IHZhbGlkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCBiZSAtMSBpZiB0aGUgRm9ybXVsYSBpcyBjb3JyZWN0LCBlbHNlIGl0IHdpbGwgc2hvdyB0aGUgcG9zaXRpb24gaW4gdGhlIGZvcm11bGEgd2hlcmUgYW4gZXJyb3Igd2FzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgemVybyBiYXNlZCBpbmRleC4gKi9cbiAgICByZWFkb25seSBlcnJvclBvc2l0aW9uSW5MaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlcyB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIENhbGN1bGF0aW9uLiBDYXRhbG9ndWVzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gVGhleSBhcmUgcHJvcGFnYXRlIHRvIGFsbCBjaGlsZCBlbGVtZW50cywgZS5nLiBvdGhlciBjb250YWluZXJzIGFuZCBRdWFudGl0eUFzc2lnbm1lbnRzLiBJbiB0aGUgY29udGV4dCBvZiBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uLCBhbGwgZWxlbWVudHMgc2hhcmUgdGhlIHNhbWUgaW5zdGFuY2Ugb2YgdGhlIGNvbGxlY3Rpb24uICovXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogUmVmZXJlbmNlZCBjYXRhbG9ndWVzIGZvciB0aGlzIENhbGN1bGF0aW9uLiAqL1xuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgcHJvdmlkZXMgbWVhbnMgdG8gc3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgYSBwcmljZSBhbmQgaXQncyBjb21wb3NpdGlvbi4gTm90ZSB0aGF0IHRoaXMgaXMgcmVmZXJlbmNpbmcgdG8gYSBzaW5nbGUgcHJpY2UgY29tcG9uZW50LCBzbyBmb3IgZXhhbXBsZSBhIFBvc2l0aW9uIHdvdWxkIGhhdmUgYSBsaXN0IG9mIFByaWNlQ29tcG9uZW50cywgb25lIGZvciBNYXRlcmlhbCwgb25lIGZvciBMYWJvdXIgZXRjLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUNvbXBvbmVudER0byB7XG4gICAgLyoqIFRoZSB0b3RhbCwgY2FsY3VsYXRlZCBwcmljZSBvZiB0aGlzIGNvbXBvbmVudC4gKi9cbiAgICByZWFkb25seSBwcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByaWNlIGNvbXBvbmVudC4gV2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgc2luZ2xlIENhbGN1bGF0aW9uIGVsZW1lbnRzIHRoaXMgcHJpY2UgY29tcG9uZW50IGlzIGNvbXBvc2VkIG9mLiAqL1xuICAgIHZhbHVlcz86IENhbGN1bGF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpcyBhcHBlbmRlZCB0byBhIFBvc2l0aW9uIGFuZCBpcyB1c2VkIHRvIHNlcGFyYXRlIHRoZSBjb21wbGV0ZSBQb3NpdGlvbiBpbnRvIHNtYWxsZXIgYW1vdW50cyB0byBiZSBkZXNjcmliZWQgc2VwYXJhdGVseSwgZm9yIGV4YW1wbGUgY29uY3JldGUgd2FsbHMgY291bGQgYmUgYXR0YWNoZWQgdG8gZGlmZmVyZW50IGJ1aWxkaW5nIHN0b3JleXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YkRlc2NyaXB0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFJldHVybnMgdGhlIHRvdGFsIGNhbGN1bGF0ZWQgc3VtIG9mIGFsbCBxdWFudGl0eSBhc3NpZ25tZW50cy4gV2lsbCByZXR1cm4gdGhlIHJlc3VsdCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xuICAgIHJlYWRvbmx5IHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNldCB0aGUgcXVhbnRpdHkgZm9yIHRoaXMgc3ViIGRlc2NyaXB0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFF1YW50aXR5Q29tcG9uZW50cyAqL1xuICAgIHF1YW50aXR5T3ZlcnJpZGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEhvbGRzIHF1YW50aXR5IGluZm9ybWF0aW9uIGZvciB0aGlzIHN1YiBkZXNjcmlwdGlvbi4gUXVhbnRpdHkgaXMgbGlzdGVuaW5nIHRvIGNoYW5nZXMgaGVyZSBhbmQgaXMgcmVwb3J0aW5nIHRoZSB0b3RhbCBzdW0gb2YgYWxsIHF1YW50aXR5IGNvbXBvbmVudHMuICovXG4gICAgcXVhbnRpdHlDb21wb25lbnRzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBiaWRkZXIgaXMgYXNrZWQgdG8gc3BlY2lmeSBhbiBhbW91bnQuICovXG4gICAgYW1vdW50VG9CZUVudGVyZWRCeUJpZGRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElkZW50aWZpZXIgZm9yIHRoaXMgU3ViRGVzY3JpcHRpb24uICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgZ2l2ZW4sIHRoZW4gdGhlIHN1YiBkZXNjcmlwdGlvbiBoYXMgYSBkaWZmZXJlbnQgdW5pdCB0YWcgdGhhbiB0aGUgcGFyZW50IHBvc2l0aW9uLiAqL1xuICAgIHVuaXRUYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyAob3Igc3ViIGRlc2NyaXB0aW9ucykgc2hvdWxkIGJlIGV4ZWN1dGVkIGluIHByYWN0aWNlLiBPZnRlbiwgdGhlIHBvc2l0aW9uIChvciBzdWIgZGVzY3JpcHRpb24pIGl0c2VsZiBzdGlsbCBoYXMgdGV4dCBvZiBpdHMgb3duIHRvIGhpZ2hsaWdodCBkZXZpYXRpb25zIGZyb20gdGhhdCBvciBhZGQgbW9yZSBkZXRhaWxzLiBXaGVuIHdvcmtpbmcgd2l0aCBpbXBvcnQgYW5kIGV4cG9ydCBmZWF0dXJlcywgdGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHN1cHBvcnRlZCBpbiBHQUVCIDkwIGRhdGEgZXhjaGFuZ2UuICovXG4gICAgZXhlY3V0aW9uRGVzY3JpcHRpb25SZWZlcmVuY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgQ2FsY3VsYXRpb24uIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIGlkZW50aWZpZXIgc3BlY2lmaWMgZm9yIHRoaXMgZGVzY3JpcHRpb24uIFNvbWUgZXhjaGFuZ2UgZm9ybWF0cywgbGlrZSBHQUVCIFhNTCwgdXNlIGl0IHRvIGlkZW50aWZ5IGRlc2NyaXB0aW9ucy4gSXQncyBkaWZmZXJlbnQgdG8gYW4gZWxlbWVudHMgaWRlbnRpZmllciBpbiB0aGF0IGl0IHNob3VsZCBvbmx5IGFwcGx5IHRvIHRoZSBkZXNjcmlwdGlvbiBjb21wb25lbnQsIG1lYW5pbmcgdGhlIHRleHQgaXRzZWxmLiAqL1xuICAgIGRlc2NyaXB0aW9uSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZURpc2NyaW1pbmF0b3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBJbmRpY2F0ZXMgdGhlIG9yaWdpbiBvZiBhbiBlbGVtZW50LiAqL1xuZXhwb3J0IGVudW0gQWRkaXRpb25UeXBlRHRvIHtcbiAgICBOb25lID0gXCJOb25lXCIsXG4gICAgQnlCdXllciA9IFwiQnlCdXllclwiLFxuICAgIEJ5QmlkZGVyID0gXCJCeUJpZGRlclwiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkaXplZERlc2NyaXB0aW9uRHRvIHtcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBpZGVudGlmaWVzIGEgcHJlLWtub3duIHN0YW5kYXJkIHVzZWQgZm9yIHJlZmVyZW5jaW5nIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbnMuICovXG4gICAgc3RhbmRhcmRSZWZlcmVuY2VUeXBlPzogU3RhbmRhcmRSZWZlcmVuY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHN0cmluZyBwcm9wZXJ0eSBpcyB0aGUgaWRlbnRpZmllciB0byBtYXAgdG8gdGhlIHJlZmVyZW5jZXMgc3RhbmRhcmQuIEl0cyB0eXBlIGlzIGdpdmVuIGluIHRoZSBTdGFuZGFyZFJlZmVyZW5jZVR5cGUgKi9cbiAgICBzdGFuZGFyZFJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHNwZWNpYWwgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiByZWZlcmVuY2UuIElmIHRoaXMgaXMgdXNlZCwgdGhlIFN0YW5kYXJkUmVmZXJlbmNlIHByb3BlcnR5IHNob3VsZCBub3QgYmUgc2V0LiAqL1xuICAgIHN0bGJSZWZlcmVuY2U/OiBTVExCUmVmZXJlbmNlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBpZGVudGlmaWVzIGEgcHJlLWtub3duIHN0YW5kYXJkIHVzZWQgZm9yIHJlZmVyZW5jaW5nIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbnMuICovXG5leHBvcnQgZW51bSBTdGFuZGFyZFJlZmVyZW5jZVR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBTdExCID0gXCJTdExCXCIsXG4gICAgU3RMSyA9IFwiU3RMS1wiLFxuICAgIFNUTEJCYXVaID0gXCJTVExCQmF1WlwiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3BlY2lhbGl6ZWQgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIi4gVGhlIFNUTEIgaXMgYSBjb21tZXJjaWFsIG9mZmVyaW5nIGFuZCBkZXNjcmliZXMgY29tbW9uIHNlcnZpY2VzIGluIHRoZSBjb25zdHJ1Y3Rpb24gc2VjdG9yLiBXaGVuIHRoaXMgaXMgdXNlZCwgdGhpcyBkZXNjcmliZXMgdGhlIGV4YWN0IHR5cGUgb2YgYSBzZXJ2aWNlIHZpYSBhIHJlZmVyZW5jZSB0byB0aGlzIHN0YW5kYXJkICovXG5leHBvcnQgaW50ZXJmYWNlIFNUTEJSZWZlcmVuY2VEdG8ge1xuICAgIC8qKiBUaGUgZGF0ZSBvZiB0aGUgU1RMQiB2ZXJzaW9uLiBUeXBpY2FsbHksIG9ubHkgdGhlIFllYXIgYW5kIE1vbnRoIGFyZSB1c2VkICovXG4gICAgdmVyc2lvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgY2F0YWxvZ3VlIHdpdGhpbiB0aGUgU1RMQiAqL1xuICAgIGNhdGFsb2d1ZU5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBncm91cCBpbiBTVExCICovXG4gICAgZ3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBjb3N0IGdyb3VwIHRoaXMgc2VydmljZSBpcyBhc3NvY2lhdGVkIHdpdGggKi9cbiAgICBjb3N0R3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzZXJ2aWNlIGFyZWEgKG9yIHR5cGUpIGluIHRoZSBTVExCICovXG4gICAgc2VydmljZUFyZWE/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGtleXMgbWF5IG9wdGlvbmFsbHkgYmUgdXNlZCB0byBmdXJ0aGVyIHJlZmVyZW5jZSBtdWx0aXBsZSwgc3BlY2lmaWMgaXRlbXMgd2l0aGluIHRoZSBTVExCICovXG4gICAga2V5cz86IFNUTEJLZXlEdG9bXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIHNpbmdsZSBrZXkgcmVmZXJlbmNlIHdpdGhpbiB0aGUgR2VybWFuIFNUTEIgXCJTdGFuZGFyZGxlaXN0dW5nc2J1Y2ggQmF1XCIgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1RMQktleUR0byB7XG4gICAgLyoqIFRoaXMgaWRlbnRpZmllciBpcyByZXF1aXJlZCBhbmQgdW5pcXVlbHkgZGVzY3JpYmVzIGEgc2luZ2xlIHJlZmVyZW5jZSB3aXRoaW4gdGhlIFNUTEIgc3RhbmRhcmQuIEl0IG1hcHMgdG8gXCJBcnRDaHJJZGVudFwiIGluIEdBRUIgWE1MICovXG4gICAgYXJ0SWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBpbmRleCBwcm9wZXJ0eSBmdXJ0aGVyIGNhdGVnb3JpemVzIGEgc2luZ2xlIHJlZmVyZW5jZSB3aXRoaW4gdGhlIFNUTEIgc3RhbmRhcmQuIEl0IG1hcHMgdG8gXCJBcnRDaElkeFwiIGluIEdBRUIgWE1MICovXG4gICAgYXJ0SW5kZXg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgaWRlbnRpZmllciBmdXJ0aGVyIHNwZWNpZmllcyB0aGUgZXhlY3V0aW9uIGtpbmQgb2YgdGhlIHJlZmVyZW5jZSBpbiB0aGUgU1RMQiBzdGFuZGFyZC4gSXQgbWFwcyB0byBcIkNoVklkZW50XCIgaW4gR0FFQiBYTUwgKi9cbiAgICBraW5kSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEluZGljYXRlcyBpZiB0aGlzIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBpdGVtIGlzIGNvbW1pc3Npb25lZCAoYW5kIHRoZXJlZm9yZSBzaG91bGQgYmUgZXhlY3V0ZWQpLCBwb3N0cG9uZWQgZm9yIGxhdGVyIG9yIHVuZGVmaW5lZC4gKi9cbmV4cG9ydCBlbnVtIENvbWlzc2lvblN0YXR1c0R0byB7XG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcbiAgICBDb21taXNzaW9uZWQgPSBcIkNvbW1pc3Npb25lZFwiLFxuICAgIFBvc3Rwb25lZCA9IFwiUG9zdHBvbmVkXCIsXG4gICAgUmVtb3ZlZCA9IFwiUmVtb3ZlZFwiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGFzIGlkZW50aWZpZXIgb2YgYSBjZXJ0YWluIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbidzIGVsZW1lbnQgYW5kIGlzIHVuaXF1ZWx5IHdpdGhpbiB0aGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJdGVtTnVtYmVyRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoaXMgSXRlbU51bWJlciBhcyBwb2ludCBkZWxpbWl0ZWQgc3RyaW5nLiBXaWxsIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHVwcGVyLSBhbmQgbG93ZXJjYXNlIGFuZCByZXR1cm4gYW4gYWxsLWxvd2VyY2FzZSByZXByZXNlbnRhdGlvbi4gV2lsbCBjb25zaWRlciBmaXJzdCBudW1iZXJzLCB0aGVuIGNoYXJhY3RlcnMsIGUuZy4gMWEgaXMgY29uc2lkZXJlZCBwcmVjZWRpbmcgYWEuIFRyYW5zZm9ybWF0aW9uIHRvIGFsbCBsb3dlcmNhc2UgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gdGhlIEl0ZW1OdW1iZXJTY2hlbWEgcHJvcGVydHkuICovXG4gICAgc3RyaW5nUmVwcmVzZW50YXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY2hhcmFjdGVycyBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgSWRlbnRpZmllcnMgbWF0Y2ggdGhlIGN1cnJlbnQgSXRlbU51bWJlclNjaGVtYS4gKi9cbiAgICByZWFkb25seSBpc1NjaGVtYUNvbXBsaWFudD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFVzZWQgZm9yIHJlcHJlc2VudGluZyBhbmQgdmFsaWRhdGluZyB0aGlzIEl0ZW1OdW1iZXIuICovXG4gICAgaXRlbU51bWJlclNjaGVtYT86IEl0ZW1OdW1iZXJTY2hlbWFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIENvbGxlY3Rpb24gb2YgdGhlIHNpbmdsZSBpZGVudGlmaWVycyBpbiB0aGlzIEl0ZW1OdW1iZXIuIFAuZS4sIFwiMDIuMDMuMDA0XCIgd2lsbCBoYXZlIHRocmVlIGVsZW1lbnRzIFwiMDJcIiwgXCIwM1wiLCBhbmQgXCIwMDRcIi4gU2luY2UgUmVhZE9ubHlPYnNlcnZhYmxlQ29sbGVjdGlvbmAxIGRvZXMgaGF2ZSB0aGUgZXZlbnQgc2V0IHRvIHByb3RlY3RlZCwgaXQgY2FuIGJlIGFjY2Vzc2VkIGxpa2UgdGhpczogKGl0ZW1OdW1iZXIuSWRlbnRpZmllcnMgYXMgSU5vdGlmeUNvbGxlY3Rpb25DaGFuZ2VkKS5Db2xsZWN0aW9uQ2hhbmdlZCAqL1xuICAgIGlkZW50aWZpZXJzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoaXMgaXRlbSBudW1iZXIgaXMgYXQgdGhlIGxvdCBsZXZlbC4gRmluZCBvdXQgbW9yZSBhYm91dCBsb3RzIGluIHRoZSBkb2N1bWVudGF0aW9uLiAqL1xuICAgIHJlYWRvbmx5IGlzTG90PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHplcm8gYmFzZWQgaGllcmFyY2h5IGxldmVsLiBJdCdzIHNldCBhdXRvbWF0aWNhbGx5IHdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIFByb2plY3QsIGFuZCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgaGllcmFyY2h5IGxldmVsIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuICovXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIGlmIHRoaXMgSXRlbU51bWJlciBpcyBhdHRhY2hlZCB0byBhbiBvYmplY3Qgb2YgdGhlIFBvc2l0aW9uIHR5cGUuICovXG4gICAgcmVhZG9ubHkgaXNBdHRhY2hlZFRvUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIGl0ZW1OdW1iZXJTY2hlbWFCZWZvcmVNYXBwaW5nPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgaXMgYSBjbGFzc2lmaWNhdGlvbiBmb3IgUG9zaXRpb24gZWxlbWVudHMuICovXG5leHBvcnQgZW51bSBQb3NpdGlvblR5cGVEdG8ge1xuICAgIFJlZ3VsYXIgPSBcIlJlZ3VsYXJcIixcbiAgICBPcHRpb25hbCA9IFwiT3B0aW9uYWxcIixcbiAgICBBbHRlcm5hdGl2ZSA9IFwiQWx0ZXJuYXRpdmVcIixcbn1cblxuLyoqIFRoaXMgaW5kaWNhdGVzIHRoZSBwcmljZSB0eXBlIG9mIGEgSVByaWNlZEVsZW1lbnQuICovXG5leHBvcnQgZW51bSBQcmljZVR5cGVEdG8ge1xuICAgIFdpdGhUb3RhbCA9IFwiV2l0aFRvdGFsXCIsXG4gICAgV2l0aG91dFRvdGFsID0gXCJXaXRob3V0VG90YWxcIixcbn1cblxuLyoqIFRoZSBzZXJ2aWNlIHR5cGUgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHNlcnZpY2UgYSBQb3NpdGlvbiByZXByZXNlbnRzLiAqL1xuZXhwb3J0IGVudW0gU2VydmljZVR5cGVEdG8ge1xuICAgIFJlZ3VsYXIgPSBcIlJlZ3VsYXJcIixcbiAgICBIb3VybHlQYWlkV29yayA9IFwiSG91cmx5UGFpZFdvcmtcIixcbn1cblxuLyoqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBkYXRhIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciB2ZW5kb3IgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdERhdGFEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBQYXJ0eUluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgZGV0YWlscyBhYm91dCB0aGUgdmVuZG9yIG9mIHRoaXMgUHJvZHVjdERhdGEuICovXG4gICAgdmVuZG9yPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvbGxlY3Rpb24gb2YgQXJ0aWNsZURhdGEgdGhhdCBkZXNjcmliZSB0aGlzIHByb2R1Y3QsIGUuZy4gYSBwaXBlIHByb2R1Y3QgY291bGQgYmUgY29tcG9zZWQgb3V0IG9mIG11bHRpcGxlIHBpcGUgc2VnbWVudHMgYW5kIGZpdHRpbmdzLiAqL1xuICAgIGFydGljbGVzPzogQXJ0aWNsZURhdGFEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgSVRleHRFbGVtZW50IGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGFydGljbGUsIHVzdWFsbHkgdXNlZCB3aXRoaW4gUHJvZHVjdERhdGEgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZURhdGFEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIG5hbWUgKG9yIGJyYW5kIG5hbWUpIGZvciB0aGlzIGFydGljbGUsIHVzdWFsbHkgZ2l2ZW4gYnkgdGhlIHN1cHBsaWVyIG9yIHZlbmRvci4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBbiBhcnRpY2xlIG51bWJlciB0aGF0IGRlc2NyaWJlcyBpdCwgdXNlZnVsIHdoZW4gaW50ZWdyYXRpbmcgb3RoZXIgc3lzdGVtcy4gKi9cbiAgICBhcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBRdWFudGl0eSBmb3IgdGhpcyBhcnRpY2xlLiBJZiB0aGlzIGlzIHVzZWQgd2l0aGluIGEgUG9zaXRpb24sIHRoZSBxdWFudGl0eSBoZXJlIHNob3VsZCBiZSB0aGUgcXVhbnRpdHkgcmVxdWlyZWQgZm9yIHRoZSBmdWxsIHF1YW50aXR5IG9mIHRoZSBwb3NpdGlvbiwgbm90IGZvciBhIHNpbmdsZSB1bml0LiAqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdW5pdCB0YWcgZm9yIHRoaXMgc2luZ2xlIEFydGljbGVEYXRhLiAqL1xuICAgIHVuaXRUYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgdGV4dCBlbGVtZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gZnVydGhlciBkZXNjcmliZSB0aGUgQXJ0aWNsZURhdGEuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGlzIElUZXh0RWxlbWVudCBlbGVtZW50LiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgSVRleHRFbGVtZW50IGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xuICAgIGh0bWxMb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFF1YW50aXR5IGFzc2lnbm1lbnRzIGFyZSwgaW4gY29udHJhc3QgdG8gU3ViRGVzY3JpcHRpb25zLCB1c2VkIHRvIGNhdGVnb3JpemUgcGFydHMgb2YgdGhlaXIgcGFyZW50IFBvc2l0aW9uLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgYmUgY2F0ZWdvcml6ZWQgYnkgY29zdCBncm91cCAtIGUuZy4gYSBQb3NpdGlvbiBkZXNjcmliaW5nIGNvbmNyZXRlIHdhbGxzIGNvdWxkIGZvbGxvdyB0aGUgR2VybWFuIERJTiAyNzYgQ29zdCBHcm91cHMgU3RhbmRhcmQgYW5kIHNwZWNpZnkgdGhhdCBvZiB0aGUgdG90YWwgMS4wMDBtwrIgd2FsbCwgNTAwbcKyIGFyZSBjbGFzc2lmaWVkIGFzIGV4dGVyaW9yIHdhbGxzIGFuZCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgaW50ZXJpb3Igd2FsbHMuIFRoZXkgd291bGQgdGhlbiBoYXZlIGRpZmZlcmVudCBjb3N0IGdyb3VwcyBhc3NvY2lhdGVkLCBlLmcuIGZvciBhY2NvdW50aW5nIHB1cnBvc2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWFudGl0eUFzc2lnbm1lbnREdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIHRvdGFsIHF1YW50aXR5IGluIHRoaXMgcXVhbnRpdHkgYXNzaWdubWVudCAqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uIENhdGFsb2d1ZSByZWZlcmVuY2VzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgUXVhbnRpdHlBc3NpZ25tZW50LiAqL1xuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgaG9sZHMgc3BlY2lhbGl6ZWQgaW5mb3JtYXRpb24gdGhhdCBpcyByZWxldmFudCB0byB0cmFkZSBvciBjb21tZXJjZSBiYXNlZCBkYXRhIGV4Y2hhbmdlIHNjZW5hcmlvcywgZS5nLiBiZXR3ZWVuIGN1c3RvbWVycywgdmVuZG9ycywgc3VwcGxpZXJzIGFuZCBkaXN0cmlidXRvcnMuIEl0IGlzIHVzZWQgd2hlbiBleHBvcnRpbmcgdG8gR0FFQiBYTUwgOXggZXhjaGFuZ2UgcGhhc2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tZXJjZVByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gYXJ0aWNsZSBudW1iZXIgZ2l2ZW4gYnkgdGhlIHN1cHBsaWVyLiAqL1xuICAgIGFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBFQU4gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gR1RJTiAoZm9ybWVybHkgRUFOKSBhcnRpY2xlIG51bWJlci4gKi9cbiAgICBlYW5HdGluQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXBzIHRvIEFydE5vSUQgaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gSUxOIGFydGljbGUgbnVtYmVyLiAqL1xuICAgIGlsbkFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBDYXRhbG9nTm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gaWRlbnRpZmllciBvZiBhIHNwZWNpZmljIGNhdGFsb2d1ZS4gVGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlIGlzIHVzdWFsbHkgYSBjdXN0b21lciBzcGVjaWZpYyBvbmUsIG5vdCByZWxhdGVkIHRvIENhdGFsb2d1ZVJlZmVyZW5jZXMuICovXG4gICAgY2F0YWxvZ3VlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcHMgdG8gQ2F0YWxvZ0FydE5vIGluIEdBRUIgWE1MIGFuZCByZXByZXNlbnRzIGEga2V5IHRoYXQgbWFwcyB0byBhbiBlbnRyeSBpbiBhIHNwZWNpZmljIGNhdGFsb2d1ZS4gVGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlIGlzIHVzdWFsbHkgYSBjdXN0b21lciBzcGVjaWZpYyBvbmUsIG5vdCByZWxhdGVkIHRvIENhdGFsb2d1ZVJlZmVyZW5jZXMuICovXG4gICAgY2F0YWxvZ3VlQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGUgYmFzaXMgZm9yIHByaWNlcyBmb3IgYSBzaW5nbGUgcG9zaXRpb24uIFByaWNlIGJhc2lzIG1lYW5zIHRoYXQgdGhlIHByaWNlIGlzIGdpdmVuIHBlciB1bml0IG9mIHRoZSBiYXNpcywgZS5nLiBwZXIgYSBwYWNrIG9mIGZpdmUgd2hlbiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byAnNScuICovXG4gICAgcHJpY2VCYXNpcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSBhIHN1YiBwb3NpdGlvbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGUgY29tbWVyY2UgZXhjaGFuZ2UgKi9cbiAgICBzdWJQb3NpdGlvbklkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluIGEgY29tbWVyY2UgZXhjaGFuZ2UsIHRoaXMgcHJvcGVydHkgaXMgdXN1YWxseSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYmFzZSBpdGVtIG51bWJlciBvZiBhbiB1bmRlcmx5aW5nIHBoYXNlIDgzIGV4Y2hhbmdlIGZpbGUgKi9cbiAgICBjdXN0b21lckJhc2VJdGVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBsaW5raW5nIHRvIGEgY29tcGxlbWVudGFyeSBwb3NpdGlvbiB3aXRoIGEgc3BlY2lmaWMgcXVhbnRpdHkgc2V0LiBGb3IgZXhhbXBsZSwgUG9zaXRpb24gJ0EnIGNvdWxkIGJlIGNvbXBsZW1lbnRpbmcgUG9zaXRpb24gJ0InIHdpdGggYSB0b3RhbCBxdWFudGl0eSBvZiAyMCB1bml0cyAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wbGVtZW50ZWRCeVF1YW50aXR5RHRvIHtcbiAgICAvKiogVGhlIHF1YW50aXR5IHRoYXQgaXMgY29tcGxlbWVudGVkLiBFLmcuLCBpZiB0aGUgYmFzZSBwb3NpdGlvbiBoYXMgYSBxdWFudGl0eSBvZiAxMDAgbcKyIG9mIGEgYnJpY2sgd2FsbCwgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uIG1pZ2h0IGJlIGZvciAnd2FsbHMgdGhhdCBleGNlZWQgMyBtIGhlaWdodCcgYW5kIGZvciBhIHRvdGFsIHF1YW50aXR5IG9mIDEwIG3Csi4gKi9cbiAgICBxdWFudGl0eT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB0aGUgcmVmZXJlbmNlIHRvIHRoZSBJZCBvZiB0aGUgUG9zaXRpb24gdGhhdCBpcyBjb21wbGVtZW50aW5nLiBUaGlzIG1lYW5zIGl0IGRvZXMgTk9UIHJlZmVyZW5jZSB0aGUgYmFzZSBwb3NpdGlvbiBidXQgdGhlIG9uZSB0aGF0IGNvbnRhaW5zIHRoZSBhY3R1YWwgYWRkaXRpb24uICovXG4gICAgY29tcGxlbWVudGluZ1Bvc2l0aW9uSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBQb3NpdGlvbnMgYW5kIGV4dGVuZHMgdGhlIE9lbm9ybVByb3BlcnRpZXMgYmFzZSBjbGFzcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzRHRvIHtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cbiAgICBvcmlnaW5Db2RlPzogT2Vub3JtT3JpZ2luQ29kZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xuICAgIG9wZW5pbmdUZXh0SXNGcmVlVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoZSDDlk5vcm0gJ3dlc2VudGxpY2hlIHBvc2l0aW9uJyBtYXJrIGlzIHNldCAqL1xuICAgIGlzTWFpblBvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhlIMOWTm9ybSBwb3NpdGlvbiB3YXMgYSAndW5nZXRlaWx0ZXBvc2l0aW9uJyAodW5kaXZpZGVkIHBvc2l0aW9uKS4gVGhpcyB3aWxsIG9ubHkgYmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gdGhlIHBvc2l0aW9uIGlzIGFsc28gdGhlIHNvbGUgZWxlbWVudCBpbnNpZGUgaXQncyBwYXJlbnQgZ3JvdXAgKi9cbiAgICBpc1VuZGl2aWRlZFBvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW4gc29tZSDDlk5vcm0gZm9ybWF0cywgdGhlIHNob3J0IHRleHQgY2FuIGhhdmUgaXQncyBvd24gYWRkaXRpb24sIHNvIHRoZSB0ZXh0IGlzIHNwbGl0IHVwIGluIE9lbm9ybVNob3J0VGV4dCBhbmQgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gVG8gc2VyaWFsaXplIHRoaXMsIGVpdGhlciB0aGUgU2hvcnRUZXh0IHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgcG9zaXRpb24gbmVlZHMgdG8gYmUgbnVsbCwgb3IgT2Vub3JtU2hvcnRUZXh0ICcgJyBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBuZWVkcyB0byBtYXRjaCB0aGUgU2hvcnRUZXh0LiAqL1xuICAgIG9lbm9ybVNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW4gc29tZSDDlk5vcm0gZm9ybWF0cywgdGhlIHNob3J0IHRleHQgY2FuIGhhdmUgaXQncyBvd24gYWRkaXRpb24sIHNvIHRoZSB0ZXh0IGlzIHNwbGl0IHVwIGluIE9lbm9ybVNob3J0VGV4dCBhbmQgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gVG8gc2VyaWFsaXplIHRoaXMsIGVpdGhlciB0aGUgU2hvcnRUZXh0IHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgcG9zaXRpb24gbmVlZHMgdG8gYmUgbnVsbCwgb3IgT2Vub3JtU2hvcnRUZXh0ICcgJyBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBuZWVkcyB0byBtYXRjaCB0aGUgU2hvcnRUZXh0LiAqL1xuICAgIG9lbm9ybVNob3J0VGV4dEFkZGl0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cbmV4cG9ydCBlbnVtIE9lbm9ybU9yaWdpbkNvZGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBGcmVlVGV4dCA9IFwiRnJlZVRleHRcIixcbiAgICBBZGRpdGlvbkRlc2NyaXB0aW9uID0gXCJBZGRpdGlvbkRlc2NyaXB0aW9uXCIsXG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBhbiBhZGRlbmR1bSwgJ05hY2h0cmFnJyBpbiBHZXJtYW4gKi9cbmV4cG9ydCBlbnVtIEFkZGVuZHVtU3RhdHVzRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgUmVjb2duaXplZCA9IFwiUmVjb2duaXplZFwiLFxuICAgIEZpbGVkID0gXCJGaWxlZFwiLFxuICAgIE9mZmVyZWQgPSBcIk9mZmVyZWRcIixcbiAgICBXaXRoZHJhd24gPSBcIldpdGhkcmF3blwiLFxuICAgIFJlamVjdGVkID0gXCJSZWplY3RlZFwiLFxuICAgIFJlamVjdGlvbk9iamVjdGVkID0gXCJSZWplY3Rpb25PYmplY3RlZFwiLFxuICAgIEZvcm1hbGx5QWNrbm93bGVkZ2VkID0gXCJGb3JtYWxseUFja25vd2xlZGdlZFwiLFxuICAgIEFwcHJvdmVkID0gXCJBcHByb3ZlZFwiLFxufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGRpZmZlcmVudCB3YXlzIGluIHdoaWNoIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiB0eXBlIGNhbiBiZSBzcGVjaWZpZWQuIEl0IGlzIHR5cGljYWxseSBvbmx5IHVzZWQgaW4gR0FFQiBleHBvcnRzLCBzaW5jZSBpbiBEYW5nbC5BVkEsIGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zIGFyZSBhbHdheXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAqL1xuZXhwb3J0IGVudW0gUG9zaXRpb25Db21wbGVtZW50aW5nVHlwZUR0byB7XG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcbiAgICBBbGxQcmV2aW91c01hcmtlZFBvc2l0aW9ucyA9IFwiQWxsUHJldmlvdXNNYXJrZWRQb3NpdGlvbnNcIixcbiAgICBBbGxQcmV2aW91c1Bvc2l0aW9ucyA9IFwiQWxsUHJldmlvdXNQb3NpdGlvbnNcIixcbiAgICBSZWZlcmVuY2VkUG9zaXRpb25zID0gXCJSZWZlcmVuY2VkUG9zaXRpb25zXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIHByb3BlcnRpZXMgdGhhdCBkZXNjcmliZSByZXRlbnRpb24gdHlwZXMgaW4gcG9zaXRpb24uIFJldGVudGlvbiAvIGhvbGQgb3V0IHVzdWFsbHkgbWVhbnMgdGhhdCBhIHNlcnZpY2UgaXMgcHJvdmlkZWQgYW5kIGtlcHQgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIGFtb3VudCBvZiB0aW1lLCBlLmcuIGZlbmNlcyBvbiBhIGNvbnN0cnVjdGlvbiBzaXRlICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uSG9sZE91dFByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGFjdHVhbCB0eXBlICovXG4gICAgaG9sZE91dFR5cGU/OiBIb2xkT3V0VHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGR1cmF0aW9uIG9mIHRoZSBwZXJpb2QgKi9cbiAgICBob2xkT3V0RHVyYXRpb24/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0aW1lIHVuaXQgb2YgdGhlIHBlcmlvZCAqL1xuICAgIGhvbGRPdXREdXJhdGlvblVuaXQ/OiBIb2xkT3V0RHVyYXRpb25Vbml0RHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VzIHRvIGJhc2UgcG9zaXRpb25zICovXG4gICAgYmFzZVBvc2l0aW9uUmVmZXJlbmNlcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVHlwZXMgb2YgcmV0ZW50aW9ucyB0byBiZSB1c2VkIGluIHBvc2l0aW9ucyAqL1xuZXhwb3J0IGVudW0gSG9sZE91dFR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBCYXNlID0gXCJCYXNlXCIsXG4gICAgRXh0ZW5zaW9uID0gXCJFeHRlbnNpb25cIixcbiAgICBSZW50ID0gXCJSZW50XCIsXG59XG5cbi8qKiBEdXJhdGlvbiB1c2VkIGluIHJldGVudGlvbiBwb3NpdGlvbnMgKi9cbmV4cG9ydCBlbnVtIEhvbGRPdXREdXJhdGlvblVuaXREdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBNaW51dGVzID0gXCJNaW51dGVzXCIsXG4gICAgSG91cnMgPSBcIkhvdXJzXCIsXG4gICAgRGF5cyA9IFwiRGF5c1wiLFxuICAgIFdlZWtzID0gXCJXZWVrc1wiLFxuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXG59XG5cbi8qKiBQcmljZSBjYXRhbG9ndWUgZGF0YSByZXByZXNlbnRzIGFzc3VtZWQgb3IgZXN0aW1hdGVkIHByaWNlcyBmcm9tIGEgY2F0YWxvZ3VlIHNvdXJjZSAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUNhdGFsb2d1ZURhdGFEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGxvd2VyIGJvdW5kIG9mIHRoZSB1bml0IHByaWNlICovXG4gICAgdW5pdFByaWNlRnJvbT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHVwcGVyIGJvdW5kIG9mIHRoZSB1bml0IHByaWNlICovXG4gICAgdW5pdFByaWNlVG8/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhdmVyYWdlIHVuaXQgcHJpY2UgKi9cbiAgICB1bml0UHJpY2VBdmVyYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbG93ZXIgYm91bmQgb2YgdGhlIHdhZ2UgcHJpY2UgKi9cbiAgICB3YWdlUHJpY2VGcm9tPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHdhZ2UgcHJpY2UgKi9cbiAgICB3YWdlUHJpY2VUbz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGF2ZXJhZ2Ugd2FnZSBwcmljZSAqL1xuICAgIHdhZ2VQcmljZUF2ZXJhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBBbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpcyB1c2VkIHRvIGdpdmUgbW9yZSBkZXRhaWxzIGZvciBjZXJ0YWluIGl0ZW1zLCBlc3BlY2lhbGx5IG9uIGhvdyB0aGV5IGFyZSBtZWFudCB0byBiZSBleGVjdXRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XG4gICAgLyoqIEJsb2NrcyB3aXRoaW4gYW4gRXhlY3V0aW9uRGVzY3JpcHRpb24gY29udGFpbiB0aGUgYWN0dWFsIGluZm9ybWF0aW9uLiAqL1xuICAgIGJsb2Nrcz86IE5vdGVUZXh0RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIExhYmVscyB0aGlzIEV4ZWN1dGlvbkRlc2NyaXB0aW9uLiAqL1xuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFJlcHJlc2VudHMgYW4gZWxlbWVudCB0aGF0IGhvbGRzIHRleHQgaW5mb3JtYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVUZXh0RHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIHRleHQgaXMgbWVhbnQgdG8gbm90IGJlIHNlZW4gYXMgcGFydCBvZiB0aGUgcmVndWxhciBlbGVtZW50cyBoaWVyYXJjaHkgYnV0IGFzIGEgc3BlY2lhbCBvcGVuaW5nIHRleHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcHJvamVjdC4gRm9yIGV4YW1wbGUsIGluIEdBRUIgWE1MLCB0aGlzIHdvdWxkIG1hcCB0byB0aGUgR0FFQi5Bd2FyZC5BZGRUZXh0LiBUeXBpY2FsbHksIHN1Y2ggdGV4dHMgZGVzY3JpYmUgcHJvamVjdC13aWRlIGNvbnRyYWN0dWFsIGRlZmluaXRpb25zLiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIE5vdGVUZXh0IHNob3VsZCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBvZiB0aGUgZWxlbWVudHMgaGllcmFyY2h5IGRpcmVjdGx5IGluIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi5FbGVtZW50cyBncm91cCwgb3RoZXJ3aXNlIGl0IHdpbGwgbGlrZWx5IG5vdCBiZSB0cmVhdGVkIGNvcnJlY3RseSB3aGVuIGV4cG9ydGluZyB0byBHQUVCLiBZb3UgY2FuIG9ubHkgc2V0IElzT3BlbmluZ1RleHQgb3IgSXNDbG9zaW5nVGV4dCB0byB0cnVlLiAqL1xuICAgIGlzT3BlbmluZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIHRleHQgaXMgbWVhbnQgdG8gbm90IGJlIHNlZW4gYXMgcGFydCBvZiB0aGUgcmVndWxhciBlbGVtZW50cyBoaWVyYXJjaHkgYnV0IGFzIGEgc3BlY2lhbCBjbG9zaW5nIHRleHQgYXQgdGhlIGVuZCBvZiB0aGUgcHJvamVjdC4gRm9yIEV4YW1wbGUsIGluIEdBRUIgWE1MLCB0aGlzIHdvdWxkIG1hcCB0byB0aGUgR0FFQi5BZGRUZXh0LiBUeXBpY2FsbHksIHN1Y2ggdGV4dHMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgcHJvamVjdCB3aWRlIGZpbmlzaGluZyBkZXNjcmlwdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXG4gICAgaXNDbG9zaW5nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQgY29udGFpbnMgQnV5ZXIgb3IgQmlkZGVyIGFkZGl0aW9ucyB0byB0aGUgdGV4dC4gKi9cbiAgICBhZGRpdGlvblR5cGU/OiBBZGRpdGlvblR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjb250YWlucyB0aGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZ3RleHQuIFdoZW4gdGhlIExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhaW50ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBMb25nVGV4dC4gR0FFQiA5MCBhbmQgR0FFQiAyMDAwIGV4cG9ydHMgZG8gbm90IHN1cHBvcnQgYW55IGltYWdlIGZ1bmN0aW9uYWxpdHkuIEluIEdBRUIgWE1MLCBvbmx5IGltYWdlcyB0aGF0IHVzZSBhbiBlbWJlZGRlZCBCYXNlNjQgZGF0YSB1cmkgYXJlIGV4cG9ydGVkLCByZWd1bGFyIHVybCByZWZlcmVuY2VzIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0dGVuIG91dC4gKi9cbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgaW50ZXJuYWwgaWRlbnRpZmllciB0aGF0IG1heSBiZSB1c2VkIHRvIGFkZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIHRoaXMgTm90ZVRleHQuIEl0IGlzIG5vdCBzdXBwb3J0ZWQgaW4gR0FFQiBpbXBvcnQgb3IgZXhwb3J0LiAqL1xuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcmVwcmVzZW50cyBhIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbi4gVGhpcyBtZWFucyB0aGF0IGluc3RlYWQgb2Ygc29sZWx5IHJlbHlpbmcgb24gdGV4dHMgdG8gZGVzY3JpYmUgYSBzZXJ2aWNlLCBleHRlcm5hbCBzdGFuZGFyZHMgYW5kIGRlZmluaXRpb25zIGFyZSByZWZlcmVuY2VkIGZvciBhIGNvbW1vbiB1bmRlcnN0YW5kaW5nLiAqL1xuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXG4gICAgZGVzY3JpcHRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gSXQgaXMgc3BlY2lhbCBmb3IgTm90ZVRleHRzLiAqL1xuICAgIG9lbm9ybU5vdGVUZXh0UHJvcGVydGllcz86IE9lbm9ybU5vdGVUZXh0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBoYXNCaWRkZXJDb21tZW50SW5IdG1sTG9uZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gSXQgaXMgc3BlY2lhbCBmb3IgTm90ZVRleHRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Ob3RlVGV4dFByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuICAgIG9yaWdpbkNvZGU/OiBPZW5vcm1PcmlnaW5Db2RlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpcyBhIGdyb3VwaW5nIElFbGVtZW50IHRoYXQgaG9sZHMgb3RoZXIgSUVsZW1lbnRzIHdpdGhpbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byBleHRlbmRzIElFbGVtZW50RHRvIHtcbiAgICAvKiogVGhlIGhvdXJseSB3YWdlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RIb3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdGF4IHJhdGUgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBXaWxsIGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgcHJvamVjdFRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBwcmljZSBjb21wb25lbnRzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gVGhleSBhcmUgaWdub3JlZCBkdXJpbmcgSnNvbiBkZXNlcmlhbGl6YXRpb24gYmVjYXVzZSB0aGV5IHdpbGwgYmUgc2V0IGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xuICAgIHByb2plY3RQcmljZUNvbXBvbmVudHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuICovXG4gICAgcHJvamVjdEl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSUVsZW1lbnRzIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiAqL1xuICAgIGVsZW1lbnRzPzogSUVsZW1lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGxhYmVsIHVzZWQgaW4gdGhlIHBhcmVudCBQcm9qZWN0IHRvIG1hcmsgbGFib3VyIHRpbWUsIGUuZy4gXCJIb3Vyc1wiIG9yIFwiU3R1bmRlblwiLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RMYWJvdXJUaW1lTGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJdGVtTnVtYmVycyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJdGVtTnVtYmVyIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZXJlIGFyZSBjaGlsZCBJRWxlbWVudHMgdGhhdCBoYXZlIGNvbmZsaWN0aW5nLCBkdXBsaWNhdGVkIElkcyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJZCBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJdGVtTnVtYmVycyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cbiAgICBpZ25vcmVEdXBsaWNhdGVJdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzICovXG4gICAgaWdub3JlUHJvamVjdENhdGFsb2d1ZVByb3BhZ2F0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJZHMgd2l0aGluIGNoaWxkIGVsZW1lbnRzIGFyZSB0byBiZSBpZ25vcmVkLiBXaWxsIG5vdCBwZXJmb3JtIGNoZWNrcyBmb3IgZHVwbGljYXRlcyBpZiB5ZXMuICovXG4gICAgaWdub3JlRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFByaWNlIGNvbXBvc2l0aW9uIGJ5IHRheCByYXRlLiAqL1xuICAgIHRvdGFsUHJpY2VHcm9zc0J5VGF4UmF0ZT86IEdyb3NzUHJpY2VDb21wb25lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW50ZXJuYWxseSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBwcm9wYWdhdGlvbiBpcyBjdXJyZW50bHkgZG9uZSwgdGhpcyBpcyBkb25lIHRvIG5vdCByZWNhbGN1bGF0ZSBldmVyeSBzaW5nbGUgcmVzdWx0IGZyb20gYSBsb3Qgb2YgY2hhbmdlcyB3aGVuIGl0IGlzIHN1ZmZpY2llbnQgdG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBwcmljZSBhdCBvbmNlLiAqL1xuICAgIGlnbm9yZUNoaWxkUHJpY2VVcGRhdGVzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBGYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIHRvIHRoZSB0b3RhbCBwcmljZS4gRm9yIGV4YW1wbGUsIFwiMC4wM1wiIG1lYW5zIHRoYXQgYSAzJSBkZWR1Y3Rpb24gaXMgdG8gYmUgYXBwbGllZC4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBleGFjdCBhbW91bnQgb2YgdGhlIGRpc2NvdW50IGFzIGFuIGFic29sdXRlIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucywgc2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWxzbyBzZXQgYSBjYWxjdWxhdGVkIHZhbHVlIHRvIERlZHVjdGlvbkZhY3Rvciwgd2hpY2ggd2lsbCBhbHNvIGJlIHVwZGF0ZWQgaW4gY2FzZSB0aGUgdG90YWwgcHJpY2UgaXMgY2hhbmdlZCB0byByZWZsZWN0IGEgcmVsYXRpdmUgdmFsdWUgb2YgdGhlIGFic29sdXRlIGRpc2NvdW50IHN1bS4gKi9cbiAgICBhYnNvbHV0ZURlZHVjdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSdzIHRvdGFsIHByaWNlLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpbmNsdWRpbmcgYWxsIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIFByaWNlVHlwZSBvZiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLCB3aGV0aGVyIGl0IHNob3VsZCBmYWN0b3IgaW50byB0b3RhbCBjb3N0cyBvciBub3QuICovXG4gICAgcHJpY2VUeXBlPzogUHJpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXNjcmlwdGlvbiBmb3IgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwLiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIGdyb3VwIGlzIGNvbW1pc3Npb25lZCAoYW5kIHRoZXJlZm9yZSBzaG91bGQgYmUgZXhlY3V0ZWQpLCBwb3N0cG9uZWQgZm9yIGxhdGVyIG9yIHVuZGVmaW5lZC4gKi9cbiAgICBjb21pc3Npb25TdGF0dXM/OiBDb21pc3Npb25TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyIGZvciB0aGlzIElOdW1iZXJlZEVsZW1lbnQgaW50ZXJmYWNlLiAqL1xuICAgIGl0ZW1OdW1iZXI/OiBJdGVtTnVtYmVyRHRvIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGlzIGdyb3VwIGlzIHRoZSBwYXJlbnQgb2YgYSBsb3QuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB3b3JraW5nIHdpdGggbG90cy4gKi9cbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgZ3JvdXAgaXMgYW4gYWx0ZXJuYXRpdmUgZm9yIGEgYmFzZSBncm91cCwgdGhlbiB0aGlzIHByb3BlcnR5IHNob3VsZCBwb2ludCB0byB0aGUgaWQgb2YgdGhlIGdyb3VwIGluIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIHRoYXQgaXQgY2FuIHJlcGxhY2UuIElmIHRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgZ3JvdXAgdG8gYSBiYXNlIGdyb3VwLCB0aGUgUHJpY2VUeXBlIHNob3VsZCB0eXBpY2FsbHkgYmUgc2V0IHRvIFwiV2l0aG91dFRvdGFsXCIgc28gdGhpcyBncm91cCBkb2VzIG5vdCBmYWN0b3IgaW50byB0b3RhbCBjb3N0cy4gVGhlIFByaWNlVHlwZSBpcyBub3QgY2hhbmdlZCB3aGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0ICovXG4gICAgYWx0ZXJuYXRpdmVUbz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB2MUNvbXBhdGliaWxpdHlQcmljZVR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuICovXG4gICAgb2Vub3JtUHJvcGVydGllcz86IE9lbm9ybVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGhpZXJhcmNoeSBsZXZlbC4gSXQncyBzZXQgYXV0b21hdGljYWxseSB3aGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBQcm9qZWN0LCBhbmQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGhpZXJhcmNoeSBsZXZlbCBvZiB0aGUgY3VycmVudCBlbGVtZW50LiAqL1xuICAgIGhpZXJhcmNoeUxldmVsPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcywgaWYgdGhpcyBlbGVtZW50IGlzIHBhcnQgb2YgYW4gYWRkZW5kdW0gYW4sIGlmIHllcywgd2l0aCB3aGF0IHN0YXR1cy4gKi9cbiAgICBhZGRlbmR1bVN0YXR1cz86IEFkZGVuZHVtU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGludGVybmFsbHkgdXNlZCBkdXJpbmcgbWFwcGluZyBvcGVyYXRpb25zIHRvIHRlbXBvcmFyaWx5IGhvbGQgaW5mb3JtYXRpb24gYWJvdXQgcmVtb3ZlZCBJdGVtTnVtYmVyU2NoZW1hcy4gVGhvc2Ugc2NoZW1hcyBhcmUgc2V0IHRvIG51bGwgZHVyaW5nIHRoZSBtYXBwaW5nIHByb2Nlc3MgdG8gZW5zdXJlIHRoYXQgc2NoZW1hcyBpbiBlbGVtZW50cyBoaWdoZXIgdXAgaW4gdGhlIGhpZXJhcmNoeSBhcmUgY29ycmVjdGx5IHBhc3NlZCBkb3duIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIGl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uPzogSXRlbU51bWJlclNjaGVtYU1hcHBpbmdPcGVyYXRpb24gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8uIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgZ3JvdXAgaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCBpZiB5b3Ugc3BlY2lmaXkgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgd2l0aCB0aGUgc2FtZSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHlvdSBjYW4gaW5kaWNhdGUgdGhhdCB0byByZXBsYWNlIGEgc2luZ2xlIGJhc2UgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cCwgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgc2hvdWxkIGJlIHVzZWQuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgZ3JvdXAgdmlhIEFsdGVybmF0aXZlVG8uICovXG4gICAgYWx0ZXJuYXRpdmVJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIG9wdGlvbmFsIHByb3BlcnR5IHRoYXQgY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBBbHRlcm5hdGl2ZVRvIGFuZCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllci4gSWYgdGhpcyBpcyBzZXQsIHlvdSBjYW4gaW5kaWNhdGUgd2hpY2ggYWx0ZXJuYXRpdmUgZ3JvdXAgYSBzcGVjaWZpYyBncm91cCBpcyBhc3NpZ25lZCB0by4gVGhhdCB3YXksIHlvdSBjYW4gc3BlY2lmeSB0aGUgaWQgKGluIGludGVnZXIgZm9ybWF0KSBmb3IgdGhlIGFsdGVybmF0aXZlIGdyb3VwIHRoaXMgZ3JvdXAgYmVsb25ncyB0by4gSXQncyBkaWZmZXJlbnQgdG8gQWx0ZXJuYXRpdmVJZGVudGlmaWVyIGluIHRoYXQgdGhlIG90aGVyIHByb3BlcnR5IGRlc2NyaWJlcyB0aGUgaWQgb2YgdGhlIGdyb3VwLCB3aGlsZSB0aGlzIHByb3BlcnR5IGhlcmUgZGVzY3JpYmVzIHRoZSBncm91cCBpdHNlbGYuIElmIGEgZ3JvdXAgb25seSBoYXMgc2V0IEFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyIGJ1dCBub3QgQWx0ZXJuYXRpdmVJZGVudGlmaWVyLCB0aGVuIGl0IGxpa2VseSBpcyBhIGJhc2UgZ3JvdXAgZm9yIGEgc3BlY2lmaWMgZ3JvdXAuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgZ3JvdXAgdmlhIEFsdGVybmF0aXZlVG8uICovXG4gICAgYWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIHVzZWQgaW4gYW4gRWxlbWVudENvbnRhaW5lckJhc2UgdG8gaG9sZCB0aGUgcHJpY2UgY29tcG9zaXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3NzUHJpY2VDb21wb25lbnREdG8ge1xuICAgIC8qKiBUaGlzIGNvbXBvbmVudHMgdGF4IHJhdGUuICovXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB0aGUgZmFjdG9yIG9mIGFwcGxpZWQgZGVkdWN0aW9ucyBmb3IgdGhpcyBjb21wb25lbnQgKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBuZXQgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXG4gICAgdG90YWxOZXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByZXN1bHRpbmcgcHJpY2UgY29tcG9uZW50IGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucyAqL1xuICAgIHJlYWRvbmx5IHRvdGFsRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCB0YXggYW1vdW50IGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsVGF4PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXG4gICAgcmVhZG9ubHkgdG90YWxHcm9zcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIGdyb3NzIHByaWNlIGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgdGF4IGFtb3VudCBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZSwgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsVGF4RGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cbiAgICBvcmlnaW5Db2RlPzogT2Vub3JtT3JpZ2luQ29kZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xuICAgIG9wZW5pbmdUZXh0SXNGcmVlVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGFic3RyYWN0IGNsYXNzIGlzIHVzZWQgaW50ZXJuYWxseSB0byBob2xkIHJlc3VsdHMgYWJvdXQgYW4gaXRlbSBudW1iZXIgc2NoZW1hIHJlbW92YWwgb3BlcmF0aW9uLiBJdGVtIG51bWJlciBzY2hlbWFzIGFyZSByZW1vdmVkIGR1cmluZyB0aGUgbWFwcGluZyBwcm9jZXNzIHRvIGFsbG93IHRvcC1kb3duIHByb3BhZ2F0aW9uIGFmdGVyIGNvbnZlcnNpb24sIGJ1dCBhcmUgdGhlbiBhZGRlZCBiYWNrIHRvIHRoZSBEVE9zIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbCBzb3VyY2UuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uIHtcbn1cblxuLyoqIEluZGljYXRlcyBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3MgZXhjaGFuZ2UgcGhhc2UsIGJhc2VkIG9uIHRoZSBHQUVCIGV4Y2hhbmdlIHBoYXNlcy4gKi9cbmV4cG9ydCBlbnVtIEV4Y2hhbmdlUGhhc2VEdG8ge1xuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXG4gICAgQmFzZSA9IFwiQmFzZVwiLFxuICAgIENvc3RFc3RpbWF0ZSA9IFwiQ29zdEVzdGltYXRlXCIsXG4gICAgT2ZmZXJSZXF1ZXN0ID0gXCJPZmZlclJlcXVlc3RcIixcbiAgICBPZmZlciA9IFwiT2ZmZXJcIixcbiAgICBTaWRlT2ZmZXIgPSBcIlNpZGVPZmZlclwiLFxuICAgIEdyYW50ID0gXCJHcmFudFwiLFxufVxuXG4vKiogSW5kaWNhdGVzIHdoZXJlIGEgc2VydmljZSBzcGVjaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQuICovXG5leHBvcnQgZW51bSBPcmlnaW5EdG8ge1xuICAgIFNlbGYgPSBcIlNlbGZcIixcbiAgICBHYWViOTAgPSBcIkdhZWI5MFwiLFxuICAgIEdhZWIyMDAwID0gXCJHYWViMjAwMFwiLFxuICAgIEdhZWJYbWwgPSBcIkdhZWJYbWxcIixcbiAgICBPZW5vcm0gPSBcIk9lbm9ybVwiLFxuICAgIFJlYiA9IFwiUmViXCIsXG4gICAgU2lhID0gXCJTaWFcIixcbn1cblxuLyoqIEhvbGRzIGdsb2JhbCBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgcGVyIG9uZSBob3VyIG9mIG1hbnVhbCBsYWJvdXIgd29yayBpbiB0aGlzIHByb2plY3QuICovXG4gICAgaG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGZpbmFsLCB0b3RhbCBwcmljZSB3aWxsIGJlIGRlZHVjdGVkIGJ5IHRoaXMgcmF0ZS4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgZ2l2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBmbGF0IHByaWNlIGZvciB0aGUgd2hvbGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xuICAgIGZsYXRTdW0/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEdsb2JhbCB0YXggcmF0ZSBmb3IgdGhlIHByb2plY3QuIE5vdGUgdGhhdCBjZXJ0YWluIGVsZW1lbnRzIG1heSBoYXZlIGEgZGlmZmVyZW50LCBzcGVjaWZpYyB0YXggcmF0ZS4gKi9cbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgVGF4UmF0ZSBwcm9wZXJ0eSBpcyBhY3R1YWxseSB6ZXJvICgwKSBvciBpZiBpdCdzIGp1c3QgdW5zZXQuIFRoZSBUYXhSYXRlIGlzIGEgbm9uLW51bGxhYmxlIHByb3BlcnR5LCBzbyBpdCBjYW4ndCBiZSBudWxsIGFuZCB0aGVyZWZvcmUgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHVuc2V0IGFuZCB6ZXJvIHJlbGllcyBvbiB0aGlzIGFkZGl0aW9uYWwgcHJvcGVydHkuIFdoZW4gZXhwb3J0aW5nIHRvIEdBRUIsIHRoaXMgY2FuIGJlIHVzZWQgZS5nLiB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdGhlIHRheCByYXRlIHNob3VsZCBiZSBzZXJpYWxpemVkLiBUaGlzIHByb3BlcnR5IGlzIGF1dG9tdGljYWxseSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgVGF4UmF0ZSBpcyBzZXQgdG8gYW55IHZhbHVlLCBldmVuIHplcm8uIElmIHRoZSBUYXhSYXRlIGlzIG5vdCBzZXQgdG8gemVybywgdGhpcyBwcm9wZXJ0eSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgYW5kIGNhbiBub3QgYmUgc2V0IHRvIHRydWUuICovXG4gICAgaGFzVW5zZXRUYXhSYXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVHJhZGUgZGlzY291bnRzIGZvciBvZmZlcmVkIGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgdHJhZGVEaXNjb3VudHM/OiBUcmFkZURpc2NvdW50RHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IG9mZmVyZWQgdHJhZGUgZGlzY291bnRzIChTa29udG8gaW4gR2VybWFuKSAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFkZURpc2NvdW50RHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgZGF5cyBmb3IgaG93IGxvbmcgYSBkZWNsYXJlZCB0cmFkZSBkaXNjb3VudCBhcHBsaWVzLiBNdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSBpZ25vcmVkIGFuZCBub3Qgc2V0LiAqL1xuICAgIGRlYWRsaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcmF0ZSBvZiB0aGUgdHJhZGUgZGlzY291bnQuICovXG4gICAgcmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgZG9lcyBub3QgcmVwcmVzZW50IGEgdHlwaWNhbCBgVGltZVNwYW5gIGJ1dCBoYXMgYSBzY2FsYXIgdmFsdWUgaW50IER1cmF0aW9uIGFuZCBhIER1cmF0aW9uVW5pdCBVbml0IHRvIHJlcHJlc2VudCBkdXJhdGlvbnMgYXMgdHlwaWNhbGx5IHVzZWQgaW4gY29udHJhY3RzLCBlLmcuIDUgTW9udGhzICovXG5leHBvcnQgaW50ZXJmYWNlIFdhcnJhbnR5RHVyYXRpb25EdG8ge1xuICAgIC8qKiBUaGUgc2NhbGFyIHZhbHVlIG9mIHRoZSBkdXJhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGJpZ2dlciB0aGFuIHplcm8gKD49IDApLiBOZWdhdGl2ZSB2YWx1ZXMgY2FuIG5vdCBiZSBzZXQgYW5kIHdpbGwgYmUgaWdub3JlZC4gKi9cbiAgICBkdXJhdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHVuaXQgb2YgdGhlIGR1cmF0aW9uICovXG4gICAgdW5pdD86IER1cmF0aW9uVW5pdER0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgdW5pdCBvZiBhIGR1cmF0aW9uICovXG5leHBvcnQgZW51bSBEdXJhdGlvblVuaXREdG8ge1xuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXG4gICAgWWVhcnMgPSBcIlllYXJzXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgcHJvcGVydGllcyB1c2VkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHNjZW5hcmlvcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkNvbW1lcmNlUHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoZSBkYXRlIHVudGlsIHRoZSBwcmljZSBpcyB2YWxpZCBvciBmaXhlZC4gKi9cbiAgICBmaXhlZFByaWNlRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9mIHRoZSBkZWxpdmVyeSB2b3VjaGVyIG5vdGUuICovXG4gICAgZGVsaXZlcnlWb3VjaGVyRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhY3R1YWwgZGF0ZSBvZiBkZWxpdmVyeS4gKi9cbiAgICBkZWxpdmVyeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBpbnF1aXJ5LCB1c3VhbGx5IGluIGEgY29udGV4dCBvZiBvZmZlciByZXF1ZXN0cy4gKi9cbiAgICBpbnF1aXJ5TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBvZmZlciwgdXN1YWxseSBpbiBhIGNvbnRleHQgb2YgYW4gb2ZmZXIuICovXG4gICAgb2ZmZXJOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBvcmRlciBudW1iZXIsIHVzdWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgYSBncmFudCBvciBjb250cmFjdC4gKi9cbiAgICBvcmRlck51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG9yZGVyIGNvbmZpcm1hdGlvbiBudW1iZXIgKi9cbiAgICBvcmRlckNvbmZpcm1hdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG51bWJlciBvZiB0aGUgZGVsaXZlcnksIGUuZy4gb24gdGhlIGRlbGl2ZXJ5IG5vdGUgdm91Y2hlci4gKi9cbiAgICBkZWxpdmVyeU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHJlZmVyZW5jZSBudW1iZXIgb2YgdGhlIGN1c3RvbWVyIC8gYnV5ZXIuICovXG4gICAgY3VzdG9tZXJSZWZlcmVuY2VOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBzdXBwbGllciAvIGJpZGRlci4gKi9cbiAgICBzdXBwbGllclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2Ygc2hpcHBtZW50LiAqL1xuICAgIHNoaXBwaW5nVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIHByaWNlIGlucXVpcnkuICovXG4gICAgaW5xdWlyeVR5cGU/OiBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdHlwZXMgb2YgcHJpY2UgaW5xdWlyaWVzICovXG5leHBvcnQgZW51bSBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgUHJvamVjdCA9IFwiUHJvamVjdFwiLFxuICAgIEltbWVkaWF0ZSA9IFwiSW1tZWRpYXRlXCIsXG4gICAgRXhoaWJpdGlvbiA9IFwiRXhoaWJpdGlvblwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRpbmdQb3NpdGlvbkRhdGEge1xuICAgIHBvc2l0aW9uc0J5SWQ/OiB7IFtrZXk6IHN0cmluZ106IFBvc2l0aW9uRHRvOyB9IHwgdW5kZWZpbmVkO1xuICAgIGJhc2VQb3NpdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IFBvc2l0aW9uRHRvOyB9IHwgdW5kZWZpbmVkO1xuICAgIGNvbXBsZW1lbnRpbmdQb3NpdGlvbklkcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogQSBQcm9qZWN0IGNvbnRhaW5zIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdER0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSBhY2N1cmFjeSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9QUklDRV9BQ0NVUkFDWS4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIElmIFVuaXRQcmljZUFjY3VyYWN5IGlzIHNldCwgdGhlbiB0aGlzIHByb3BlcnR5IGlzIGlnbm9yZWQgZm9yIHVuaXQgcHJpY2VzLiAqL1xuICAgIHByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHBvc2l0aW9uIHVuaXQgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIFRoaXMgY2FuIGJlIHNlcGFyYXRlbHkgc2V0IGZyb20gUHJpY2VBY2N1cmFjeSwgYW5kIGl0IG9ubHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHRoZSB1bml0IHByaWNlIG9mIHBvc2l0aW9ucywgbm90IHRoZSB0b3RhbCBwcmljZS4gSXQgZGVmYXVsdHMgdG8gbnVsbCwgd2hpY2ggbWVhbnMgdGhlIHN0YW5kYXJkIFByaWNlQWNjdXJhY3kgaXMgdXNlZCBmb3IgdW5pdCBwcmljZXMuICovXG4gICAgdW5pdFByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgZm9yY2VzIHRvdGFsIHByaWNlcyB0byBiZSB0aGUgc3RyaWN0IHByb2R1Y3Qgb2YgcXVhbnRpdGllcyB0aW1lcyB1bml0IHByaWNlIGluIHBvc2l0aW9ucy4gSXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBJZiB0aGlzIGlzIGRpc2FibGVkLCBib3RoIHRoZSB1bml0IHByaWNlIGFuZCB0aGUgdG90YWwgcHJpY2Ugb2YgcG9zaXRpb25zIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgbm9uLXJvdW5kZWQgdmFsdWVzLiBQbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgdGhpcyBzZXR0aW5nLiAqL1xuICAgIGZvcmNlU3RyaWN0VG90YWxzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjb250cm9scyB0aGUgcm91bmRpbmcgbW9kZSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgcm91bmRpbmcgb2YgZGVjaW1hbCBwbGFjZXMgaXMgcGVyZm9ybWVkIGluIHByaWNlIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9ST1VORElOR19NT0RFLiBQbGVhc2Ugc2VlIHRoZSBEYW5nbC5BVkEgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBkZWNpbWFsIHByZWNpc2lvbi4gKi9cbiAgICBwcmljZVJvdW5kaW5nTW9kZT86IFByaWNlUm91bmRpbmdNb2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9qZWN0IGFuZCBpdHMgc3RydWN0dXJlLiAqL1xuICAgIHByb2plY3RJbmZvcm1hdGlvbj86IFByb2plY3RJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9ucyBpbiB0aGlzIFByb2plY3QuICovXG4gICAgc2VydmljZVNwZWNpZmljYXRpb25zPzogU2VydmljZVNwZWNpZmljYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBQcm9qZWN0LiBUaGlzIGRhdGEgaXMgbm90IHVzZWQgZm9yIGFueSBjYWxjdWxhdGlvbnMgb3IgZXZhbHVhdGlvbnMgYnV0IG9ubHkgZm9yIEdBRUIgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiAqL1xuICAgIGdhZWJYbWxJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvY29udGV4dC1tZW51LWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbGVtZW50RHRvIH0gZnJvbSAnLi9hdmEtbW9kZWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIENvbnRleHRNZW51RGF0YVR5cGUgPSB7XHJcbiAgcG9zaXRpb246IHsgeDogc3RyaW5nOyB5OiBzdHJpbmcgfTtcclxuICBub2RlOiBJRWxlbWVudER0bztcclxufTtcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvY29udGV4dC1tZW51LWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbGVtZW50RHRvIH0gZnJvbSAnLi9hdmEtbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnVEYXRhVHlwZSA9IHtcbiAgcG9zaXRpb246IHsgeDogc3RyaW5nOyB5OiBzdHJpbmcgfTtcbiAgbm9kZTogSUVsZW1lbnREdG87XG59O1xuIl19