@pipeline-builder/pipeline-data 4.1.21 → 4.1.23

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.
@@ -748,4 +748,4 @@ export const SEEDED_AUTO_APPROVAL_RULE_IDS = {
748
748
  verifiedUpdates: '00000000-0000-4000-8000-00000000a001',
749
749
  officialCatalog: '00000000-0000-4000-8000-00000000a002',
750
750
  };
751
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3NjaGVtYS9lY29zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQWdEdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQy9HLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sR0FDdEMsTUFBTSxxQkFBcUIsQ0FBQztBQU03Qix1RUFBdUU7QUFDdkUsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFtQjtJQUM1QyxRQUFRO1FBQ04sT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILDhFQUE4RTtBQUM5RSw4RUFBOEU7QUFDOUUseURBQXlEO0FBQ3pELDhFQUE4RTtBQUU5RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4QixtQkFBbUIsR0FpQnBCLE1BQU0sNEJBQTRCLENBQUM7QUFpQ3BDLDhFQUE4RTtBQUM5RSwwQkFBMEI7QUFDMUIsOEVBQThFO0FBRTlFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUU7SUFDN0MsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUU7SUFDM0MsVUFBVSxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFB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Q3ZELGVBQWUsRUFBRSxzQ0FBc0M7Q0FDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vL1xuLy8gUGx1Z2luIGVjb3N5c3RlbSB0YWJsZXMgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBNaXJyb3JzIHRoZVxuLy8gXCJQTFVHSU4gRUNPU1lTVEVNXCIgc2VjdGlvbiBvZiBwb3N0Z3Jlcy1pbml0LnNxbCwgd2hpY2ggaXMgYXV0aG9yaXRhdGl2ZSBmb3Jcbi8vIHRoZSB0cmlnZ2VyLW1haW50YWluZWQgYHNlYXJjaF92ZWN0b3JgLCB0aGUgUkxTIHBvbGljaWVzIGFuZCB0aGUgcHVibGljIHZpZXdzLlxuLy9cbi8vIFR3byBraW5kcyBvZiB0YWJsZTpcbi8vICAgKiBFQ09TWVNURU0tR0xPQkFMIOKAlCBwdWJsaXNoZXJzLCBsaXN0aW5ncywgbGlzdGluZyB2ZXJzaW9ucywgdGhlIHB1Ymxpc2hcbi8vICAgICByZXF1ZXN0IHF1ZXVlLCByZXZpZXdzLCBhZHZpc29yaWVzLCBhbm9ueW1vdXMgc3VibWlzc2lvbnMsIOKApiBUaGVcbi8vICAgICBkaXJlY3RvcnkgaXMgaW5zdGFuY2Utd2lkZSwgc28gdGhlc2UgY2FycnkgTk8gYG9yZ19pZGA6IHRoZXkgYXJlIG5vdFxuLy8gICAgIHRlbmFudCBzY29wZWQsIHdyaXRlcyBhcmUgZ2F0ZWQgaW4gdGhlIHNlcnZpY2UgbGF5ZXIgKHN5c3RlbS1vcmctb25seVxuLy8gICAgIGFwcHJvdmFsKSwgYW5kIHRoZWlyIFJMUyBwb2xpY3kgYWRtaXRzIHRoZSBhcHBsaWNhdGlvbiByb2xlIG9ubHkuXG4vLyAgICAgYHB1Ymxpc2hlcnMub3duZXJfb3JnX2lkYCBpcyBkZWxpYmVyYXRlbHkgbm90IG5hbWVkIGBvcmdfaWRgOiBhIHB1Ymxpc2hlclxuLy8gICAgIG91dGxpdmVzIGl0cyBvcmcsIHNvIGl0IG11c3Qgc3RheSBvdXQgb2YgdGhlIG9yZyBjYXNjYWRlLCB3aGljaFxuLy8gICAgIHRyZWF0cyBldmVyeSBgb3JnX2lkYCB0YWJsZSBhcyB0aGUgb3JnJ3MgZGF0YS5cbi8vICAgKiBPUkctU0NPUEVEIOKAlCBwaXBlbGluZV9zdGVwX21hbmlmZXN0cywgcGx1Z2luX2luc3RhbGxzLFxuLy8gICAgIHBsdWdpbl9pbnN0YWxsX3BvbGljaWVzLCBwbHVnaW5fYWR2aXNvcnlfZGVsaXZlcmllczogYG9yZ19pZGAgKyB0aGVcbi8vICAgICBzdGFuZGFyZCBgcmxzX29yZ18qYCBwb2xpY2llcyArIEZPUkNFLCBhbmQgcGFydCBvZiB0aGUgb3JnIGNhc2NhZGUuXG4vL1xuLy8gVGhlIHR3byBgcHVibGljXypgIHZpZXdzIGFyZSBkZWNsYXJlZCB3aXRoIGBwZ1ZpZXcoLi4uKS5leGlzdGluZygpYCAoZHJpenpsZVxuLy8gbmV2ZXIgY3JlYXRlcyB0aGVtOyBwb3N0Z3Jlcy1pbml0LnNxbCBkb2VzKS4gVGhleSBhcmUgd2hhdCB0aGUgYW5vbnltb3VzXG4vLyBkaXJlY3RvcnkgQVBJIHJlYWRzLCBjb25uZWN0ZWQgYXMgYGVjb3N5c3RlbV9wdWJsaWNfcmVhZGVyYCDigJQgdGhlIG9ubHlcbi8vIHJlbGF0aW9ucyB0aGF0IHJvbGUgY2FuIFNFTEVDVC4gVGhleSBhcmUgZXhwb3J0ZWQgZm9yIHR5cGVkIHF1ZXJpZXMgYnV0IGtlcHRcbi8vIG91dCBvZiB0aGUgYWdncmVnYXRlIGBzY2hlbWFgIG9iamVjdCwgd2hpY2ggbGlzdHMgdGFibGVzIG9ubHkuXG4vL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFB1Ymxpc2hlclRpZXIsXG4gIExpc3RpbmdTdGF0ZSxcbiAgUHVibGlzaFJlcXVlc3RLaW5kLFxuICBQdWJsaXNoUmVxdWVzdFN0YXR1cyxcbiAgUHVibGlzaFJlcXVlc3RMYW5lLFxuICBJbnN0YWxsVmVyc2lvblBvbGljeSxcbiAgSW5zdGFsbFN0YXR1cyxcbiAgQmxvY2tPbkFkdmlzb3J5LFxuICBPZmZpY2lhbEluc3RhbGxzLFxuICBSZXZpZXdTdGF0dXMsXG4gIFJldmlld0hvbGRSZWFzb24sXG4gIFJldmlld1JlcG9ydENhdGVnb3J5LFxuICBBZHZpc29yeVNldmVyaXR5LFxuICBBZHZpc29yeVN0YXRlLFxuICBBZHZpc29yeVNvdXJjZSxcbiAgU3VibWlzc2lvblN0YXR1cyxcbiAgUGx1Z2luU2NhbkZsYWcsXG4gIFBsdWdpblNlY3VyaXR5UmVjaXBpZW50TW9kZSxcbiAgUGx1Z2luU2VjdXJpdHlEaWdlc3RNb2RlLFxufSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBzcWwgfSBmcm9tICdkcml6emxlLW9ybSc7XG5pbXBvcnQge1xuICBib29sZWFuLCBjaGVjaywgY3VzdG9tVHlwZSwgZG91YmxlUHJlY2lzaW9uLCBpbmRleCwgaW50ZWdlciwganNvbmIsIHBnVGFibGUsIHBnVmlldywgcHJpbWFyeUtleSwgc21hbGxpbnQsIHRleHQsXG4gIHRpbWVzdGFtcCwgdW5pcXVlSW5kZXgsIHV1aWQsIHZhcmNoYXIsXG59IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5JY29uLCBQbHVnaW5TZWNyZXQsIFBsdWdpblVwbG9hZGVkSWNvbiB9IGZyb20gJy4vcGx1Z2luLmpzJztcblxuLyoqIFBlci1jb21wb25lbnQgaGVhbHRoIHNjb3JlczsgbWlycm9ycyBhcGktY29yZSdzIGBIZWFsdGhCcmVha2Rvd25gLiAqL1xuZXhwb3J0IHR5cGUgSGVhbHRoQnJlYWtkb3duID0gUmVjb3JkPHN0cmluZywgeyBzY29yZTogbnVtYmVyIHwgbnVsbDsgd2VpZ2h0OiBudW1iZXIgfT47XG5cbi8qKiBQb3N0Z3JlcyBgdHN2ZWN0b3JgLCB3aGljaCBkcml6emxlLW9ybSBoYXMgbm8gbmF0aXZlIGNvbHVtbiBmb3IuICovXG5jb25zdCB0c3ZlY3RvciA9IGN1c3RvbVR5cGU8eyBkYXRhOiBzdHJpbmcgfT4oe1xuICBkYXRhVHlwZSgpIHtcbiAgICByZXR1cm4gJ3RzdmVjdG9yJztcbiAgfSxcbn0pO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVudW1lcmF0aW9ucyDigJQgZGVmaW5lZCBpbiBhcGktY29yZSdzIHdpcmUgdm9jYWJ1bGFyeSBzbyB0aGUgZnJvbnRlbmQgc2hhcmVzXG4vLyB0aGVtOyBlYWNoIGlzIG1pcnJvcmVkIGJ5IGEgQ0hFQ0sgaW4gcG9zdGdyZXMtaW5pdC5zcWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQge1xuICBQVUJMSVNIRVJfVElFUlMsXG4gIExJU1RJTkdfU1RBVEVTLFxuICBQVUJMSVNIX1JFUVVFU1RfS0lORFMsXG4gIFBVQkxJU0hfUkVRVUVTVF9TVEFUVVNFUyxcbiAgT1BFTl9QVUJMSVNIX1JFUVVFU1RfU1RBVFVTRVMsXG4gIElOU1RBTExfVkVSU0lPTl9QT0xJQ0lFUyxcbiAgUkVWSUVXX0hPTERfUkVBU09OUyxcbiAgUkVWSUVXX1JFUE9SVF9DQVRFR09SSUVTLFxuICBTVUJNSVNTSU9OX1NUQVRVU0VTLFxuICB0eXBlIFB1Ymxpc2hlclRpZXIsXG4gIHR5cGUgTGlzdGluZ1N0YXRlLFxuICB0eXBlIFB1Ymxpc2hSZXF1ZXN0S2luZCxcbiAgdHlwZSBQdWJsaXNoUmVxdWVzdFN0YXR1cyxcbiAgdHlwZSBQdWJsaXNoUmVxdWVzdExhbmUsXG4gIHR5cGUgSW5zdGFsbFZlcnNpb25Qb2xpY3ksXG4gIHR5cGUgSW5zdGFsbFN0YXR1cyxcbiAgdHlwZSBCbG9ja09uQWR2aXNvcnksXG4gIHR5cGUgT2ZmaWNpYWxJbnN0YWxscyxcbiAgdHlwZSBSZXZpZXdTdGF0dXMsXG4gIHR5cGUgUmV2aWV3SG9sZFJlYXNvbixcbiAgdHlwZSBSZXZpZXdSZXBvcnRDYXRlZ29yeSxcbiAgdHlwZSBBZHZpc29yeVNldmVyaXR5LFxuICB0eXBlIEFkdmlzb3J5U3RhdGUsXG4gIHR5cGUgQWR2aXNvcnlTb3VyY2UsXG4gIHR5cGUgU3VibWlzc2lvblN0YXR1cyxcbn0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuXG4vKipcbiAqIEEgbWVtYmVyJ3MgcGVuZGluZyByZXF1ZXN0IHRvIENIQU5HRSBhbiBhY3RpdmUgaW5zdGFsbCAoaXRzIHZlcnNpb24gb3JcbiAqIHZlcnNpb24gcG9saWN5KSB0aGF0IG5lZWRzIGFuIGFwcHJvdmVyIOKAlCBjcm9zc2luZyBhIG1ham9yL2JyZWFraW5nIHZlcnNpb24sXG4gKiBvciB3aWRlbmluZyB0byBgbGF0ZXN0YCwgb24gYW4gYXBwcm92YWwtZ2F0ZWQgdGllci4gT25lIHBlciBpbnN0YWxsOyBhblxuICogYXBwcm92ZXIgKGBwbHVnaW5faW5zdGFsbHM6bWFuYWdlYCkgYXBwbGllcyBvciByZWplY3RzIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxDaGFuZ2VSZXF1ZXN0IHtcbiAgLyoqIFRoZSB2ZXJzaW9uIHRoZSBpbnN0YWxsIHdvdWxkIG1vdmUgdG8uICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqIFRoZSB2ZXJzaW9uIHBvbGljeSBpdCB3b3VsZCBtb3ZlIHRvLiAqL1xuICB2ZXJzaW9uUG9saWN5OiBJbnN0YWxsVmVyc2lvblBvbGljeTtcbiAgcmVxdWVzdGVkQnk6IHN0cmluZztcbiAgLyoqIElTTyB0aW1lIG9mIHRoZSByZXF1ZXN0LiAqL1xuICByZXF1ZXN0ZWRBdDogc3RyaW5nO1xuICBub3RlOiBzdHJpbmcgfCBudWxsO1xufVxuLyoqIEEgYChwdWJsaXNoZXIsIG5hbWUpYCBhbiBvcmcncyBjb25zdW1wdGlvbiBwb2xpY3kgYmxvY2tzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCbG9ja2VkTGlzdGluZ1JlZiB7XG4gIHB1Ymxpc2hlcjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBBbiBhbm9ueW1vdXMgc3VibWlzc2lvbidzIGFjY2VwdGVkIGNhdGFsb2cgbWV0YWRhdGEgYW5kIHBlci1maWVsZCBwcm92ZW5hbmNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJtaXNzaW9uQ2F0YWxvZyB7XG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHNvdXJjZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKiBOb3RpZmljYXRpb24gZXZlbnQgbnVtYmVyIChgTjFgIOKApiBgTjI5YCkuICovXG5leHBvcnQgdHlwZSBFY29zeXN0ZW1Ob3RpZmljYXRpb25FdmVudCA9IGBOJHtudW1iZXJ9YDtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFY29zeXN0ZW0tZ2xvYmFsIHRhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQW4gb3JnJ3MgcHVibGljIGlkZW50aXR5IChvbmUgcGVyIHJvb3Qgb3JnKS4gYG93bmVyT3JnSWRgIGlzIE5VTEwgZm9yIHRoZVxuICogcGxhdGZvcm0tb3duZWQgYGNvbW11bml0eWAgcHVibGlzaGVyIGFub255bW91cyBzdWJtaXNzaW9ucyBsYW5kIHVuZGVyLlxuICpcbiAqIEB0YWJsZSBwdWJsaXNoZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBwdWJsaXNoZXIgPSBwZ1RhYmxlKCdwdWJsaXNoZXJzJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICBvd25lck9yZ0lkOiB2YXJjaGFyKCdvd25lcl9vcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLnVuaXF1ZSgpLFxuICBoYW5kbGU6IHZhcmNoYXIoJ2hhbmRsZScsIHsgbGVuZ3RoOiAzOSB9KS5ub3ROdWxsKCkudW5pcXVlKCksXG4gIGRpc3BsYXlOYW1lOiB2YXJjaGFyKCdkaXNwbGF5X25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgZGVzY3JpcHRpb246IHRleHQoJ2Rlc2NyaXB0aW9uJyksXG4gIGhvbWVwYWdlVXJsOiB2YXJjaGFyKCdob21lcGFnZV91cmwnLCB7IGxlbmd0aDogMjA0OCB9KSxcbiAgdGllcjogdmFyY2hhcigndGllcicsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxQdWJsaXNoZXJUaWVyPigpLmRlZmF1bHQoJ2NvbW11bml0eScpLm5vdE51bGwoKSxcbiAgdmVyaWZpZWRBdDogdGltZXN0YW1wKCd2ZXJpZmllZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICAvLyBWZXJpZmllZCBwdWJsaXNoZXIgZG93bmdyYWRlZCBiZWxvdyBUZWFtIGtlZXBzIHRoZSB0aWVyIHVudGlsIHRoaXMgcGFzc2VzIChOMjkpLlxuICB2ZXJpZmllZEdyYWNlVW50aWw6IHRpbWVzdGFtcCgndmVyaWZpZWRfZ3JhY2VfdW50aWwnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgdGVybXNWZXJzaW9uOiB2YXJjaGFyKCd0ZXJtc192ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLFxuICB0ZXJtc0FjY2VwdGVkQXQ6IHRpbWVzdGFtcCgndGVybXNfYWNjZXB0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgc3VzcGVuZGVkQXQ6IHRpbWVzdGFtcCgnc3VzcGVuZGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHN1c3BlbmRSZWFzb246IHRleHQoJ3N1c3BlbmRfcmVhc29uJyksXG4gIC8vIFc3IHJvbGwtdXBzLCB3cml0dGVuIGJ5IHRoZSBzdGF0cyBzd2VlcDogcnVuLXdlaWdodGVkIDMwLWRheSBzdWNjZXNzIHJhdGVcbiAgLy8gYW5kIHRoZSBpbnN0YWxsLXdlaWdodGVkIG1lYW4gaGVhbHRoIHNjb3JlIG9mIGl0cyBsaXN0aW5ncyAoTlVMTDogbm9uZSkuXG4gIHN1Y2Nlc3NSYXRlMzBkOiBkb3VibGVQcmVjaXNpb24oJ3N1Y2Nlc3NfcmF0ZV8zMGQnKSxcbiAgaGVhbHRoU2NvcmU6IGludGVnZXIoJ2hlYWx0aF9zY29yZScpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgaGFuZGxlQ2hlY2s6IGNoZWNrKCdwdWJsaXNoZXJzX2hhbmRsZV9jaGVjaycsIHNxbGAke3RhYmxlLmhhbmRsZX0gfiAnXlthLXowLTldW2EtejAtOS1dKiQnYCksXG4gIHRpZXJDaGVjazogY2hlY2soJ3B1Ymxpc2hlcnNfdGllcl9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUudGllcn0gSU4gKCdvZmZpY2lhbCcsICd2ZXJpZmllZCcsICdjb21tdW5pdHknLCAndW52ZXJpZmllZCcpYCksXG59KSk7XG5cbi8qKlxuICogQSBwbHVnaW4gTkFNRSBwdWJsaXNoZWQgYnkgYSBwdWJsaXNoZXIuIFJldmlld3MsIGluc3RhbGxzLCBzdGF0cyBhbmQgc2VhcmNoXG4gKiBhdHRhY2ggaGVyZTsgdGhlIHBlci12ZXJzaW9uIHJlY29yZHMgYXJlIHtAbGluayBwbHVnaW5MaXN0aW5nVmVyc2lvbn0uXG4gKiBgc2VhcmNoVmVjdG9yYCBpcyBtYWludGFpbmVkIGJ5IGEgdHJpZ2dlciBpbiBwb3N0Z3Jlcy1pbml0LnNxbCAobmFtZSBBLFxuICoga2V5d29yZHMgKyBjYXRlZ29yeSBCLCBzdW1tYXJ5IEMsIFJFQURNRSArIGRlc2NyaXB0aW9uIEQsIGNvbmZpZyBgZW5nbGlzaGApXG4gKiDigJQgbmV2ZXIgd3JpdGUgaXQgZnJvbSB0aGUgYXBwbGljYXRpb24uXG4gKlxuICogQHRhYmxlIHBsdWdpbl9saXN0aW5nc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luTGlzdGluZyA9IHBnVGFibGUoJ3BsdWdpbl9saXN0aW5ncycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgcHVibGlzaGVySWQ6IHV1aWQoJ3B1Ymxpc2hlcl9pZCcpLm5vdE51bGwoKS5yZWZlcmVuY2VzKCgpID0+IHB1Ymxpc2hlci5pZCksXG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgY2F0ZWdvcnk6IHZhcmNoYXIoJ2NhdGVnb3J5JywgeyBsZW5ndGg6IDUwIH0pLmRlZmF1bHQoJ3Vua25vd24nKS5ub3ROdWxsKCksXG4gIHN1bW1hcnk6IHZhcmNoYXIoJ3N1bW1hcnknLCB7IGxlbmd0aDogMzAwIH0pLFxuICBkZXNjcmlwdGlvbjogdGV4dCgnZGVzY3JpcHRpb24nKSxcbiAgcmVhZG1lSHRtbDogdGV4dCgncmVhZG1lX2h0bWwnKSxcbiAgbGljZW5zZTogdmFyY2hhcignbGljZW5zZScsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgaG9tZXBhZ2VVcmw6IHZhcmNoYXIoJ2hvbWVwYWdlX3VybCcsIHsgbGVuZ3RoOiAyMDQ4IH0pLFxuICBzb3VyY2VVcmw6IHZhcmNoYXIoJ3NvdXJjZV91cmwnLCB7IGxlbmd0aDogMjA0OCB9KSxcbiAgaWNvbjoganNvbmIoJ2ljb24nKS4kdHlwZTxQbHVnaW5JY29uPigpLFxuICB1cGxvYWRlZEljb246IGpzb25iKCd1cGxvYWRlZF9pY29uJykuJHR5cGU8UGx1Z2luVXBsb2FkZWRJY29uPigpLFxuICBrZXl3b3JkczoganNvbmIoJ2tleXdvcmRzJykuJHR5cGU8c3RyaW5nW10+KCkuZGVmYXVsdChbXSkubm90TnVsbCgpLFxuICBzdGF0ZTogdmFyY2hhcignc3RhdGUnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8TGlzdGluZ1N0YXRlPigpLmRlZmF1bHQoJ2xpc3RlZCcpLm5vdE51bGwoKSxcbiAgLy8gUHVibGlzaGVyIHBhdXNlOiBubyBuZXcgaW5zdGFsbHM7IGV4aXN0aW5nIGluc3RhbGxzIGtlZXAgcmVzb2x2aW5nLlxuICBwYXVzZWRBdDogdGltZXN0YW1wKCdwYXVzZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZmVhdHVyZWQ6IGJvb2xlYW4oJ2ZlYXR1cmVkJykuZGVmYXVsdChmYWxzZSkubm90TnVsbCgpLFxuICBsYXRlc3RWZXJzaW9uOiB2YXJjaGFyKCdsYXRlc3RfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgc2VhcmNoVmVjdG9yOiB0c3ZlY3Rvcignc2VhcmNoX3ZlY3RvcicpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgcHVibGlzaGVyTmFtZVVuaXF1ZTogdW5pcXVlSW5kZXgoJ3BsdWdpbl9saXN0aW5nX3B1Ymxpc2hlcl9uYW1lX3VuaXF1ZScpLm9uKHRhYmxlLnB1Ymxpc2hlcklkLCB0YWJsZS5uYW1lKSxcbiAgc3RhdGVDYXRlZ29yeUlkeDogaW5kZXgoJ3BsdWdpbl9saXN0aW5nX3N0YXRlX2NhdGVnb3J5X2lkeCcpLm9uKHRhYmxlLnN0YXRlLCB0YWJsZS5jYXRlZ29yeSksXG4gIHVwZGF0ZWRBdElkeDogaW5kZXgoJ3BsdWdpbl9saXN0aW5nX3VwZGF0ZWRfYXRfaWR4Jykub24odGFibGUudXBkYXRlZEF0KSxcbiAgc2VhcmNoVmVjdG9ySWR4OiBpbmRleCgncGx1Z2luX2xpc3Rpbmdfc2VhcmNoX3ZlY3Rvcl9pZHgnKS51c2luZygnZ2luJywgdGFibGUuc2VhcmNoVmVjdG9yKSxcbiAgLy8gcGdfdHJnbTogdHlwby10b2xlcmFudCBuYW1lIG1hdGNoaW5nIChcInRlcmFmcm9tXCIgLT4gdGVycmFmb3JtKS5cbiAgbmFtZVRyZ21JZHg6IGluZGV4KCdwbHVnaW5fbGlzdGluZ19uYW1lX3RyZ21faWR4JykudXNpbmcoJ2dpbicsIHNxbGAke3RhYmxlLm5hbWV9IGdpbl90cmdtX29wc2ApLFxuICBzdGF0ZUNoZWNrOiBjaGVjaygncGx1Z2luX2xpc3RpbmdzX3N0YXRlX2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS5zdGF0ZX0gSU4gKCdsaXN0ZWQnLCAndW5tYWludGFpbmVkJywgJ3N1c3BlbmRlZCcsICd0cmFuc2ZlcnJlZCcpYCksXG59KSk7XG5cbi8qKlxuICogVGhlIHB1YmxpYywgZnJvemVuIHN1YnNldCBvZiBhIHBsdWdpbiByZWNvcmQgY2FwdHVyZWQgYXQgYXBwcm92YWwsIHNvIGFcbiAqIGxpc3RlZCB2ZXJzaW9uIGtlZXBzIHN5bnRoZXNpemluZyBhZnRlciB0aGUgcHVibGlzaGVyIG9yZydzIG93biBgcGx1Z2luc2BcbiAqIHJvdyBpcyBkZWxldGVkIG9yIHB1cmdlZC4gT25seSB0aGUga2V5cyB0aGUgYHB1YmxpY19saXN0ZWRfdmVyc2lvbnNgXG4gKiB2aWV3IHByb2plY3RzIGFyZSBwdWJsaWM7IHRoZSByZXN0IGlzIHZpc2libGUgdG8gaW5zdGFsbGVycycgc3ludGggb25seS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0aW5nVmVyc2lvblNwZWNTbmFwc2hvdCB7XG4gIHBsdWdpblR5cGU/OiBzdHJpbmc7XG4gIGNvbXB1dGVUeXBlPzogc3RyaW5nO1xuICBzZWNyZXRzPzogUGx1Z2luU2VjcmV0W107XG4gIHJlcXVpcmVkTWV0YWRhdGE/OiBzdHJpbmdbXTtcbiAgcmVxdWlyZWRWYXJzPzogc3RyaW5nW107XG4gIG5ldHdvcmtFZ3Jlc3M/OiBzdHJpbmdbXTtcbiAgcnVuQXNSb290PzogYm9vbGVhbjtcbiAgbGljZW5zZT86IHN0cmluZztcbiAgcmVhZG1lSHRtbD86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBBIHZlcnNpb24gcHVibGlzaGVkIHRvIGEgbGlzdGluZyDigJQgdGhlIGNvcHkgaW4gdGhlIHJlYWQtb25seSBgcHVibGljLypgXG4gKiBuYW1lc3BhY2UuIEltbXV0YWJsZSBvbmNlIHdyaXR0ZW4gYXBhcnQgZnJvbSBwYXVzZSAvIHlhbmsgL1xuICogZGVwcmVjYXRpb24uIGBzb3VyY2VQbHVnaW5JZGAgaXMgcHJvdmVuYW5jZSBvbmx5IChubyBGSzogdGhlIG9yZyByb3cgaXNcbiAqIHNvZnQtZGVsZXRlZCBhbmQgcHVyZ2VkIG9uIGl0cyBvd24gc2NoZWR1bGUpLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fbGlzdGluZ192ZXJzaW9uc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luTGlzdGluZ1ZlcnNpb24gPSBwZ1RhYmxlKCdwbHVnaW5fbGlzdGluZ192ZXJzaW9ucycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luTGlzdGluZy5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pLFxuICBzb3VyY2VQbHVnaW5JZDogdXVpZCgnc291cmNlX3BsdWdpbl9pZCcpLFxuICB2ZXJzaW9uOiB2YXJjaGFyKCd2ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLm5vdE51bGwoKSxcbiAgaW1hZ2VEaWdlc3Q6IHZhcmNoYXIoJ2ltYWdlX2RpZ2VzdCcsIHsgbGVuZ3RoOiA3MSB9KSxcbiAgLy8gcHVibGljLzxoYW5kbGU+LzxuYW1lPlxuICBpbWFnZVJlcG9zaXRvcnk6IHZhcmNoYXIoJ2ltYWdlX3JlcG9zaXRvcnknLCB7IGxlbmd0aDogNTEyIH0pLFxuICBzcGVjU25hcHNob3Q6IGpzb25iKCdzcGVjX3NuYXBzaG90JykuJHR5cGU8TGlzdGluZ1ZlcnNpb25TcGVjU25hcHNob3Q+KCkuZGVmYXVsdCh7fSkubm90TnVsbCgpLFxuICBicmVha2luZzogYm9vbGVhbignYnJlYWtpbmcnKS5kZWZhdWx0KGZhbHNlKS5ub3ROdWxsKCksXG4gIHBhdXNlZEF0OiB0aW1lc3RhbXAoJ3BhdXNlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICB5YW5rZWRBdDogdGltZXN0YW1wKCd5YW5rZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgeWFua1JlYXNvbjogdGV4dCgneWFua19yZWFzb24nKSxcbiAgZGVwcmVjYXRlZEF0OiB0aW1lc3RhbXAoJ2RlcHJlY2F0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZGVwcmVjYXRpb25NZXNzYWdlOiB0ZXh0KCdkZXByZWNhdGlvbl9tZXNzYWdlJyksXG4gIGNoYW5nZWxvZzogdGV4dCgnY2hhbmdlbG9nJyksXG4gIHZ1bG5Dcml0aWNhbDogaW50ZWdlcigndnVsbl9jcml0aWNhbCcpLFxuICB2dWxuSGlnaDogaW50ZWdlcigndnVsbl9oaWdoJyksXG4gIC8vIEZpeGFibGUgc3Vic2V0IChncnlwZSByZXBvcnRzIGEgZml4ZWQgdmVyc2lvbik7IE5VTEwgPSB1bnNjYW5uZWQuXG4gIHZ1bG5Dcml0aWNhbEZpeGFibGU6IGludGVnZXIoJ3Z1bG5fY3JpdGljYWxfZml4YWJsZScpLFxuICB2dWxuSGlnaEZpeGFibGU6IGludGVnZXIoJ3Z1bG5faGlnaF9maXhhYmxlJyksXG4gIHNjYW5uZWRBdDogdGltZXN0YW1wKCdzY2FubmVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIC8vIFRoZSBuaWdodGx5IHJlc2NhbidzIGZsYWcgKGZpeGFibGUgY3JpdGljYWxzIG92ZXIgUExVR0lOX1ZVTE5fTUFYX0NSSVRJQ0FMKTsgTlVMTCA9IG5vdCBmbGFnZ2VkLlxuICBzY2FuRmxhZ2dlZEF0OiB0aW1lc3RhbXAoJ3NjYW5fZmxhZ2dlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBzY2FuRmxhZzoganNvbmIoJ3NjYW5fZmxhZycpLiR0eXBlPFBsdWdpblNjYW5GbGFnPigpLFxuICAvLyBUaGUgYmFzZSBpbWFnZSdzIGNvbmZpZyBgY3JlYXRlZGAgdGltZSwgcmVjb3JkZWQgYXQgcHVibGlzaDsgTlVMTCA9IHVua25vd24uXG4gIGJhc2VJbWFnZUNyZWF0ZWRBdDogdGltZXN0YW1wKCdiYXNlX2ltYWdlX2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLy8gV2hlbiBtYWludGVuYW5jZSBjb2xsZWN0ZWQgdGhpcyBsb25nLXlhbmtlZCwgdW5yZWZlcmVuY2VkIHZlcnNpb24ncyBwdWJsaWMvKiBpbWFnZTsgTlVMTCA9IHN0aWxsIHN0b3JlZC5cbiAgaW1hZ2VDb2xsZWN0ZWRBdDogdGltZXN0YW1wKCdpbWFnZV9jb2xsZWN0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgcHVibGlzaGVkQXQ6IHRpbWVzdGFtcCgncHVibGlzaGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgcHVibGlzaGVkQnk6IHRleHQoJ3B1Ymxpc2hlZF9ieScpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgbGlzdGluZ1ZlcnNpb25VbmlxdWU6IHVuaXF1ZUluZGV4KCdwbHVnaW5fbGlzdGluZ192ZXJzaW9uX3VuaXF1ZScpLm9uKHRhYmxlLmxpc3RpbmdJZCwgdGFibGUudmVyc2lvbiksXG4gIC8vIHB1YmxpYy8qIEdDIGd1YXJkICsgZGlnZXN0IGxvb2t1cHMuXG4gIGRpZ2VzdElkeDogaW5kZXgoJ3BsdWdpbl9saXN0aW5nX3ZlcnNpb25fZGlnZXN0X2lkeCcpLm9uKHRhYmxlLmltYWdlRGlnZXN0KSxcbiAgdmVyc2lvbkNoZWNrOiBjaGVjaygncGx1Z2luX2xpc3RpbmdfdmVyc2lvbnNfdmVyc2lvbl9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUudmVyc2lvbn0gfiAnXlswLTldK1xcLlswLTldK1xcLlswLTldKygtW2EtekEtWjAtOS4tXSspPyhcXCtbYS16QS1aMC05Li1dKyk/JCdgLFxuICApLFxuICBpbWFnZURpZ2VzdENoZWNrOiBjaGVjaygncGx1Z2luX2xpc3RpbmdfdmVyc2lvbnNfaW1hZ2VfZGlnZXN0X2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS5pbWFnZURpZ2VzdH0gSVMgTlVMTCBPUiAke3RhYmxlLmltYWdlRGlnZXN0fSB+ICdec2hhMjU2OlswLTlhLWZdezY0fSQnYCksXG59KSk7XG5cbi8qKlxuICogU2VjdXJpdHkgYWR2aXNvcnkgYWdhaW5zdCBhIGxpc3RpbmcncyB2ZXJzaW9uIHJhbmdlLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fYWR2aXNvcmllc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luQWR2aXNvcnkgPSBwZ1RhYmxlKCdwbHVnaW5fYWR2aXNvcmllcycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luTGlzdGluZy5pZCksXG4gIHB1Ymxpc2hlcklkOiB1dWlkKCdwdWJsaXNoZXJfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwdWJsaXNoZXIuaWQpLFxuICAvLyBTZW12ZXIgcmFuZ2Ugb2YgYWZmZWN0ZWQgdmVyc2lvbnMuXG4gIGFmZmVjdGVkUmFuZ2U6IHZhcmNoYXIoJ2FmZmVjdGVkX3JhbmdlJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGZpeGVkVmVyc2lvbjogdmFyY2hhcignZml4ZWRfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgc2V2ZXJpdHk6IHZhcmNoYXIoJ3NldmVyaXR5JywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPEFkdmlzb3J5U2V2ZXJpdHk+KCkubm90TnVsbCgpLFxuICBzdW1tYXJ5OiB2YXJjaGFyKCdzdW1tYXJ5JywgeyBsZW5ndGg6IDMwMCB9KS5ub3ROdWxsKCksXG4gIGRldGFpbHNNZDogdGV4dCgnZGV0YWlsc19tZCcpLFxuICBkZXRhaWxzSHRtbDogdGV4dCgnZGV0YWlsc19odG1sJyksXG4gIGN2ZUlkczogdGV4dCgnY3ZlX2lkcycpLmFycmF5KCkuZGVmYXVsdChbXSkubm90TnVsbCgpLFxuICBzdGF0ZTogdmFyY2hhcignc3RhdGUnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8QWR2aXNvcnlTdGF0ZT4oKS5kZWZhdWx0KCdkcmFmdCcpLm5vdE51bGwoKSxcbiAgc291cmNlOiB2YXJjaGFyKCdzb3VyY2UnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8QWR2aXNvcnlTb3VyY2U+KCkubm90TnVsbCgpLFxuICBjcmVhdGVkQnk6IHRleHQoJ2NyZWF0ZWRfYnknKS5ub3ROdWxsKCksXG4gIHB1Ymxpc2hlZEJ5OiB0ZXh0KCdwdWJsaXNoZWRfYnknKSxcbiAgcHVibGlzaGVkQXQ6IHRpbWVzdGFtcCgncHVibGlzaGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHdpdGhkcmF3bkF0OiB0aW1lc3RhbXAoJ3dpdGhkcmF3bl9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgbGlzdGluZ1N0YXRlSWR4OiBpbmRleCgncGx1Z2luX2Fkdmlzb3J5X2xpc3Rpbmdfc3RhdGVfaWR4Jykub24odGFibGUubGlzdGluZ0lkLCB0YWJsZS5zdGF0ZSksXG4gIHB1Ymxpc2hlcklkeDogaW5kZXgoJ3BsdWdpbl9hZHZpc29yeV9wdWJsaXNoZXJfaWR4Jykub24odGFibGUucHVibGlzaGVySWQpLFxuICBzZXZlcml0eUNoZWNrOiBjaGVjaygncGx1Z2luX2Fkdmlzb3JpZXNfc2V2ZXJpdHlfY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLnNldmVyaXR5fSBJTiAoJ2NyaXRpY2FsJywgJ2hpZ2gnLCAnbWVkaXVtJywgJ2xvdycpYCksXG4gIHN0YXRlQ2hlY2s6IGNoZWNrKCdwbHVnaW5fYWR2aXNvcmllc19zdGF0ZV9jaGVjaycsIHNxbGAke3RhYmxlLnN0YXRlfSBJTiAoJ2RyYWZ0JywgJ3B1Ymxpc2hlZCcsICd3aXRoZHJhd24nKWApLFxuICBzb3VyY2VDaGVjazogY2hlY2soJ3BsdWdpbl9hZHZpc29yaWVzX3NvdXJjZV9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuc291cmNlfSBJTiAoJ3B1Ymxpc2hlcicsICdtb2RlcmF0b3InLCAnY3ZlX3Jlc2NhbicsICdyZXZpZXcnKWApLFxufSkpO1xuXG4vKipcbiAqIEEgcHJvcG9zZWQgZW5hYmxlIG9yIHdpZGVuaW5nIG9mIGFuIGF1dG8tYXBwcm92YWwgcnVsZSwgd2FpdGluZyBmb3IgYSBTRUNPTkRcbiAqIEVjb3N5c3RlbSBNYW5hZ2VyIChuZXZlciB0aGUgcHJvcG9zZXIpLiBEaXNhYmxpbmcgb3IgZGVsZXRpbmcgYSBydWxlXG4gKiBuYXJyb3dzIGl0IGFuZCBhcHBsaWVzIGF0IG9uY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0FwcHJvdmFsUnVsZVBlbmRpbmdDaGFuZ2Uge1xuICByZXF1ZXN0ZWRCeTogc3RyaW5nO1xuICByZXF1ZXN0ZWRBdDogc3RyaW5nO1xuICBlbmFibGVkOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFN5c3RlbS1vcmcgYXV0by1hcHByb3ZhbCBydWxlczsgZW5hYmxpbmcgb3Igd2lkZW5pbmcgb25lXG4gKiBuZWVkcyBhIHNlY29uZCBhcHByb3ZlciAoYHBlbmRpbmdDaGFuZ2VgKS5cbiAqXG4gKiBAdGFibGUgZWNvc3lzdGVtX2F1dG9fYXBwcm92YWxfcnVsZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGVjb3N5c3RlbUF1dG9BcHByb3ZhbFJ1bGUgPSBwZ1RhYmxlKCdlY29zeXN0ZW1fYXV0b19hcHByb3ZhbF9ydWxlcycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgbmFtZTogdmFyY2hhcignbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBlbmFibGVkOiBib29sZWFuKCdlbmFibGVkJykuZGVmYXVsdChmYWxzZSkubm90TnVsbCgpLFxuICBjb25kaXRpb25zOiBqc29uYignY29uZGl0aW9ucycpLiR0eXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpLmRlZmF1bHQoe30pLm5vdE51bGwoKSxcbiAgY3JlYXRlZEJ5OiB0ZXh0KCdjcmVhdGVkX2J5Jykubm90TnVsbCgpLFxuICAvLyBTZWNvbmQgYXBwcm92ZXIgKG5ldmVyIHRoZSBjcmVhdG9yKS5cbiAgYXBwcm92ZWRCeTogdGV4dCgnYXBwcm92ZWRfYnknKSxcbiAgcGVuZGluZ0NoYW5nZToganNvbmIoJ3BlbmRpbmdfY2hhbmdlJykuJHR5cGU8QXV0b0FwcHJvdmFsUnVsZVBlbmRpbmdDaGFuZ2U+KCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSk7XG5cbi8qKlxuICogVGhlIHNpbmdsZSBxdWV1ZSB0aGUgRWNvc3lzdGVtIGNvbnNvbGUgd29ya3MgZnJvbS4gYGRpZ2VzdGAgaXMgcGlubmVkXG4gKiBhdCBzdWJtaXQ6IGFwcHJvdmFsIHB1Ymxpc2hlcyBleGFjdGx5IGl0LCBvciBmYWlscyBjbG9zZWQuIGBwbHVnaW5JZGBcbiAqIGhhcyBubyBGSyAodGhlIG9yZyByb3cgaXMgc29mdC1kZWxldGVkIGFuZCBwdXJnZWQgb24gaXRzIG93biBzY2hlZHVsZSkuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9wdWJsaXNoX3JlcXVlc3RzXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5QdWJsaXNoUmVxdWVzdCA9IHBnVGFibGUoJ3BsdWdpbl9wdWJsaXNoX3JlcXVlc3RzJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICBwdWJsaXNoZXJJZDogdXVpZCgncHVibGlzaGVyX2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcHVibGlzaGVyLmlkKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5MaXN0aW5nLmlkKSxcbiAgcGx1Z2luSWQ6IHV1aWQoJ3BsdWdpbl9pZCcpLFxuICB2ZXJzaW9uOiB2YXJjaGFyKCd2ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLFxuICBkaWdlc3Q6IHZhcmNoYXIoJ2RpZ2VzdCcsIHsgbGVuZ3RoOiA3MSB9KSxcbiAga2luZDogdmFyY2hhcigna2luZCcsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxQdWJsaXNoUmVxdWVzdEtpbmQ+KCkubm90TnVsbCgpLFxuICBzZWN1cml0eUZpeEFkdmlzb3J5SWQ6IHV1aWQoJ3NlY3VyaXR5X2ZpeF9hZHZpc29yeV9pZCcpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luQWR2aXNvcnkuaWQpLFxuICBwYXlsb2FkOiBqc29uYigncGF5bG9hZCcpLiR0eXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpLmRlZmF1bHQoe30pLm5vdE51bGwoKSxcbiAgc3RhdHVzOiB2YXJjaGFyKCdzdGF0dXMnLCB7IGxlbmd0aDogMzAgfSkuJHR5cGU8UHVibGlzaFJlcXVlc3RTdGF0dXM+KCkuZGVmYXVsdCgncGVuZGluZycpLm5vdE51bGwoKSxcbiAgbGFuZTogdmFyY2hhcignbGFuZScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxQdWJsaXNoUmVxdWVzdExhbmU+KCkuZGVmYXVsdCgnc3RhbmRhcmQnKS5ub3ROdWxsKCksXG4gIHN1Ym1pdHRlZEJ5OiB0ZXh0KCdzdWJtaXR0ZWRfYnknKS5ub3ROdWxsKCksXG4gIHN1Ym1pdHRlZE9yZ0lkOiB2YXJjaGFyKCdzdWJtaXR0ZWRfb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgZmlyc3RBcHByb3ZlZEJ5OiB0ZXh0KCdmaXJzdF9hcHByb3ZlZF9ieScpLFxuICBkZWNpZGVkQnk6IHRleHQoJ2RlY2lkZWRfYnknKSxcbiAgc2Vjb25kQXBwcm92ZWRCeTogdGV4dCgnc2Vjb25kX2FwcHJvdmVkX2J5JyksXG4gIHJlYXNvbjogdGV4dCgncmVhc29uJyksXG4gIGF1dG9SdWxlSWQ6IHV1aWQoJ2F1dG9fcnVsZV9pZCcpLnJlZmVyZW5jZXMoKCkgPT4gZWNvc3lzdGVtQXV0b0FwcHJvdmFsUnVsZS5pZCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgZGVjaWRlZEF0OiB0aW1lc3RhbXAoJ2RlY2lkZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgc3RhdHVzQ3JlYXRlZElkeDogaW5kZXgoJ3BsdWdpbl9wdWJsaXNoX3JlcXVlc3Rfc3RhdHVzX2NyZWF0ZWRfaWR4Jykub24odGFibGUuc3RhdHVzLCB0YWJsZS5jcmVhdGVkQXQpLFxuICBwdWJsaXNoZXJJZHg6IGluZGV4KCdwbHVnaW5fcHVibGlzaF9yZXF1ZXN0X3B1Ymxpc2hlcl9pZHgnKS5vbih0YWJsZS5wdWJsaXNoZXJJZCwgdGFibGUuY3JlYXRlZEF0KSxcbiAgLy8gQXQgbW9zdCBPTkUgb3BlbiByZXF1ZXN0IG9mIGEga2luZCBwZXIgKHB1Ymxpc2hlciwgbGlzdGluZywgdmVyc2lvbikuIEFcbiAgLy8gbmV3X2xpc3RpbmcgaGFzIG5vIGxpc3RpbmcgeWV0LCBzbyB0aGUgcmVxdWVzdGVkIG5hbWUgKHBheWxvYWQtPj4nbmFtZScpXG4gIC8vIHN0YW5kcyBpbjsgQ09BTEVTQ0UgYmVjYXVzZSBOVUxMcyBhcmUgRElTVElOQ1QgaW4gYSB1bmlxdWUgaW5kZXguIEFkdmlzb3J5XG4gIC8vIGRyYWZ0cyBhcmUgZXhlbXB0OiBhIGxpc3RpbmcgY2FuIGNhcnJ5IHNldmVyYWwgYXQgb25jZSAoZGlmZmVyZW50IHJhbmdlc1xuICAvLyBhbmQgQ1ZFIHNldHMpLCBlYWNoIGRlZHVwbGljYXRlZCBieSB0aGUgYWR2aXNvcnkgc2VydmljZS4gTXVzdCBtYXRjaCB0aGVcbiAgLy8gcG9zdGdyZXMtaW5pdC5zcWwgZXhwcmVzc2lvbiBpbmRleC5cbiAgb3BlblVuaXF1ZTogdW5pcXVlSW5kZXgoJ3BsdWdpbl9wdWJsaXNoX3JlcXVlc3Rfb3Blbl91bmlxdWUnKVxuICAgIC5vbihcbiAgICAgIHRhYmxlLnB1Ymxpc2hlcklkLFxuICAgICAgdGFibGUua2luZCxcbiAgICAgIHNxbGBjb2FsZXNjZSgke3RhYmxlLmxpc3RpbmdJZH06OnRleHQsICR7dGFibGUucGF5bG9hZH0tPj4nbmFtZScsICcnKWAsXG4gICAgICBzcWxgY29hbGVzY2UoJHt0YWJsZS52ZXJzaW9ufSwgJycpYCxcbiAgICApXG4gICAgLndoZXJlKHNxbGBzdGF0dXMgSU4gKCdwZW5kaW5nJywgJ3BlbmRpbmdfc2Vjb25kX2FwcHJvdmFsJykgQU5EIGtpbmQgPD4gJ2Fkdmlzb3J5J2ApLFxuICBkaWdlc3RDaGVjazogY2hlY2soJ3BsdWdpbl9wdWJsaXNoX3JlcXVlc3RzX2RpZ2VzdF9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuZGlnZXN0fSBJUyBOVUxMIE9SICR7dGFibGUuZGlnZXN0fSB+ICdec2hhMjU2OlswLTlhLWZdezY0fSQnYCksXG4gIGtpbmRDaGVjazogY2hlY2soJ3BsdWdpbl9wdWJsaXNoX3JlcXVlc3RzX2tpbmRfY2hlY2snLCBzcWxgJHt0YWJsZS5raW5kfSBJTiAoJ25ld19saXN0aW5nJywgJ25ld192ZXJzaW9uJyxcbiAgICAnbGlzdGluZ191cGRhdGUnLCAneWFuaycsICd1bnBhdXNlJywgJ3RyYW5zZmVyJywgJ2NsYWltJywgJ3Byb2ZpbGVfY2hhbmdlJywgJ2Fkdmlzb3J5JywgJ3ZlcmlmeScsICdtb2RlcmF0aW9uJyxcbiAgICAnc3VibWlzc2lvbicpYCksXG4gIHN0YXR1c0NoZWNrOiBjaGVjaygncGx1Z2luX3B1Ymxpc2hfcmVxdWVzdHNfc3RhdHVzX2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS5zdGF0dXN9IElOICgncGVuZGluZycsICdwZW5kaW5nX3NlY29uZF9hcHByb3ZhbCcsICdhcHByb3ZlZCcsICdyZWplY3RlZCcsICd3aXRoZHJhd24nKWApLFxuICBsYW5lQ2hlY2s6IGNoZWNrKCdwbHVnaW5fcHVibGlzaF9yZXF1ZXN0c19sYW5lX2NoZWNrJywgc3FsYCR7dGFibGUubGFuZX0gSU4gKCdzdGFuZGFyZCcsICdzZWN1cml0eScpYCksXG59KSk7XG5cbi8qKlxuICogTmFtZXMgaGVsZCBiYWNrIGZyb20gaGFuZGxlcy9saXN0aW5ncyAoT2ZmaWNpYWwvVmVyaWZpZWQgcmVzZXJ2YXRpb25zLFxuICogY29uZnVzYWJsZXMpLiBgcHVibGlzaGVySWRgID0gdGhlIHB1Ymxpc2hlciB0aGUgbmFtZSBpcyByZXNlcnZlZCBGT1IsIGlmIGFueS5cbiAqXG4gKiBAdGFibGUgZWNvc3lzdGVtX3Jlc2VydmVkX25hbWVzXG4gKi9cbmV4cG9ydCBjb25zdCBlY29zeXN0ZW1SZXNlcnZlZE5hbWUgPSBwZ1RhYmxlKCdlY29zeXN0ZW1fcmVzZXJ2ZWRfbmFtZXMnLCB7XG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgcmVhc29uOiB0ZXh0KCdyZWFzb24nKSxcbiAgcHVibGlzaGVySWQ6IHV1aWQoJ3B1Ymxpc2hlcl9pZCcpLnJlZmVyZW5jZXMoKCkgPT4gcHVibGlzaGVyLmlkKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSk7XG5cbi8qKlxuICogSW5zdGFuY2Utd2lkZSBlY29zeXN0ZW0ga25vYnMgKGZsYWdzLCBTTEEsIHRocmVzaG9sZHMpLCBrZXkvdmFsdWUuXG4gKlxuICogQHRhYmxlIGVjb3N5c3RlbV9zZXR0aW5nc1xuICovXG5leHBvcnQgY29uc3QgZWNvc3lzdGVtU2V0dGluZyA9IHBnVGFibGUoJ2Vjb3N5c3RlbV9zZXR0aW5ncycsIHtcbiAga2V5OiB2YXJjaGFyKCdrZXknLCB7IGxlbmd0aDogMTAwIH0pLnByaW1hcnlLZXkoKSxcbiAgdmFsdWU6IGpzb25iKCd2YWx1ZScpLiR0eXBlPHVua25vd24+KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQnk6IHRleHQoJ3VwZGF0ZWRfYnknKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSk7XG5cbi8qKlxuICogQ3VyYXRlZCBkaXJlY3RvcnkgY29sbGVjdGlvbnMgKFwiRmVhdHVyZWRcIiwgXCJTZWN1cml0eSBzY2FubmVyc1wiLCDigKYpLlxuICpcbiAqIEB0YWJsZSBlY29zeXN0ZW1fY29sbGVjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGVjb3N5c3RlbUNvbGxlY3Rpb24gPSBwZ1RhYmxlKCdlY29zeXN0ZW1fY29sbGVjdGlvbnMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIHNsdWc6IHZhcmNoYXIoJ3NsdWcnLCB7IGxlbmd0aDogMTAwIH0pLm5vdE51bGwoKS51bmlxdWUoKSxcbiAgdGl0bGU6IHZhcmNoYXIoJ3RpdGxlJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGRlc2NyaXB0aW9uOiB0ZXh0KCdkZXNjcmlwdGlvbicpLFxuICBsaXN0aW5nSWRzOiBqc29uYignbGlzdGluZ19pZHMnKS4kdHlwZTxzdHJpbmdbXT4oKS5kZWZhdWx0KFtdKS5ub3ROdWxsKCksXG4gIHBvc2l0aW9uOiBpbnRlZ2VyKCdwb3NpdGlvbicpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICB1cGRhdGVkQnk6IHRleHQoJ3VwZGF0ZWRfYnknKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSk7XG5cbi8qKlxuICogQSBsaXN0aW5nIHJldmlldy4gYGF1dGhvck9yZ0lkYCBmZWVkcyB0aGUgaW50ZWdyaXR5IHJ1bGVzIChub1xuICogc2VsZi1yZXZpZXcsIHBlci1vcmcgcmF0ZSBsaW1pdCwgdmVyaWZpZWQgdXNlKSBhbmQgaXMgTkVWRVIgZXhwb3NlZC4gR0RQUlxuICogdXNlciBkZWxldGlvbiBhbm9ueW1pemVzOiBgYXV0aG9yVXNlcklkYCBhbmQgdGhlIGJvZHkgZ28gTlVMTCwgdGhlIHJhdGluZyBzdGF5cy5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX3Jldmlld3NcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpblJldmlldyA9IHBnVGFibGUoJ3BsdWdpbl9yZXZpZXdzJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICBsaXN0aW5nSWQ6IHV1aWQoJ2xpc3RpbmdfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5MaXN0aW5nLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSksXG4gIHZlcnNpb246IHZhcmNoYXIoJ3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHJhdGluZzogc21hbGxpbnQoJ3JhdGluZycpLm5vdE51bGwoKSxcbiAgdGl0bGU6IHZhcmNoYXIoJ3RpdGxlJywgeyBsZW5ndGg6IDEyMCB9KSxcbiAgYm9keU1kOiB0ZXh0KCdib2R5X21kJyksXG4gIGJvZHlIdG1sOiB0ZXh0KCdib2R5X2h0bWwnKSxcbiAgYXV0aG9yVXNlcklkOiB0ZXh0KCdhdXRob3JfdXNlcl9pZCcpLFxuICBhdXRob3JPcmdJZDogdmFyY2hhcignYXV0aG9yX29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIC8vIFRoZSBvbmx5IGF1dGhvciBmaWVsZCBldmVyIHNob3duIChzbmFwc2hvdCBhdCB3cml0ZSB0aW1lOyBOVUxMIG9uY2UgYW5vbnltaXplZCkuXG4gIGF1dGhvckRpc3BsYXlOYW1lOiB2YXJjaGFyKCdhdXRob3JfZGlzcGxheV9uYW1lJywgeyBsZW5ndGg6IDEwMCB9KSxcbiAgdmVyaWZpZWRVc2U6IGJvb2xlYW4oJ3ZlcmlmaWVkX3VzZScpLmRlZmF1bHQoZmFsc2UpLm5vdE51bGwoKSxcbiAgc3RhdHVzOiB2YXJjaGFyKCdzdGF0dXMnLCB7IGxlbmd0aDogMTAgfSkuJHR5cGU8UmV2aWV3U3RhdHVzPigpLmRlZmF1bHQoJ3B1Ymxpc2hlZCcpLm5vdE51bGwoKSxcbiAgaG9sZFJlYXNvbjogdmFyY2hhcignaG9sZF9yZWFzb24nLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8UmV2aWV3SG9sZFJlYXNvbj4oKSxcbiAgbW9kZXJhdGlvblJlYXNvbjogdGV4dCgnbW9kZXJhdGlvbl9yZWFzb24nKSxcbiAgaGVscGZ1bENvdW50OiBpbnRlZ2VyKCdoZWxwZnVsX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICBsaXN0aW5nQXV0aG9yVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX3Jldmlld19saXN0aW5nX2F1dGhvcl91bmlxdWUnKS5vbih0YWJsZS5saXN0aW5nSWQsIHRhYmxlLmF1dGhvclVzZXJJZCksXG4gIGxpc3RpbmdTdGF0dXNDcmVhdGVkSWR4OiBpbmRleCgncGx1Z2luX3Jldmlld19saXN0aW5nX3N0YXR1c19jcmVhdGVkX2lkeCcpXG4gICAgLm9uKHRhYmxlLmxpc3RpbmdJZCwgdGFibGUuc3RhdHVzLCB0YWJsZS5jcmVhdGVkQXQpLFxuICAvLyBQZXItb3JnIGRhaWx5IHJldmlldyBjYXAuXG4gIGF1dGhvck9yZ0NyZWF0ZWRJZHg6IGluZGV4KCdwbHVnaW5fcmV2aWV3X2F1dGhvcl9vcmdfY3JlYXRlZF9pZHgnKS5vbih0YWJsZS5hdXRob3JPcmdJZCwgdGFibGUuY3JlYXRlZEF0KSxcbiAgLy8gTW9kZXJhdGlvbiBxdWV1ZS5cbiAgc3RhdHVzVXBkYXRlZElkeDogaW5kZXgoJ3BsdWdpbl9yZXZpZXdfc3RhdHVzX3VwZGF0ZWRfaWR4Jykub24odGFibGUuc3RhdHVzLCB0YWJsZS51cGRhdGVkQXQpLFxuICByYXRpbmdDaGVjazogY2hlY2soJ3BsdWdpbl9yZXZpZXdzX3JhdGluZ19jaGVjaycsIHNxbGAke3RhYmxlLnJhdGluZ30gQkVUV0VFTiAxIEFORCA1YCksXG4gIHN0YXR1c0NoZWNrOiBjaGVjaygncGx1Z2luX3Jldmlld3Nfc3RhdHVzX2NoZWNrJywgc3FsYCR7dGFibGUuc3RhdHVzfSBJTiAoJ3B1Ymxpc2hlZCcsICdoZWxkJywgJ3JlbW92ZWQnKWApLFxuICBob2xkUmVhc29uQ2hlY2s6IGNoZWNrKCdwbHVnaW5fcmV2aWV3c19ob2xkX3JlYXNvbl9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuaG9sZFJlYXNvbn0gSU4gKCdyZXBvcnRzJywgJ2J1cnN0JywgJ2ZpbHRlcicsICdzZWN1cml0eScsICdtb2RlcmF0b3InKWApLFxufSkpO1xuXG4vKipcbiAqIFRoZSBvbmUgcHVibGljIHB1Ymxpc2hlciByZXBseSB0byBhIHJldmlldy5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX3Jldmlld19yZXBsaWVzXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5SZXZpZXdSZXBseSA9IHBnVGFibGUoJ3BsdWdpbl9yZXZpZXdfcmVwbGllcycsIHtcbiAgcmV2aWV3SWQ6IHV1aWQoJ3Jldmlld19pZCcpLnByaW1hcnlLZXkoKS5yZWZlcmVuY2VzKCgpID0+IHBsdWdpblJldmlldy5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pLFxuICBwdWJsaXNoZXJJZDogdXVpZCgncHVibGlzaGVyX2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcHVibGlzaGVyLmlkKSxcbiAgYXV0aG9yVXNlcklkOiB0ZXh0KCdhdXRob3JfdXNlcl9pZCcpLFxuICBib2R5TWQ6IHRleHQoJ2JvZHlfbWQnKS5ub3ROdWxsKCksXG4gIGJvZHlIdG1sOiB0ZXh0KCdib2R5X2h0bWwnKS5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSk7XG5cbi8qKlxuICogXCJSZXBvcnQgcmV2aWV3XCIg4oCUIG9uZSBwZXIgcmVwb3J0ZXIgcGVyIHJldmlldzsgTiByZXBvcnRzIGF1dG8taG9sZCBpdC5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX3Jldmlld19yZXBvcnRzXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5SZXZpZXdSZXBvcnQgPSBwZ1RhYmxlKCdwbHVnaW5fcmV2aWV3X3JlcG9ydHMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIHJldmlld0lkOiB1dWlkKCdyZXZpZXdfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5SZXZpZXcuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KSxcbiAgcmVwb3J0ZXJVc2VySWQ6IHRleHQoJ3JlcG9ydGVyX3VzZXJfaWQnKS5ub3ROdWxsKCksXG4gIGNhdGVnb3J5OiB2YXJjaGFyKCdjYXRlZ29yeScsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxSZXZpZXdSZXBvcnRDYXRlZ29yeT4oKS5kZWZhdWx0KCdhYnVzZScpLm5vdE51bGwoKSxcbiAgcmVhc29uOiB0ZXh0KCdyZWFzb24nKSxcbiAgLy8gU2V0IG9uY2UgYSBtb2RlcmF0b3IgcmVsZWFzZWQgb3IgcmVtb3ZlZCB0aGUgcmV2aWV3LlxuICByZXNvbHZlZEF0OiB0aW1lc3RhbXAoJ3Jlc29sdmVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgcmV2aWV3UmVwb3J0ZXJVbmlxdWU6IHVuaXF1ZUluZGV4KCdwbHVnaW5fcmV2aWV3X3JlcG9ydF91bmlxdWUnKS5vbih0YWJsZS5yZXZpZXdJZCwgdGFibGUucmVwb3J0ZXJVc2VySWQpLFxuICBvcGVuSWR4OiBpbmRleCgncGx1Z2luX3Jldmlld19yZXBvcnRfb3Blbl9pZHgnKS5vbih0YWJsZS5yZXZpZXdJZCkud2hlcmUoc3FsYCR7dGFibGUucmVzb2x2ZWRBdH0gSVMgTlVMTGApLFxuICBjYXRlZ29yeUNoZWNrOiBjaGVjaygncGx1Z2luX3Jldmlld19yZXBvcnRzX2NhdGVnb3J5X2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS5jYXRlZ29yeX0gSU4gKCdzcGFtJywgJ2FidXNlJywgJ29mZl90b3BpYycsICdzZWN1cml0eScpYCksXG59KSk7XG5cbi8qKlxuICogT25lIFwiaGVscGZ1bFwiIHZvdGUgcGVyIHVzZXIgcGVyIHJldmlldy5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX3Jldmlld192b3Rlc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luUmV2aWV3Vm90ZSA9IHBnVGFibGUoJ3BsdWdpbl9yZXZpZXdfdm90ZXMnLCB7XG4gIHJldmlld0lkOiB1dWlkKCdyZXZpZXdfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5SZXZpZXcuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KSxcbiAgdXNlcklkOiB0ZXh0KCd1c2VyX2lkJykubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHBrOiBwcmltYXJ5S2V5KHsgY29sdW1uczogW3RhYmxlLnJldmlld0lkLCB0YWJsZS51c2VySWRdIH0pLFxufSkpO1xuXG4vKipcbiAqIFJldmlldyBlZGl0IGhpc3Rvcnk6IHRoZSBQUklPUiBjb250ZW50LCBhcHBlbmRlZCBvbiBldmVyeSBlZGl0LlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fcmV2aWV3X2hpc3RvcnlcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpblJldmlld0hpc3RvcnkgPSBwZ1RhYmxlKCdwbHVnaW5fcmV2aWV3X2hpc3RvcnknLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIHJldmlld0lkOiB1dWlkKCdyZXZpZXdfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5SZXZpZXcuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KSxcbiAgdmVyc2lvbjogdmFyY2hhcigndmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgcmF0aW5nOiBzbWFsbGludCgncmF0aW5nJykubm90TnVsbCgpLFxuICB0aXRsZTogdmFyY2hhcigndGl0bGUnLCB7IGxlbmd0aDogMTIwIH0pLFxuICBib2R5TWQ6IHRleHQoJ2JvZHlfbWQnKSxcbiAgZWRpdGVkQXQ6IHRpbWVzdGFtcCgnZWRpdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgcmV2aWV3SWR4OiBpbmRleCgncGx1Z2luX3Jldmlld19oaXN0b3J5X3Jldmlld19pZHgnKS5vbih0YWJsZS5yZXZpZXdJZCwgdGFibGUuZWRpdGVkQXQpLFxuICByYXRpbmdDaGVjazogY2hlY2soJ3BsdWdpbl9yZXZpZXdfaGlzdG9yeV9yYXRpbmdfY2hlY2snLCBzcWxgJHt0YWJsZS5yYXRpbmd9IEJFVFdFRU4gMSBBTkQgNWApLFxufSkpO1xuXG4vKipcbiAqIERlbm9ybWFsaXplZCBwZXItbGlzdGluZyBzdGF0cywgcmVjb21wdXRlZCBieSBhIGpvYi4gYGFjdGl2ZU9yZ0NvdW50YCBpc1xuICogcHVibGljIG9ubHkgd2hlbiA+PSA1ICh0aGUgYHB1YmxpY19saXN0aW5nc2AgdmlldyBlbmZvcmNlcyBpdCkuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9zdGF0c1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luU3RhdHMgPSBwZ1RhYmxlKCdwbHVnaW5fc3RhdHMnLCB7XG4gIGxpc3RpbmdJZDogdXVpZCgnbGlzdGluZ19pZCcpLnByaW1hcnlLZXkoKS5yZWZlcmVuY2VzKCgpID0+IHBsdWdpbkxpc3RpbmcuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KSxcbiAgcmF0aW5nQmF5ZXM6IGRvdWJsZVByZWNpc2lvbigncmF0aW5nX2JheWVzJyksXG4gIHJhdGluZ0NvdW50OiBpbnRlZ2VyKCdyYXRpbmdfY291bnQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgLy8gU3RhciBkaXN0cmlidXRpb246IHsgXCIxXCI6IG4sIOKApiwgXCI1XCI6IG4gfS5cbiAgZGlzdDoganNvbmIoJ2Rpc3QnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PigpLmRlZmF1bHQoe30pLm5vdE51bGwoKSxcbiAgLy8gXCJSZWNlbnQgdmVyc2lvbnNcIiByYXRpbmcgb3ZlciB0aGUgbGFzdCB0d28gbWlub3JzLlxuICByZWNlbnRSYXRpbmc6IGRvdWJsZVByZWNpc2lvbigncmVjZW50X3JhdGluZycpLFxuICBpbnN0YWxsQ291bnQ6IGludGVnZXIoJ2luc3RhbGxfY291bnQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgYWN0aXZlT3JnQ291bnQ6IGludGVnZXIoJ2FjdGl2ZV9vcmdfY291bnQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgc3VjY2Vzc1JhdGUzMGQ6IGRvdWJsZVByZWNpc2lvbignc3VjY2Vzc19yYXRlXzMwZCcpLFxuICBoZWFsdGhTY29yZTogZG91YmxlUHJlY2lzaW9uKCdoZWFsdGhfc2NvcmUnKSxcbiAgLy8gUGVyLWNvbXBvbmVudCBoZWFsdGggc2NvcmVzIGFuZCB3ZWlnaHRzLCBmb3IgdGhlIGJyZWFrZG93biBwYW5lbC5cbiAgaGVhbHRoQnJlYWtkb3duOiBqc29uYignaGVhbHRoX2JyZWFrZG93bicpLiR0eXBlPEhlYWx0aEJyZWFrZG93bj4oKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSk7XG5cbi8qKlxuICogQW5vbnltb3VzIHB1YmxpYyBzdWJtaXNzaW9uLiBUaGUgZW1haWwgaXMga2VwdCBoYXNoZWQgKHJhdGUgbGltaXRzLFxuICogY2xhaW0gbWF0Y2hpbmcpIGFuZCBlbmNyeXB0ZWQgKHRha2Vkb3duIG5vdGljZXMgb25seSkgYW5kIHB1cmdlZCBhdFxuICogYGVtYWlsUHVyZ2VBZnRlcmAuIE5vdGhpbmcgaGVyZSBpcyBldmVyIGxpc3RlZCBvciByZXNvbHZhYmxlLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fc3VibWlzc2lvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpblN1Ym1pc3Npb24gPSBwZ1RhYmxlKCdwbHVnaW5fc3VibWlzc2lvbnMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIHN0YXR1czogdmFyY2hhcignc3RhdHVzJywgeyBsZW5ndGg6IDMwIH0pLiR0eXBlPFN1Ym1pc3Npb25TdGF0dXM+KCkuZGVmYXVsdCgncGVuZGluZ192ZXJpZmljYXRpb24nKS5ub3ROdWxsKCksXG4gIGVtYWlsSGFzaDogdmFyY2hhcignZW1haWxfaGFzaCcsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgZW1haWxFbmM6IHRleHQoJ2VtYWlsX2VuYycpLFxuICB2ZXJpZnlUb2tlbkhhc2g6IHZhcmNoYXIoJ3ZlcmlmeV90b2tlbl9oYXNoJywgeyBsZW5ndGg6IDY0IH0pLFxuICB2ZXJpZnlFeHBpcmVzQXQ6IHRpbWVzdGFtcCgndmVyaWZ5X2V4cGlyZXNfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgdmVyaWZpZWRBdDogdGltZXN0YW1wKCd2ZXJpZmllZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICAvLyBzaGEyNTYgb2YgdGhlIHN0YXR1cyB0b2tlbiAocmV0dXJuZWQgYnkgdmVyaWZ5IGFuZCBpbiBOMS9OMy9ONCBlbWFpbHMpIOKAlFxuICAvLyB0aGUgc3VibWl0dGVyJ3Mgb25seSByZWFkIGhhbmRsZSBvbiB0aGUgc3VibWlzc2lvbi5cbiAgc3RhdHVzVG9rZW5IYXNoOiB2YXJjaGFyKCdzdGF0dXNfdG9rZW5faGFzaCcsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgbmFtZTogdmFyY2hhcignbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICB2ZXJzaW9uOiB2YXJjaGFyKCd2ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLm5vdE51bGwoKSxcbiAgc3BlYzoganNvbmIoJ3NwZWMnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKS5kZWZhdWx0KHt9KS5ub3ROdWxsKCksXG4gIC8vIFRoZSBhY2NlcHQtb3ItZWRpdCBjYXRhbG9nIHZhbHVlcyArIHByb3ZlbmFuY2UgYW5kIHRoZSBEb2NrZXJmaWxlLFxuICAvLyBjYXB0dXJlZCBhdCBzdWJtaXQgc28gbW9kZXJhdGlvbiByZXZpZXdzIGV4YWN0bHkgd2hhdCB3YXMgc3VibWl0dGVkLlxuICBjYXRhbG9nOiBqc29uYignY2F0YWxvZycpLiR0eXBlPFN1Ym1pc3Npb25DYXRhbG9nPigpLmRlZmF1bHQoeyB2YWx1ZXM6IHt9LCBzb3VyY2VzOiB7fSB9KS5ub3ROdWxsKCksXG4gIGRvY2tlcmZpbGU6IHRleHQoJ2RvY2tlcmZpbGUnKSxcbiAgYXJ0aWZhY3RLZXk6IHZhcmNoYXIoJ2FydGlmYWN0X2tleScsIHsgbGVuZ3RoOiAxMDI0IH0pLFxuICBxdWFyYW50aW5lSW1hZ2VSZWY6IHZhcmNoYXIoJ3F1YXJhbnRpbmVfaW1hZ2VfcmVmJywgeyBsZW5ndGg6IDEwMjQgfSksXG4gIGdhdGVSZXBvcnQ6IGpzb25iKCdnYXRlX3JlcG9ydCcpLiR0eXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpLFxuICBoZXVyaXN0aWNzOiBqc29uYignaGV1cmlzdGljcycpLiR0eXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpLFxuICBsaXN0aW5nSWQ6IHV1aWQoJ2xpc3RpbmdfaWQnKS5yZWZlcmVuY2VzKCgpID0+IHBsdWdpbkxpc3RpbmcuaWQpLFxuICBkZWNpZGVkQnk6IHRleHQoJ2RlY2lkZWRfYnknKSxcbiAgcmVhc29uOiB0ZXh0KCdyZWFzb24nKSxcbiAgY2xpZW50SXBIYXNoOiB2YXJjaGFyKCdjbGllbnRfaXBfaGFzaCcsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgZXhwaXJlc0F0OiB0aW1lc3RhbXAoJ2V4cGlyZXNfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIGRlY2lkZWRBdDogdGltZXN0YW1wKCdkZWNpZGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGVtYWlsUHVyZ2VBZnRlcjogdGltZXN0YW1wKCdlbWFpbF9wdXJnZV9hZnRlcicsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgc3RhdHVzQ3JlYXRlZElkeDogaW5kZXgoJ3BsdWdpbl9zdWJtaXNzaW9uX3N0YXR1c19jcmVhdGVkX2lkeCcpLm9uKHRhYmxlLnN0YXR1cywgdGFibGUuY3JlYXRlZEF0KSxcbiAgLy8gUGVyLWVtYWlsIC8gcGVyLUlQIGRhaWx5IHJhdGUgbGltaXRzLlxuICBlbWFpbENyZWF0ZWRJZHg6IGluZGV4KCdwbHVnaW5fc3VibWlzc2lvbl9lbWFpbF9jcmVhdGVkX2lkeCcpLm9uKHRhYmxlLmVtYWlsSGFzaCwgdGFibGUuY3JlYXRlZEF0KSxcbiAgaXBDcmVhdGVkSWR4OiBpbmRleCgncGx1Z2luX3N1Ym1pc3Npb25faXBfY3JlYXRlZF9pZHgnKS5vbih0YWJsZS5jbGllbnRJcEhhc2gsIHRhYmxlLmNyZWF0ZWRBdCksXG4gIHZlcmlmeVRva2VuVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX3N1Ym1pc3Npb25fdmVyaWZ5X3Rva2VuX3VuaXF1ZScpXG4gICAgLm9uKHRhYmxlLnZlcmlmeVRva2VuSGFzaClcbiAgICAud2hlcmUoc3FsYHZlcmlmeV90b2tlbl9oYXNoIElTIE5PVCBOVUxMYCksXG4gIHN0YXR1c1Rva2VuVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX3N1Ym1pc3Npb25fc3RhdHVzX3Rva2VuX3VuaXF1ZScpXG4gICAgLm9uKHRhYmxlLnN0YXR1c1Rva2VuSGFzaClcbiAgICAud2hlcmUoc3FsYHN0YXR1c190b2tlbl9oYXNoIElTIE5PVCBOVUxMYCksXG4gIHN0YXR1c0NoZWNrOiBjaGVjaygncGx1Z2luX3N1Ym1pc3Npb25zX3N0YXR1c19jaGVjaycsIHNxbGAke3RhYmxlLnN0YXR1c30gSU4gKCdwZW5kaW5nX3ZlcmlmaWNhdGlvbicsXG4gICAgJ3BlbmRpbmdfcmV2aWV3JywgJ3B1Ymxpc2hpbmcnLCAnZ2F0ZV9mYWlsZWQnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLCAnZXhwaXJlZCcsICdjbGFpbWVkJylgKSxcbn0pKTtcblxuLyoqXG4gKiBaZXJvLXJlc3VsdCBkaXJlY3Rvcnkgc2VhcmNoZXMuIE5vIHVzZXIgZGF0YS4gYHF1ZXJ5YCBpcyBzdG9yZWQgbm9ybWFsaXplZDtcbiAqIHRoZSBtYWludGVuYW5jZSBzd2VlcCBmb2xkcyByZXBlYXRzIG9mIG9uZSAocXVlcnksIGNhdGVnb3J5KSBpbnRvIGEgc2luZ2xlXG4gKiByb3cgY291bnRpbmcgYGhpdHNgLCB3aXRoIGBjcmVhdGVkX2F0YCA9IHRoZSBsYXRlc3Qgb25lLCBhbmQgcHJ1bmVzIHJvd3Mgbm90XG4gKiBzZWVuIGZvciAzMCBkYXlzLlxuICpcbiAqIEB0YWJsZSBlY29zeXN0ZW1fc2VhcmNoX21pc3Nlc1xuICovXG5leHBvcnQgY29uc3QgZWNvc3lzdGVtU2VhcmNoTWlzcyA9IHBnVGFibGUoJ2Vjb3N5c3RlbV9zZWFyY2hfbWlzc2VzJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICBxdWVyeTogdmFyY2hhcigncXVlcnknLCB7IGxlbmd0aDogMjAwIH0pLm5vdE51bGwoKSxcbiAgY2F0ZWdvcnk6IHZhcmNoYXIoJ2NhdGVnb3J5JywgeyBsZW5ndGg6IDUwIH0pLFxuICBoaXRzOiBpbnRlZ2VyKCdoaXRzJykuZGVmYXVsdCgxKS5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgY3JlYXRlZEF0SWR4OiBpbmRleCgnZWNvc3lzdGVtX3NlYXJjaF9taXNzX2NyZWF0ZWRfaWR4Jykub24odGFibGUuY3JlYXRlZEF0KSxcbiAgaGl0c0NoZWNrOiBjaGVjaygnZWNvc3lzdGVtX3NlYXJjaF9taXNzZXNfaGl0c19jaGVjaycsIHNxbGAke3RhYmxlLmhpdHN9ID49IDFgKSxcbn0pKTtcblxuLyoqXG4gKiBOb3RpZmljYXRpb24gZGlnZXN0L2JhdGNoaW5nIHF1ZXVlLiBSb3dzIHNoYXJpbmcgYSBgZGlnZXN0S2V5YCBhcmVcbiAqIGNvYWxlc2NlZCBpbnRvIG9uZSBlbWFpbCBhdCBgZGVsaXZlckFmdGVyYC5cbiAqXG4gKiBAdGFibGUgZWNvc3lzdGVtX25vdGlmaWNhdGlvbl9xdWV1ZVxuICovXG5leHBvcnQgY29uc3QgZWNvc3lzdGVtTm90aWZpY2F0aW9uUXVldWUgPSBwZ1RhYmxlKCdlY29zeXN0ZW1fbm90aWZpY2F0aW9uX3F1ZXVlJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICByZWNpcGllbnRVc2VySWQ6IHRleHQoJ3JlY2lwaWVudF91c2VyX2lkJyksXG4gIHJlY2lwaWVudE9yZ0lkOiB2YXJjaGFyKCdyZWNpcGllbnRfb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgZXZlbnQ6IHZhcmNoYXIoJ2V2ZW50JywgeyBsZW5ndGg6IDggfSkuJHR5cGU8RWNvc3lzdGVtTm90aWZpY2F0aW9uRXZlbnQ+KCkubm90TnVsbCgpLFxuICBkaWdlc3RLZXk6IHZhcmNoYXIoJ2RpZ2VzdF9rZXknLCB7IGxlbmd0aDogMjU1IH0pLFxuICBwYXlsb2FkOiBqc29uYigncGF5bG9hZCcpLiR0eXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpLmRlZmF1bHQoe30pLm5vdE51bGwoKSxcbiAgZGVsaXZlckFmdGVyOiB0aW1lc3RhbXAoJ2RlbGl2ZXJfYWZ0ZXInLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICBkZWxpdmVyZWRBdDogdGltZXN0YW1wKCdkZWxpdmVyZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBUaGUgZGlzcGF0Y2hlcidzIHNjYW46IHVuZGVsaXZlcmVkIHJvd3MgdGhhdCBhcmUgZHVlLlxuICBkdWVJZHg6IGluZGV4KCdlY29zeXN0ZW1fbm90aWZpY2F0aW9uX2R1ZV9pZHgnKS5vbih0YWJsZS5kZWxpdmVyQWZ0ZXIpLndoZXJlKHNxbGBkZWxpdmVyZWRfYXQgSVMgTlVMTGApLFxuICBkaWdlc3RJZHg6IGluZGV4KCdlY29zeXN0ZW1fbm90aWZpY2F0aW9uX2RpZ2VzdF9pZHgnKS5vbih0YWJsZS5kaWdlc3RLZXkpLndoZXJlKHNxbGBkZWxpdmVyZWRfYXQgSVMgTlVMTGApLFxuICBldmVudENoZWNrOiBjaGVjaygnZWNvc3lzdGVtX25vdGlmaWNhdGlvbl9xdWV1ZV9ldmVudF9jaGVjaycsIHNxbGAke3RhYmxlLmV2ZW50fSB+ICdeTihbMS05XXwxWzAtOV18MlswLTldKSQnYCksXG59KSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gT3JnLXNjb3BlZCB0YWJsZXMgKG9yZ19pZCArIHJsc19vcmdfKiBwb2xpY2llcyArIEZPUkNFOyBpbiB0aGUgb3JnIGNhc2NhZGUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBTdGVwIG1hbmlmZXN0OiB3aGljaCBwbHVnaW4gZWFjaCAocGlwZWxpbmUsIHN0YWdlLCBhY3Rpb24pIHJ1bnMsXG4gKiByZWNvcmRlZCBhdCBzeW50aC4gRXZlbnQgaW5nZXN0IGpvaW5zIG9uIGl0IHRvIHN0YW1wXG4gKiBgcGlwZWxpbmVfZXZlbnRzLnBsdWdpbl8qYC4gYHBsdWdpblB1Ymxpc2hlcmAgaXMgTlVMTCBmb3IgYW4gb3duLW9yZyBwbHVnaW4uXG4gKlxuICogQHRhYmxlIHBpcGVsaW5lX3N0ZXBfbWFuaWZlc3RzXG4gKi9cbmV4cG9ydCBjb25zdCBwaXBlbGluZVN0ZXBNYW5pZmVzdCA9IHBnVGFibGUoJ3BpcGVsaW5lX3N0ZXBfbWFuaWZlc3RzJywge1xuICBwaXBlbGluZUlkOiB1dWlkKCdwaXBlbGluZV9pZCcpLm5vdE51bGwoKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBzdGFnZU5hbWU6IHZhcmNoYXIoJ3N0YWdlX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgYWN0aW9uTmFtZTogdmFyY2hhcignYWN0aW9uX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGx1Z2luUHVibGlzaGVyOiB2YXJjaGFyKCdwbHVnaW5fcHVibGlzaGVyJywgeyBsZW5ndGg6IDM5IH0pLFxuICAvKiogVGhlIGxpc3RpbmcgcHVibGlzaGVyJ3MgaWQgKE5VTEwgZm9yIGFuIG93bi1vcmcgcGx1Z2luKSDigJQgd2hhdCBjcm9zcy1vcmcgc3RhdHMgam9pbiBvbi4gKi9cbiAgcGx1Z2luUHVibGlzaGVySWQ6IHV1aWQoJ3BsdWdpbl9wdWJsaXNoZXJfaWQnKSxcbiAgcGx1Z2luTmFtZTogdmFyY2hhcigncGx1Z2luX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGx1Z2luVmVyc2lvbjogdmFyY2hhcigncGx1Z2luX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSkubm90TnVsbCgpLFxuICBpbWFnZURpZ2VzdDogdmFyY2hhcignaW1hZ2VfZGlnZXN0JywgeyBsZW5ndGg6IDcxIH0pLFxuICBpbWFnZVJlcG9zaXRvcnk6IHZhcmNoYXIoJ2ltYWdlX3JlcG9zaXRvcnknLCB7IGxlbmd0aDogNTEyIH0pLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHBrOiBwcmltYXJ5S2V5KHsgY29sdW1uczogW3RhYmxlLnBpcGVsaW5lSWQsIHRhYmxlLnN0YWdlTmFtZSwgdGFibGUuYWN0aW9uTmFtZV0gfSksXG4gIG9yZ0lkeDogaW5kZXgoJ3BpcGVsaW5lX3N0ZXBfbWFuaWZlc3Rfb3JnX2lkeCcpLm9uKHRhYmxlLm9yZ0lkKSxcbiAgLy8gcHVibGljLyogR0MgZ3VhcmQ6IFwiZG9lcyBhbnkgbWFuaWZlc3Qgc3RpbGwgcmVmZXJlbmNlIHRoaXMgZGlnZXN0P1wiXG4gIGRpZ2VzdElkeDogaW5kZXgoJ3BpcGVsaW5lX3N0ZXBfbWFuaWZlc3RfZGlnZXN0X2lkeCcpLm9uKHRhYmxlLmltYWdlRGlnZXN0KSxcbiAgcGx1Z2luSWR4OiBpbmRleCgncGlwZWxpbmVfc3RlcF9tYW5pZmVzdF9wbHVnaW5faWR4Jykub24odGFibGUucGx1Z2luUHVibGlzaGVyLCB0YWJsZS5wbHVnaW5OYW1lKSxcbiAgcGx1Z2luUHVibGlzaGVySWRJZHg6IGluZGV4KCdwaXBlbGluZV9zdGVwX21hbmlmZXN0X3B1Ymxpc2hlcl9pZF9pZHgnKS5vbih0YWJsZS5wbHVnaW5QdWJsaXNoZXJJZCwgdGFibGUucGx1Z2luTmFtZSksXG59KSk7XG5cbi8qKlxuICogQW4gb3JnJ3MgaW5zdGFsbCBvZiBhIGxpc3RpbmcuIE9mZmljaWFsIGxpc3RpbmdzIGFyZSBpbnN0YWxsZWRcbiAqIGltcGxpY2l0bHkgKHZpcnR1YWwg4oCUIG5vIHJvdyk7IGEgcm93IGlzIGFuIGV4cGxpY2l0IGluc3RhbGwgb3Igb3ZlcnJpZGUuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9pbnN0YWxsc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luSW5zdGFsbCA9IHBnVGFibGUoJ3BsdWdpbl9pbnN0YWxscycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBsaXN0aW5nSWQ6IHV1aWQoJ2xpc3RpbmdfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5MaXN0aW5nLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSksXG4gIHZlcnNpb25Qb2xpY3k6IHZhcmNoYXIoJ3ZlcnNpb25fcG9saWN5JywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPEluc3RhbGxWZXJzaW9uUG9saWN5PigpLmRlZmF1bHQoJ21pbm9yJykubm90TnVsbCgpLFxuICBwaW5uZWRWZXJzaW9uOiB2YXJjaGFyKCdwaW5uZWRfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgcmVzb2x2ZWRWZXJzaW9uOiB2YXJjaGFyKCdyZXNvbHZlZF92ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLFxuICBzdGF0dXM6IHZhcmNoYXIoJ3N0YXR1cycsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxJbnN0YWxsU3RhdHVzPigpLmRlZmF1bHQoJ2FjdGl2ZScpLm5vdE51bGwoKSxcbiAgaW5zdGFsbGVkQnk6IHRleHQoJ2luc3RhbGxlZF9ieScpLm5vdE51bGwoKSxcbiAgYXBwcm92ZWRCeTogdGV4dCgnYXBwcm92ZWRfYnknKSxcbiAgZGVjaWRlZEF0OiB0aW1lc3RhbXAoJ2RlY2lkZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLyoqIEEgcGVuZGluZywgYXBwcm92YWwtZ2F0ZWQgY2hhbmdlIG9mIHRoaXMgaW5zdGFsbCAodXBncmFkZSAvIHBvbGljeSksIG9yIG51bGwuICovXG4gIHBlbmRpbmdDaGFuZ2U6IGpzb25iKCdwZW5kaW5nX2NoYW5nZScpLiR0eXBlPEluc3RhbGxDaGFuZ2VSZXF1ZXN0PigpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgb3JnTGlzdGluZ1VuaXF1ZTogdW5pcXVlSW5kZXgoJ3BsdWdpbl9pbnN0YWxsX29yZ19saXN0aW5nX3VuaXF1ZScpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5saXN0aW5nSWQpLFxuICAvLyBcIkluc3RhbGxpbmcgb3Jnc1wiIGZhbi1vdXQgZm9yIE44L04xMy9OMTQvTjIxL04yNi5cbiAgbGlzdGluZ1N0YXR1c0lkeDogaW5kZXgoJ3BsdWdpbl9pbnN0YWxsX2xpc3Rpbmdfc3RhdHVzX2lkeCcpLm9uKHRhYmxlLmxpc3RpbmdJZCwgdGFibGUuc3RhdHVzKSxcbiAgdmVyc2lvblBvbGljeUNoZWNrOiBjaGVjaygncGx1Z2luX2luc3RhbGxzX3ZlcnNpb25fcG9saWN5X2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS52ZXJzaW9uUG9saWN5fSBJTiAoJ3Bpbm5lZCcsICdwYXRjaCcsICdtaW5vcicsICdsYXRlc3QnKWApLFxuICBzdGF0dXNDaGVjazogY2hlY2soJ3BsdWdpbl9pbnN0YWxsc19zdGF0dXNfY2hlY2snLCBzcWxgJHt0YWJsZS5zdGF0dXN9IElOICgnYWN0aXZlJywgJ3BlbmRpbmdfYXBwcm92YWwnLCAnZGVuaWVkJylgKSxcbiAgcGlubmVkQ2hlY2s6IGNoZWNrKCdwbHVnaW5faW5zdGFsbF9waW5uZWRfY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLnZlcnNpb25Qb2xpY3l9IDw+ICdwaW5uZWQnIE9SICR7dGFibGUucGlubmVkVmVyc2lvbn0gSVMgTk9UIE5VTExgKSxcbn0pKTtcblxuLyoqXG4gKiBPcmcgY29uc3VtcHRpb24gcG9saWN5LiBPbmUgcm93IHBlciBvcmc7IGFic2VudCA9IHRoZSBjb2x1bW4gZGVmYXVsdHMuXG4gKiBOb25lIG9mIHRoZXNlIHNhZmV0eSBjb250cm9scyBpcyBwbGFuLWdhdGVkLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5faW5zdGFsbF9wb2xpY2llc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luSW5zdGFsbFBvbGljeSA9IHBnVGFibGUoJ3BsdWdpbl9pbnN0YWxsX3BvbGljaWVzJywge1xuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5wcmltYXJ5S2V5KCksXG4gIGFsbG93ZWRUaWVyczogdGV4dCgnYWxsb3dlZF90aWVycycpLmFycmF5KCkuJHR5cGU8UHVibGlzaGVyVGllcltdPigpXG4gICAgLmRlZmF1bHQoWydvZmZpY2lhbCcsICd2ZXJpZmllZCddKS5ub3ROdWxsKCksXG4gIHJlcXVpcmVBcHByb3ZhbFRpZXJzOiB0ZXh0KCdyZXF1aXJlX2FwcHJvdmFsX3RpZXJzJykuYXJyYXkoKS4kdHlwZTxQdWJsaXNoZXJUaWVyW10+KClcbiAgICAuZGVmYXVsdChbJ2NvbW11bml0eScsICd1bnZlcmlmaWVkJ10pLm5vdE51bGwoKSxcbiAgc2VjcmV0c0FsbG93ZWRUaWVyczogdGV4dCgnc2VjcmV0c19hbGxvd2VkX3RpZXJzJykuYXJyYXkoKS4kdHlwZTxQdWJsaXNoZXJUaWVyW10+KClcbiAgICAuZGVmYXVsdChbJ29mZmljaWFsJywgJ3ZlcmlmaWVkJ10pLm5vdE51bGwoKSxcbiAgYmxvY2tPbkFkdmlzb3J5OiB2YXJjaGFyKCdibG9ja19vbl9hZHZpc29yeScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxCbG9ja09uQWR2aXNvcnk+KCkuZGVmYXVsdCgnY3JpdGljYWwnKS5ub3ROdWxsKCksXG4gIG9mZmljaWFsSW5zdGFsbHM6IHZhcmNoYXIoJ29mZmljaWFsX2luc3RhbGxzJywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPE9mZmljaWFsSW5zdGFsbHM+KCkuZGVmYXVsdCgnaW1wbGljaXQnKS5ub3ROdWxsKCksXG4gIGJsb2NrZWRMaXN0aW5nczoganNvbmIoJ2Jsb2NrZWRfbGlzdGluZ3MnKS4kdHlwZTxCbG9ja2VkTGlzdGluZ1JlZltdPigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgdXBkYXRlZEJ5OiB0ZXh0KCd1cGRhdGVkX2J5JyksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgYmxvY2tPbkFkdmlzb3J5Q2hlY2s6IGNoZWNrKCdwbHVnaW5faW5zdGFsbF9wb2xpY2llc19ibG9ja19vbl9hZHZpc29yeV9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuYmxvY2tPbkFkdmlzb3J5fSBJTiAoJ2NyaXRpY2FsJywgJ2hpZ2gnLCAnbmV2ZXInKWApLFxuICBvZmZpY2lhbEluc3RhbGxzQ2hlY2s6IGNoZWNrKCdwbHVnaW5faW5zdGFsbF9wb2xpY2llc19vZmZpY2lhbF9pbnN0YWxsc19jaGVjaycsXG4gICAgc3FsYCR7dGFibGUub2ZmaWNpYWxJbnN0YWxsc30gSU4gKCdpbXBsaWNpdCcsICdleHBsaWNpdCcpYCksXG4gIHRpZXJzQ2hlY2s6IGNoZWNrKCdwbHVnaW5faW5zdGFsbF9wb2xpY3lfdGllcnNfY2hlY2snLCBzcWxgXG4gICAgJHt0YWJsZS5hbGxvd2VkVGllcnN9IDxAIEFSUkFZWydvZmZpY2lhbCcsICd2ZXJpZmllZCcsICdjb21tdW5pdHknLCAndW52ZXJpZmllZCddOjpURVhUW11cbiAgICBBTkQgJHt0YWJsZS5yZXF1aXJlQXBwcm92YWxUaWVyc30gPEAgQVJSQVlbJ29mZmljaWFsJywgJ3ZlcmlmaWVkJywgJ2NvbW11bml0eScsICd1bnZlcmlmaWVkJ106OlRFWFRbXVxuICAgIEFORCAke3RhYmxlLnNlY3JldHNBbGxvd2VkVGllcnN9IDxAIEFSUkFZWydvZmZpY2lhbCcsICd2ZXJpZmllZCcsICdjb21tdW5pdHknLCAndW52ZXJpZmllZCddOjpURVhUW11gKSxcbn0pKTtcblxuLyoqXG4gKiBQZXItb3JnIHBsdWdpbiBzZWN1cml0eSBub3RpZmljYXRpb24gc2V0dGluZ3MgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWRcbiAqIFwiU2NhbiBnYXRlc1wiKTogd2hvIGhlYXJzIGFib3V0IGEgYmxvY2tlZCBidWlsZCAoTjMwKSBhbmQgYSByZXNjYW4gZmluZGluZ1xuICogKE4zMSksIGFuZCB3aGVyZSBlbHNlIHRoZXkgZ28uIE9uZSByb3cgcGVyIG9yZzsgYWJzZW50ID0gdGhlIGNvbHVtblxuICogZGVmYXVsdHMuIFRoZSB3ZWJob29rIHNlY3JldCBhbmQgdGhlIGV4dGVybmFsIGFkZHJlc3MgYXJlIHN0b3JlZCBFTkNSWVBURURcbiAqIChhcGktY29yZSBzZWNyZXQtZW5jcnlwdGlvbiwgdGhlIG9yZydzIGtleSkgYW5kIG5ldmVyIHJldHVybmVkOyB0aGUgYWRkcmVzc1xuICogaXMgdXNlZCBvbmx5IG9uY2UgY29uZmlybWVkIHRocm91Z2ggaXRzIGVtYWlsZWQgc2luZ2xlLXVzZSBsaW5rXG4gKiAoYGV4dGVybmFsX3ZlcmlmeV90b2tlbl9oYXNoYCwgc2hhMjU2IG9mIHRoZSB0b2tlbikuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9zZWN1cml0eV9ub3RpZmljYXRpb25fcHJlZnNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpblNlY3VyaXR5Tm90aWZpY2F0aW9uUHJlZiA9IHBnVGFibGUoJ3BsdWdpbl9zZWN1cml0eV9ub3RpZmljYXRpb25fcHJlZnMnLCB7XG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgcmVjaXBpZW50TW9kZTogdmFyY2hhcigncmVjaXBpZW50X21vZGUnLCB7IGxlbmd0aDogMTAgfSkuJHR5cGU8UGx1Z2luU2VjdXJpdHlSZWNpcGllbnRNb2RlPigpLmRlZmF1bHQoJ3dyaXRlcnMnKS5ub3ROdWxsKCksXG4gIHRhcmdldFVzZXJzOiB0ZXh0KCd0YXJnZXRfdXNlcnMnKS5hcnJheSgpLiR0eXBlPHN0cmluZ1tdPigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgbm90aWZ5UmVzY2FuOiBib29sZWFuKCdub3RpZnlfcmVzY2FuJykuZGVmYXVsdCh0cnVlKS5ub3ROdWxsKCksXG4gIGRpZ2VzdE1vZGU6IHZhcmNoYXIoJ2RpZ2VzdF9tb2RlJywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPFBsdWdpblNlY3VyaXR5RGlnZXN0TW9kZT4oKS5kZWZhdWx0KCdpbW1lZGlhdGUnKS5ub3ROdWxsKCksXG4gIHdlYmhvb2tVcmw6IHZhcmNoYXIoJ3dlYmhvb2tfdXJsJywgeyBsZW5ndGg6IDIwNDggfSksXG4gIHdlYmhvb2tTZWNyZXQ6IHRleHQoJ3dlYmhvb2tfc2VjcmV0JyksXG4gIGV4dGVybmFsRW1haWxFbmM6IHRleHQoJ2V4dGVybmFsX2VtYWlsX2VuYycpLFxuICBleHRlcm5hbEVtYWlsSGFzaDogdmFyY2hhcignZXh0ZXJuYWxfZW1haWxfaGFzaCcsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgZXh0ZXJuYWxFbWFpbFZlcmlmaWVkQXQ6IHRpbWVzdGFtcCgnZXh0ZXJuYWxfZW1haWxfdmVyaWZpZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZXh0ZXJuYWxWZXJpZnlUb2tlbkhhc2g6IHZhcmNoYXIoJ2V4dGVybmFsX3ZlcmlmeV90b2tlbl9oYXNoJywgeyBsZW5ndGg6IDY0IH0pLFxuICBleHRlcm5hbFZlcmlmeUV4cGlyZXNBdDogdGltZXN0YW1wKCdleHRlcm5hbF92ZXJpZnlfZXhwaXJlc19hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICB1cGRhdGVkQnk6IHRleHQoJ3VwZGF0ZWRfYnknKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHZlcmlmeVRva2VuSWR4OiB1bmlxdWVJbmRleCgncGx1Z2luX3NlY3VyaXR5X25vdGlmaWNhdGlvbl9wcmVmc192ZXJpZnlfdG9rZW5faWR4Jykub24odGFibGUuZXh0ZXJuYWxWZXJpZnlUb2tlbkhhc2gpLFxuICByZWNpcGllbnRNb2RlQ2hlY2s6IGNoZWNrKCdwbHVnaW5fc2VjdXJpdHlfbm90aWZpY2F0aW9uX3ByZWZzX3JlY2lwaWVudF9tb2RlX2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS5yZWNpcGllbnRNb2RlfSBJTiAoJ3dyaXRlcnMnLCAndXNlcnMnKWApLFxuICBkaWdlc3RNb2RlQ2hlY2s6IGNoZWNrKCdwbHVnaW5fc2VjdXJpdHlfbm90aWZpY2F0aW9uX3ByZWZzX2RpZ2VzdF9tb2RlX2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS5kaWdlc3RNb2RlfSBJTiAoJ2ltbWVkaWF0ZScsICdkYWlseScsICd3ZWVrbHknKWApLFxufSkpO1xuXG4vKipcbiAqIE4yMSBpZGVtcG90ZW5jeTogb25lIGRlbGl2ZXJ5IHBlciAoYWR2aXNvcnksIGluc3RhbGxpbmcgb3JnKSwgc28gYSByZXRyaWVkXG4gKiBmYW4tb3V0IG5ldmVyIG5vdGlmaWVzIGFuIG9yZyB0d2ljZS5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX2Fkdmlzb3J5X2RlbGl2ZXJpZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbkFkdmlzb3J5RGVsaXZlcnkgPSBwZ1RhYmxlKCdwbHVnaW5fYWR2aXNvcnlfZGVsaXZlcmllcycsIHtcbiAgYWR2aXNvcnlJZDogdXVpZCgnYWR2aXNvcnlfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5BZHZpc29yeS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGRlbGl2ZXJlZEF0OiB0aW1lc3RhbXAoJ2RlbGl2ZXJlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHBrOiBwcmltYXJ5S2V5KHsgY29sdW1uczogW3RhYmxlLmFkdmlzb3J5SWQsIHRhYmxlLm9yZ0lkXSB9KSxcbiAgb3JnSWR4OiBpbmRleCgncGx1Z2luX2Fkdmlzb3J5X2RlbGl2ZXJ5X29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCksXG59KSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHVibGljIHJlYWQgcGF0aCDigJQgdmlld3MgY3JlYXRlZCBieSBwb3N0Z3Jlcy1pbml0LnNxbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogYHB1YmxpY19saXN0aW5nc2A6IGxpc3RlZCBhbmQgdW5tYWludGFpbmVkIGxpc3RpbmdzIG9mIG5vbi1zdXNwZW5kZWRcbiAqIHB1Ymxpc2hlcnMsIHB1YmxpYyBjb2x1bW5zIG9ubHksIGpvaW5lZCB3aXRoIHRoZSBwdWJsaXNoZXIncyBoYW5kbGUvbmFtZS90aWVyIGFuZCB0aGUgc3RhdHMuXG4gKiBSZWFkIGFzIGBlY29zeXN0ZW1fcHVibGljX3JlYWRlcmAgKHNlZSBwb3N0Z3Jlcy1pbml0LnNxbCkuXG4gKi9cbmV4cG9ydCBjb25zdCBwdWJsaWNMaXN0aW5ncyA9IHBnVmlldygncHVibGljX2xpc3RpbmdzJywge1xuICBpZDogdXVpZCgnaWQnKS5ub3ROdWxsKCksXG4gIHB1Ymxpc2hlckhhbmRsZTogdmFyY2hhcigncHVibGlzaGVyX2hhbmRsZScsIHsgbGVuZ3RoOiAzOSB9KS5ub3ROdWxsKCksXG4gIHB1Ymxpc2hlckRpc3BsYXlOYW1lOiB2YXJjaGFyKCdwdWJsaXNoZXJfZGlzcGxheV9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHB1Ymxpc2hlclRpZXI6IHZhcmNoYXIoJ3B1Ymxpc2hlcl90aWVyJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPFB1Ymxpc2hlclRpZXI+KCkubm90TnVsbCgpLFxuICBwdWJsaXNoZXJWZXJpZmllZEF0OiB0aW1lc3RhbXAoJ3B1Ymxpc2hlcl92ZXJpZmllZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGNhdGVnb3J5OiB2YXJjaGFyKCdjYXRlZ29yeScsIHsgbGVuZ3RoOiA1MCB9KS5ub3ROdWxsKCksXG4gIHN1bW1hcnk6IHZhcmNoYXIoJ3N1bW1hcnknLCB7IGxlbmd0aDogMzAwIH0pLFxuICBkZXNjcmlwdGlvbjogdGV4dCgnZGVzY3JpcHRpb24nKSxcbiAgcmVhZG1lSHRtbDogdGV4dCgncmVhZG1lX2h0bWwnKSxcbiAgbGljZW5zZTogdmFyY2hhcignbGljZW5zZScsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgaG9tZXBhZ2VVcmw6IHZhcmNoYXIoJ2hvbWVwYWdlX3VybCcsIHsgbGVuZ3RoOiAyMDQ4IH0pLFxuICBzb3VyY2VVcmw6IHZhcmNoYXIoJ3NvdXJjZV91cmwnLCB7IGxlbmd0aDogMjA0OCB9KSxcbiAgaWNvbjoganNvbmIoJ2ljb24nKS4kdHlwZTxQbHVnaW5JY29uPigpLFxuICB1cGxvYWRlZEljb246IGpzb25iKCd1cGxvYWRlZF9pY29uJykuJHR5cGU8UGx1Z2luVXBsb2FkZWRJY29uPigpLFxuICBrZXl3b3JkczoganNvbmIoJ2tleXdvcmRzJykuJHR5cGU8c3RyaW5nW10+KCkubm90TnVsbCgpLFxuICBmZWF0dXJlZDogYm9vbGVhbignZmVhdHVyZWQnKS5ub3ROdWxsKCksXG4gIGxhdGVzdFZlcnNpb246IHZhcmNoYXIoJ2xhdGVzdF92ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLFxuICBwYXVzZWRBdDogdGltZXN0YW1wKCdwYXVzZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgc2VhcmNoVmVjdG9yOiB0c3ZlY3Rvcignc2VhcmNoX3ZlY3RvcicpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIHJhdGluZ0JheWVzOiBkb3VibGVQcmVjaXNpb24oJ3JhdGluZ19iYXllcycpLFxuICByYXRpbmdDb3VudDogaW50ZWdlcigncmF0aW5nX2NvdW50Jykubm90TnVsbCgpLFxuICByYXRpbmdEaXN0OiBqc29uYigncmF0aW5nX2Rpc3QnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PigpLFxuICByZWNlbnRSYXRpbmc6IGRvdWJsZVByZWNpc2lvbigncmVjZW50X3JhdGluZycpLFxuICBpbnN0YWxsQ291bnQ6IGludGVnZXIoJ2luc3RhbGxfY291bnQnKS5ub3ROdWxsKCksXG4gIC8vIE5VTEwgYmVsb3cgdGhlIDUtb3JnIGRpc3BsYXkgdGhyZXNob2xkLlxuICBhY3RpdmVPcmdDb3VudDogaW50ZWdlcignYWN0aXZlX29yZ19jb3VudCcpLFxuICBzdWNjZXNzUmF0ZTMwZDogZG91YmxlUHJlY2lzaW9uKCdzdWNjZXNzX3JhdGVfMzBkJyksXG4gIGhlYWx0aFNjb3JlOiBkb3VibGVQcmVjaXNpb24oJ2hlYWx0aF9zY29yZScpLFxuICAvLyAnbGlzdGVkJyB8ICd1bm1haW50YWluZWQnIOKAlCB1bm1haW50YWluZWQgc3RheXMgcHVibGljIHdpdGggYSBiYW5uZXIuXG4gIHN0YXRlOiB2YXJjaGFyKCdzdGF0ZScsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxMaXN0aW5nU3RhdGU+KCkubm90TnVsbCgpLFxuICBoZWFsdGhCcmVha2Rvd246IGpzb25iKCdoZWFsdGhfYnJlYWtkb3duJykuJHR5cGU8SGVhbHRoQnJlYWtkb3duPigpLFxufSkuZXhpc3RpbmcoKTtcblxuLyoqXG4gKiBgcHVibGljX2xpc3RlZF92ZXJzaW9uc2A6IG5vbi1wYXVzZWQgdmVyc2lvbnMgb2YgbGlzdGVkIGxpc3RpbmdzICh5YW5rZWQgb25lc1xuICogaW5jbHVkZWQsIGZsYWdnZWQpLCB3aXRoIG9ubHkgdGhlIHB1YmxpYyBzdWJzZXQgb2YgdGhlIGZyb3plbiBzcGVjLlxuICovXG5leHBvcnQgY29uc3QgcHVibGljTGlzdGVkVmVyc2lvbnMgPSBwZ1ZpZXcoJ3B1YmxpY19saXN0ZWRfdmVyc2lvbnMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLm5vdE51bGwoKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykubm90TnVsbCgpLFxuICBwdWJsaXNoZXJIYW5kbGU6IHZhcmNoYXIoJ3B1Ymxpc2hlcl9oYW5kbGUnLCB7IGxlbmd0aDogMzkgfSkubm90TnVsbCgpLFxuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHZlcnNpb246IHZhcmNoYXIoJ3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSkubm90TnVsbCgpLFxuICBpbWFnZURpZ2VzdDogdmFyY2hhcignaW1hZ2VfZGlnZXN0JywgeyBsZW5ndGg6IDcxIH0pLFxuICBpbWFnZVJlcG9zaXRvcnk6IHZhcmNoYXIoJ2ltYWdlX3JlcG9zaXRvcnknLCB7IGxlbmd0aDogNTEyIH0pLFxuICBicmVha2luZzogYm9vbGVhbignYnJlYWtpbmcnKS5ub3ROdWxsKCksXG4gIGRlcHJlY2F0ZWRBdDogdGltZXN0YW1wKCdkZXByZWNhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGNoYW5nZWxvZzogdGV4dCgnY2hhbmdlbG9nJyksXG4gIHZ1bG5Dcml0aWNhbDogaW50ZWdlcigndnVsbl9jcml0aWNhbCcpLFxuICB2dWxuSGlnaDogaW50ZWdlcigndnVsbl9oaWdoJyksXG4gIHNjYW5uZWRBdDogdGltZXN0YW1wKCdzY2FubmVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHB1Ymxpc2hlZEF0OiB0aW1lc3RhbXAoJ3B1Ymxpc2hlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgcGx1Z2luVHlwZTogdGV4dCgncGx1Z2luX3R5cGUnKSxcbiAgY29tcHV0ZVR5cGU6IHRleHQoJ2NvbXB1dGVfdHlwZScpLFxuICBzZWNyZXRzOiBqc29uYignc2VjcmV0cycpLiR0eXBlPFBsdWdpblNlY3JldFtdPigpLFxuICByZXF1aXJlZE1ldGFkYXRhOiBqc29uYigncmVxdWlyZWRfbWV0YWRhdGEnKS4kdHlwZTxzdHJpbmdbXT4oKSxcbiAgcmVxdWlyZWRWYXJzOiBqc29uYigncmVxdWlyZWRfdmFycycpLiR0eXBlPHN0cmluZ1tdPigpLFxuICBuZXR3b3JrRWdyZXNzOiBqc29uYignbmV0d29ya19lZ3Jlc3MnKS4kdHlwZTxzdHJpbmdbXT4oKSxcbiAgcnVuQXNSb290OiBib29sZWFuKCdydW5fYXNfcm9vdCcpLFxuICBsaWNlbnNlOiB0ZXh0KCdsaWNlbnNlJyksXG4gIHJlYWRtZUh0bWw6IHRleHQoJ3JlYWRtZV9odG1sJyksXG4gIC8vIFlhbmtlZCB2ZXJzaW9ucyBzdGF5IGxpc3RlZCAobWFya2VkKTsgdGhlIHlhbmsgcmVhc29uIGlzbid0IHB1YmxpYy5cbiAgeWFua2VkOiBib29sZWFuKCd5YW5rZWQnKS5ub3ROdWxsKCksXG4gIGRlcHJlY2F0aW9uTWVzc2FnZTogdGV4dCgnZGVwcmVjYXRpb25fbWVzc2FnZScpLFxuICBpbWFnZVNvdXJjZTogdGV4dCgnaW1hZ2Vfc291cmNlJyksXG4gIGJhc2VJbWFnZUNyZWF0ZWRBdDogdGltZXN0YW1wKCdiYXNlX2ltYWdlX2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLy8gQXBwZW5kZWQgaW4gdGhlIHZpZXcgKENSRUFURSBPUiBSRVBMQUNFIFZJRVcgb25seSBhZGRzIGNvbHVtbnMgYXQgdGhlIGVuZCkuXG4gIHZ1bG5Dcml0aWNhbEZpeGFibGU6IGludGVnZXIoJ3Z1bG5fY3JpdGljYWxfZml4YWJsZScpLFxuICB2dWxuSGlnaEZpeGFibGU6IGludGVnZXIoJ3Z1bG5faGlnaF9maXhhYmxlJyksXG4gIHNjYW5GbGFnZ2VkQXQ6IHRpbWVzdGFtcCgnc2Nhbl9mbGFnZ2VkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59KS5leGlzdGluZygpO1xuXG4vKipcbiAqIGBwdWJsaWNfYWR2aXNvcmllc2A6IFBVQkxJU0hFRCBhZHZpc29yaWVzIG9uIGxpc3RlZCBsaXN0aW5ncywgcHVibGljIGNvbHVtbnNcbiAqIG9ubHkgKG5vIHB1Ymxpc2hlci9vcmcgaWRzLCBubyBhdXRob3IsIG5vIGRyYWZ0cyBvciB3aXRoZHJhd24gcm93cykuXG4gKi9cbmV4cG9ydCBjb25zdCBwdWJsaWNBZHZpc29yaWVzID0gcGdWaWV3KCdwdWJsaWNfYWR2aXNvcmllcycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykubm90TnVsbCgpLFxuICBsaXN0aW5nSWQ6IHV1aWQoJ2xpc3RpbmdfaWQnKS5ub3ROdWxsKCksXG4gIHB1Ymxpc2hlckhhbmRsZTogdmFyY2hhcigncHVibGlzaGVyX2hhbmRsZScsIHsgbGVuZ3RoOiAzOSB9KS5ub3ROdWxsKCksXG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgc2V2ZXJpdHk6IHZhcmNoYXIoJ3NldmVyaXR5JywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPEFkdmlzb3J5U2V2ZXJpdHk+KCkubm90TnVsbCgpLFxuICBzdW1tYXJ5OiB2YXJjaGFyKCdzdW1tYXJ5JywgeyBsZW5ndGg6IDMwMCB9KS5ub3ROdWxsKCksXG4gIGRldGFpbHNIdG1sOiB0ZXh0KCdkZXRhaWxzX2h0bWwnKSxcbiAgY3ZlSWRzOiB0ZXh0KCdjdmVfaWRzJykuYXJyYXkoKS5ub3ROdWxsKCksXG4gIGFmZmVjdGVkUmFuZ2U6IHZhcmNoYXIoJ2FmZmVjdGVkX3JhbmdlJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGZpeGVkVmVyc2lvbjogdmFyY2hhcignZml4ZWRfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgcHVibGlzaGVkQXQ6IHRpbWVzdGFtcCgncHVibGlzaGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59KS5leGlzdGluZygpO1xuXG4vKipcbiAqIGBwdWJsaWNfcmV2aWV3c2A6IFBVQkxJU0hFRCByZXZpZXdzIG9mIHB1YmxpYyAobm9uLXBhdXNlZCkgbGlzdGluZ3MsIHB1YmxpY1xuICogY29sdW1ucyBvbmx5IOKAlCB0aGUgYXV0aG9yJ3MgZGlzcGxheSBuYW1lLCBuZXZlciBhIHVzZXIgb3Igb3JnIGlkIOKAlFxuICogd2l0aCB0aGUgcHVibGlzaGVyJ3MgcmVwbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBwdWJsaWNSZXZpZXdzID0gcGdWaWV3KCdwdWJsaWNfcmV2aWV3cycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykubm90TnVsbCgpLFxuICBsaXN0aW5nSWQ6IHV1aWQoJ2xpc3RpbmdfaWQnKS5ub3ROdWxsKCksXG4gIHB1Ymxpc2hlckhhbmRsZTogdmFyY2hhcigncHVibGlzaGVyX2hhbmRsZScsIHsgbGVuZ3RoOiAzOSB9KS5ub3ROdWxsKCksXG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgdmVyc2lvbjogdmFyY2hhcigndmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgcmF0aW5nOiBzbWFsbGludCgncmF0aW5nJykubm90TnVsbCgpLFxuICB0aXRsZTogdmFyY2hhcigndGl0bGUnLCB7IGxlbmd0aDogMTIwIH0pLFxuICBib2R5SHRtbDogdGV4dCgnYm9keV9odG1sJyksXG4gIGF1dGhvckRpc3BsYXlOYW1lOiB2YXJjaGFyKCdhdXRob3JfZGlzcGxheV9uYW1lJywgeyBsZW5ndGg6IDEwMCB9KSxcbiAgdmVyaWZpZWRVc2U6IGJvb2xlYW4oJ3ZlcmlmaWVkX3VzZScpLm5vdE51bGwoKSxcbiAgaGVscGZ1bENvdW50OiBpbnRlZ2VyKCdoZWxwZnVsX2NvdW50Jykubm90TnVsbCgpLFxuICBlZGl0ZWQ6IGJvb2xlYW4oJ2VkaXRlZCcpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkubm90TnVsbCgpLFxuICBwdWJsaXNoZXJEaXNwbGF5TmFtZTogdmFyY2hhcigncHVibGlzaGVyX2Rpc3BsYXlfbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICByZXBseUJvZHlIdG1sOiB0ZXh0KCdyZXBseV9ib2R5X2h0bWwnKSxcbiAgcmVwbHlDcmVhdGVkQXQ6IHRpbWVzdGFtcCgncmVwbHlfY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICByZXBseVVwZGF0ZWRBdDogdGltZXN0YW1wKCdyZXBseV91cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59KS5leGlzdGluZygpO1xuXG4vKiogVGhlIG9mZmljaWFsIHB1Ymxpc2hlcidzIGhhbmRsZSAodGhlIHN5c3RlbSBvcmcncyBjYXRhbG9nKS4gKi9cbmV4cG9ydCBjb25zdCBPRkZJQ0lBTF9QVUJMSVNIRVJfSEFORExFID0gJ3BpcGVsaW5lLWJ1aWxkZXInO1xuLyoqIFRoZSBwbGF0Zm9ybS1vd25lZCBwdWJsaXNoZXIgYW5vbnltb3VzIHN1Ym1pc3Npb25zIGxhbmQgdW5kZXIuICovXG5leHBvcnQgY29uc3QgQ09NTVVOSVRZX1BVQkxJU0hFUl9IQU5ETEUgPSAnY29tbXVuaXR5JztcblxuLyoqIEZpeGVkIGlkcyBvZiB0aGUgdHdvIGF1dG8tYXBwcm92YWwgcnVsZXMgcG9zdGdyZXMtaW5pdC5zcWwgc2VlZHMuICovXG5leHBvcnQgY29uc3QgU0VFREVEX0FVVE9fQVBQUk9WQUxfUlVMRV9JRFMgPSB7XG4gIHZlcmlmaWVkVXBkYXRlczogJzAwMDAwMDAwLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwYTAwMScsXG4gIG9mZmljaWFsQ2F0YWxvZzogJzAwMDAwMDAwLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwYTAwMicsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFR5cGVTY3JpcHQgdHlwZXMgcmVwcmVzZW50aW5nIGRhdGFiYXNlIHJvd3NcbiAqL1xuZXhwb3J0IHR5cGUgUHVibGlzaGVyID0gdHlwZW9mIHB1Ymxpc2hlci4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQdWJsaXNoZXJJbnNlcnQgPSB0eXBlb2YgcHVibGlzaGVyLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luTGlzdGluZyA9IHR5cGVvZiBwbHVnaW5MaXN0aW5nLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpbkxpc3RpbmdJbnNlcnQgPSB0eXBlb2YgcGx1Z2luTGlzdGluZy4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpbkxpc3RpbmdWZXJzaW9uID0gdHlwZW9mIHBsdWdpbkxpc3RpbmdWZXJzaW9uLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpbkxpc3RpbmdWZXJzaW9uSW5zZXJ0ID0gdHlwZW9mIHBsdWdpbkxpc3RpbmdWZXJzaW9uLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luQWR2aXNvcnkgPSB0eXBlb2YgcGx1Z2luQWR2aXNvcnkuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luQWR2aXNvcnlJbnNlcnQgPSB0eXBlb2YgcGx1Z2luQWR2aXNvcnkuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBFY29zeXN0ZW1BdXRvQXBwcm92YWxSdWxlID0gdHlwZW9mIGVjb3N5c3RlbUF1dG9BcHByb3ZhbFJ1bGUuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgRWNvc3lzdGVtQXV0b0FwcHJvdmFsUnVsZUluc2VydCA9IHR5cGVvZiBlY29zeXN0ZW1BdXRvQXBwcm92YWxSdWxlLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luUHVibGlzaFJlcXVlc3QgPSB0eXBlb2YgcGx1Z2luUHVibGlzaFJlcXVlc3QuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luUHVibGlzaFJlcXVlc3RJbnNlcnQgPSB0eXBlb2YgcGx1Z2luUHVibGlzaFJlcXVlc3QuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBFY29zeXN0ZW1SZXNlcnZlZE5hbWUgPSB0eXBlb2YgZWNvc3lzdGVtUmVzZXJ2ZWROYW1lLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIEVjb3N5c3RlbVJlc2VydmVkTmFtZUluc2VydCA9IHR5cGVvZiBlY29zeXN0ZW1SZXNlcnZlZE5hbWUuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBFY29zeXN0ZW1TZXR0aW5nID0gdHlwZW9mIGVjb3N5c3RlbVNldHRpbmcuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgRWNvc3lzdGVtU2V0dGluZ0luc2VydCA9IHR5cGVvZiBlY29zeXN0ZW1TZXR0aW5nLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgRWNvc3lzdGVtQ29sbGVjdGlvbiA9IHR5cGVvZiBlY29zeXN0ZW1Db2xsZWN0aW9uLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIEVjb3N5c3RlbUNvbGxlY3Rpb25JbnNlcnQgPSB0eXBlb2YgZWNvc3lzdGVtQ29sbGVjdGlvbi4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpblJldmlldyA9IHR5cGVvZiBwbHVnaW5SZXZpZXcuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luUmV2aWV3SW5zZXJ0ID0gdHlwZW9mIHBsdWdpblJldmlldy4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpblJldmlld1JlcGx5ID0gdHlwZW9mIHBsdWdpblJldmlld1JlcGx5LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpblJldmlld1JlcGx5SW5zZXJ0ID0gdHlwZW9mIHBsdWdpblJldmlld1JlcGx5LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luUmV2aWV3UmVwb3J0ID0gdHlwZW9mIHBsdWdpblJldmlld1JlcG9ydC4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5SZXZpZXdSZXBvcnRJbnNlcnQgPSB0eXBlb2YgcGx1Z2luUmV2aWV3UmVwb3J0LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luUmV2aWV3Vm90ZSA9IHR5cGVvZiBwbHVnaW5SZXZpZXdWb3RlLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpblJldmlld1ZvdGVJbnNlcnQgPSB0eXBlb2YgcGx1Z2luUmV2aWV3Vm90ZS4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpblJldmlld0hpc3RvcnkgPSB0eXBlb2YgcGx1Z2luUmV2aWV3SGlzdG9yeS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5SZXZpZXdIaXN0b3J5SW5zZXJ0ID0gdHlwZW9mIHBsdWdpblJldmlld0hpc3RvcnkuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5TdGF0cyA9IHR5cGVvZiBwbHVnaW5TdGF0cy4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5TdGF0c0luc2VydCA9IHR5cGVvZiBwbHVnaW5TdGF0cy4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpblN1Ym1pc3Npb24gPSB0eXBlb2YgcGx1Z2luU3VibWlzc2lvbi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5TdWJtaXNzaW9uSW5zZXJ0ID0gdHlwZW9mIHBsdWdpblN1Ym1pc3Npb24uJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBFY29zeXN0ZW1TZWFyY2hNaXNzID0gdHlwZW9mIGVjb3N5c3RlbVNlYXJjaE1pc3MuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgRWNvc3lzdGVtU2VhcmNoTWlzc0luc2VydCA9IHR5cGVvZiBlY29zeXN0ZW1TZWFyY2hNaXNzLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgRWNvc3lzdGVtTm90aWZpY2F0aW9uID0gdHlwZW9mIGVjb3N5c3RlbU5vdGlmaWNhdGlvblF1ZXVlLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIEVjb3N5c3RlbU5vdGlmaWNhdGlvbkluc2VydCA9IHR5cGVvZiBlY29zeXN0ZW1Ob3RpZmljYXRpb25RdWV1ZS4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBpcGVsaW5lU3RlcE1hbmlmZXN0ID0gdHlwZW9mIHBpcGVsaW5lU3RlcE1hbmlmZXN0LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBpcGVsaW5lU3RlcE1hbmlmZXN0SW5zZXJ0ID0gdHlwZW9mIHBpcGVsaW5lU3RlcE1hbmlmZXN0LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luSW5zdGFsbCA9IHR5cGVvZiBwbHVnaW5JbnN0YWxsLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpbkluc3RhbGxJbnNlcnQgPSB0eXBlb2YgcGx1Z2luSW5zdGFsbC4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpbkluc3RhbGxQb2xpY3kgPSB0eXBlb2YgcGx1Z2luSW5zdGFsbFBvbGljeS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5JbnN0YWxsUG9saWN5SW5zZXJ0ID0gdHlwZW9mIHBsdWdpbkluc3RhbGxQb2xpY3kuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5TZWN1cml0eU5vdGlmaWNhdGlvblByZWYgPSB0eXBlb2YgcGx1Z2luU2VjdXJpdHlOb3RpZmljYXRpb25QcmVmLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpblNlY3VyaXR5Tm90aWZpY2F0aW9uUHJlZkluc2VydCA9IHR5cGVvZiBwbHVnaW5TZWN1cml0eU5vdGlmaWNhdGlvblByZWYuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5BZHZpc29yeURlbGl2ZXJ5ID0gdHlwZW9mIHBsdWdpbkFkdmlzb3J5RGVsaXZlcnkuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luQWR2aXNvcnlEZWxpdmVyeUluc2VydCA9IHR5cGVvZiBwbHVnaW5BZHZpc29yeURlbGl2ZXJ5LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUHVibGljTGlzdGluZyA9IHR5cGVvZiBwdWJsaWNMaXN0aW5ncy4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQdWJsaWNMaXN0ZWRWZXJzaW9uID0gdHlwZW9mIHB1YmxpY0xpc3RlZFZlcnNpb25zLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFB1YmxpY0Fkdmlzb3J5ID0gdHlwZW9mIHB1YmxpY0Fkdmlzb3JpZXMuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUHVibGljUmV2aWV3ID0gdHlwZW9mIHB1YmxpY1Jldmlld3MuJGluZmVyU2VsZWN0O1xuIl19
751
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3NjaGVtYS9lY29zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQWlEdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQy9HLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sR0FDdEMsTUFBTSxxQkFBcUIsQ0FBQztBQVk3Qix1RUFBdUU7QUFDdkUsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFtQjtJQUM1QyxRQUFRO1FBQ04sT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILDhFQUE4RTtBQUM5RSw4RUFBOEU7QUFDOUUseURBQXlEO0FBQ3pELDhFQUE4RTtBQUU5RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4QixtQkFBbUIsR0FpQnBCLE1BQU0sNEJBQTRCLENBQUM7QUFpQ3BDLDhFQUE4RTtBQUM5RSwwQkFBMEI7QUFDMUIsOEVBQThFO0FBRTlFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUU7SUFDN0MsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUU7SUFDM0MsVUFBVSxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFB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Q3ZELGVBQWUsRUFBRSxzQ0FBc0M7Q0FDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vL1xuLy8gUGx1Z2luIGVjb3N5c3RlbSB0YWJsZXMgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBNaXJyb3JzIHRoZVxuLy8gXCJQTFVHSU4gRUNPU1lTVEVNXCIgc2VjdGlvbiBvZiBwb3N0Z3Jlcy1pbml0LnNxbCwgd2hpY2ggaXMgYXV0aG9yaXRhdGl2ZSBmb3Jcbi8vIHRoZSB0cmlnZ2VyLW1haW50YWluZWQgYHNlYXJjaF92ZWN0b3JgLCB0aGUgUkxTIHBvbGljaWVzIGFuZCB0aGUgcHVibGljIHZpZXdzLlxuLy9cbi8vIFR3byBraW5kcyBvZiB0YWJsZTpcbi8vICAgKiBFQ09TWVNURU0tR0xPQkFMIOKAlCBwdWJsaXNoZXJzLCBsaXN0aW5ncywgbGlzdGluZyB2ZXJzaW9ucywgdGhlIHB1Ymxpc2hcbi8vICAgICByZXF1ZXN0IHF1ZXVlLCByZXZpZXdzLCBhZHZpc29yaWVzLCBhbm9ueW1vdXMgc3VibWlzc2lvbnMsIOKApiBUaGVcbi8vICAgICBkaXJlY3RvcnkgaXMgaW5zdGFuY2Utd2lkZSwgc28gdGhlc2UgY2FycnkgTk8gYG9yZ19pZGA6IHRoZXkgYXJlIG5vdFxuLy8gICAgIHRlbmFudCBzY29wZWQsIHdyaXRlcyBhcmUgZ2F0ZWQgaW4gdGhlIHNlcnZpY2UgbGF5ZXIgKHN5c3RlbS1vcmctb25seVxuLy8gICAgIGFwcHJvdmFsKSwgYW5kIHRoZWlyIFJMUyBwb2xpY3kgYWRtaXRzIHRoZSBhcHBsaWNhdGlvbiByb2xlIG9ubHkuXG4vLyAgICAgYHB1Ymxpc2hlcnMub3duZXJfb3JnX2lkYCBpcyBkZWxpYmVyYXRlbHkgbm90IG5hbWVkIGBvcmdfaWRgOiBhIHB1Ymxpc2hlclxuLy8gICAgIG91dGxpdmVzIGl0cyBvcmcsIHNvIGl0IG11c3Qgc3RheSBvdXQgb2YgdGhlIG9yZyBjYXNjYWRlLCB3aGljaFxuLy8gICAgIHRyZWF0cyBldmVyeSBgb3JnX2lkYCB0YWJsZSBhcyB0aGUgb3JnJ3MgZGF0YS5cbi8vICAgKiBPUkctU0NPUEVEIOKAlCBwaXBlbGluZV9zdGVwX21hbmlmZXN0cywgcGx1Z2luX2luc3RhbGxzLFxuLy8gICAgIHBsdWdpbl9pbnN0YWxsX3BvbGljaWVzLCBwbHVnaW5fYWR2aXNvcnlfZGVsaXZlcmllczogYG9yZ19pZGAgKyB0aGVcbi8vICAgICBzdGFuZGFyZCBgcmxzX29yZ18qYCBwb2xpY2llcyArIEZPUkNFLCBhbmQgcGFydCBvZiB0aGUgb3JnIGNhc2NhZGUuXG4vL1xuLy8gVGhlIHR3byBgcHVibGljXypgIHZpZXdzIGFyZSBkZWNsYXJlZCB3aXRoIGBwZ1ZpZXcoLi4uKS5leGlzdGluZygpYCAoZHJpenpsZVxuLy8gbmV2ZXIgY3JlYXRlcyB0aGVtOyBwb3N0Z3Jlcy1pbml0LnNxbCBkb2VzKS4gVGhleSBhcmUgd2hhdCB0aGUgYW5vbnltb3VzXG4vLyBkaXJlY3RvcnkgQVBJIHJlYWRzLCBjb25uZWN0ZWQgYXMgYGVjb3N5c3RlbV9wdWJsaWNfcmVhZGVyYCDigJQgdGhlIG9ubHlcbi8vIHJlbGF0aW9ucyB0aGF0IHJvbGUgY2FuIFNFTEVDVC4gVGhleSBhcmUgZXhwb3J0ZWQgZm9yIHR5cGVkIHF1ZXJpZXMgYnV0IGtlcHRcbi8vIG91dCBvZiB0aGUgYWdncmVnYXRlIGBzY2hlbWFgIG9iamVjdCwgd2hpY2ggbGlzdHMgdGFibGVzIG9ubHkuXG4vL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFB1Ymxpc2hlclRpZXIsXG4gIExpc3RpbmdTdGF0ZSxcbiAgUHVibGlzaFJlcXVlc3RLaW5kLFxuICBQdWJsaXNoUmVxdWVzdFN0YXR1cyxcbiAgUHVibGlzaFJlcXVlc3RMYW5lLFxuICBJbnN0YWxsVmVyc2lvblBvbGljeSxcbiAgSW5zdGFsbFN0YXR1cyxcbiAgQmxvY2tPbkFkdmlzb3J5LFxuICBPZmZpY2lhbEluc3RhbGxzLFxuICBSZXZpZXdTdGF0dXMsXG4gIFJldmlld0hvbGRSZWFzb24sXG4gIFJldmlld1JlcG9ydENhdGVnb3J5LFxuICBBZHZpc29yeVNldmVyaXR5LFxuICBBZHZpc29yeVN0YXRlLFxuICBBZHZpc29yeVNvdXJjZSxcbiAgU3VibWlzc2lvblN0YXR1cyxcbiAgUGx1Z2luU2NhbkZsYWcsXG4gIFBsdWdpblNlY3VyaXR5UmVjaXBpZW50TW9kZSxcbiAgUGx1Z2luU2VjdXJpdHlEaWdlc3RNb2RlLFxuICBIZWFsdGhDb21wb25lbnRTY29yZSxcbn0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nO1xuaW1wb3J0IHtcbiAgYm9vbGVhbiwgY2hlY2ssIGN1c3RvbVR5cGUsIGRvdWJsZVByZWNpc2lvbiwgaW5kZXgsIGludGVnZXIsIGpzb25iLCBwZ1RhYmxlLCBwZ1ZpZXcsIHByaW1hcnlLZXksIHNtYWxsaW50LCB0ZXh0LFxuICB0aW1lc3RhbXAsIHVuaXF1ZUluZGV4LCB1dWlkLCB2YXJjaGFyLFxufSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luSWNvbiwgUGx1Z2luU2VjcmV0LCBQbHVnaW5VcGxvYWRlZEljb24gfSBmcm9tICcuL3BsdWdpbi5qcyc7XG5cbi8qKlxuICogUGVyLWNvbXBvbmVudCBoZWFsdGggc2NvcmVzLCBhcyBTVE9SRUQuIFRoZSBjb21wb25lbnQgc2NvcmUgc2hhcGUgaXNcbiAqIGFwaS1jb3JlJ3MgYEhlYWx0aENvbXBvbmVudFNjb3JlYCDigJQgb25seSB0aGUga2V5IGlzIHdpZGVuZWQgdG8gYHN0cmluZ2AsXG4gKiBiZWNhdXNlIGRyaXp6bGUncyBgJHR5cGU8PigpYCBvbiBhIGpzb25iIGNvbHVtbiBtdXN0IGFjY2VwdCB3aGF0ZXZlclxuICogY29tcG9uZW50IHNldCBhIHJvdyB3YXMgd3JpdHRlbiB3aXRoIChhcGktY29yZSdzIGBIZWFsdGhCcmVha2Rvd25gIGtleXMgb25cbiAqIHRoZSBjdXJyZW50IGBIZWFsdGhDb21wb25lbnRgIHVuaW9uIGFuZCB3b3VsZCByZWplY3QgYW4gb2xkZXIgcm93KS5cbiAqL1xuZXhwb3J0IHR5cGUgSGVhbHRoQnJlYWtkb3duID0gUmVjb3JkPHN0cmluZywgSGVhbHRoQ29tcG9uZW50U2NvcmU+O1xuXG4vKiogUG9zdGdyZXMgYHRzdmVjdG9yYCwgd2hpY2ggZHJpenpsZS1vcm0gaGFzIG5vIG5hdGl2ZSBjb2x1bW4gZm9yLiAqL1xuY29uc3QgdHN2ZWN0b3IgPSBjdXN0b21UeXBlPHsgZGF0YTogc3RyaW5nIH0+KHtcbiAgZGF0YVR5cGUoKSB7XG4gICAgcmV0dXJuICd0c3ZlY3Rvcic7XG4gIH0sXG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFbnVtZXJhdGlvbnMg4oCUIGRlZmluZWQgaW4gYXBpLWNvcmUncyB3aXJlIHZvY2FidWxhcnkgc28gdGhlIGZyb250ZW5kIHNoYXJlc1xuLy8gdGhlbTsgZWFjaCBpcyBtaXJyb3JlZCBieSBhIENIRUNLIGluIHBvc3RncmVzLWluaXQuc3FsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHtcbiAgUFVCTElTSEVSX1RJRVJTLFxuICBMSVNUSU5HX1NUQVRFUyxcbiAgUFVCTElTSF9SRVFVRVNUX0tJTkRTLFxuICBQVUJMSVNIX1JFUVVFU1RfU1RBVFVTRVMsXG4gIE9QRU5fUFVCTElTSF9SRVFVRVNUX1NUQVRVU0VTLFxuICBJTlNUQUxMX1ZFUlNJT05fUE9MSUNJRVMsXG4gIFJFVklFV19IT0xEX1JFQVNPTlMsXG4gIFJFVklFV19SRVBPUlRfQ0FURUdPUklFUyxcbiAgU1VCTUlTU0lPTl9TVEFUVVNFUyxcbiAgdHlwZSBQdWJsaXNoZXJUaWVyLFxuICB0eXBlIExpc3RpbmdTdGF0ZSxcbiAgdHlwZSBQdWJsaXNoUmVxdWVzdEtpbmQsXG4gIHR5cGUgUHVibGlzaFJlcXVlc3RTdGF0dXMsXG4gIHR5cGUgUHVibGlzaFJlcXVlc3RMYW5lLFxuICB0eXBlIEluc3RhbGxWZXJzaW9uUG9saWN5LFxuICB0eXBlIEluc3RhbGxTdGF0dXMsXG4gIHR5cGUgQmxvY2tPbkFkdmlzb3J5LFxuICB0eXBlIE9mZmljaWFsSW5zdGFsbHMsXG4gIHR5cGUgUmV2aWV3U3RhdHVzLFxuICB0eXBlIFJldmlld0hvbGRSZWFzb24sXG4gIHR5cGUgUmV2aWV3UmVwb3J0Q2F0ZWdvcnksXG4gIHR5cGUgQWR2aXNvcnlTZXZlcml0eSxcbiAgdHlwZSBBZHZpc29yeVN0YXRlLFxuICB0eXBlIEFkdmlzb3J5U291cmNlLFxuICB0eXBlIFN1Ym1pc3Npb25TdGF0dXMsXG59IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcblxuLyoqXG4gKiBBIG1lbWJlcidzIHBlbmRpbmcgcmVxdWVzdCB0byBDSEFOR0UgYW4gYWN0aXZlIGluc3RhbGwgKGl0cyB2ZXJzaW9uIG9yXG4gKiB2ZXJzaW9uIHBvbGljeSkgdGhhdCBuZWVkcyBhbiBhcHByb3ZlciDigJQgY3Jvc3NpbmcgYSBtYWpvci9icmVha2luZyB2ZXJzaW9uLFxuICogb3Igd2lkZW5pbmcgdG8gYGxhdGVzdGAsIG9uIGFuIGFwcHJvdmFsLWdhdGVkIHRpZXIuIE9uZSBwZXIgaW5zdGFsbDsgYW5cbiAqIGFwcHJvdmVyIChgcGx1Z2luX2luc3RhbGxzOm1hbmFnZWApIGFwcGxpZXMgb3IgcmVqZWN0cyBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YWxsQ2hhbmdlUmVxdWVzdCB7XG4gIC8qKiBUaGUgdmVyc2lvbiB0aGUgaW5zdGFsbCB3b3VsZCBtb3ZlIHRvLiAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIC8qKiBUaGUgdmVyc2lvbiBwb2xpY3kgaXQgd291bGQgbW92ZSB0by4gKi9cbiAgdmVyc2lvblBvbGljeTogSW5zdGFsbFZlcnNpb25Qb2xpY3k7XG4gIHJlcXVlc3RlZEJ5OiBzdHJpbmc7XG4gIC8qKiBJU08gdGltZSBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgcmVxdWVzdGVkQXQ6IHN0cmluZztcbiAgbm90ZTogc3RyaW5nIHwgbnVsbDtcbn1cbi8qKiBBIGAocHVibGlzaGVyLCBuYW1lKWAgYW4gb3JnJ3MgY29uc3VtcHRpb24gcG9saWN5IGJsb2Nrcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmxvY2tlZExpc3RpbmdSZWYge1xuICBwdWJsaXNoZXI6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogQW4gYW5vbnltb3VzIHN1Ym1pc3Npb24ncyBhY2NlcHRlZCBjYXRhbG9nIG1ldGFkYXRhIGFuZCBwZXItZmllbGQgcHJvdmVuYW5jZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibWlzc2lvbkNhdGFsb2cge1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBzb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKiogTm90aWZpY2F0aW9uIGV2ZW50IG51bWJlciAoYE4xYCDigKYgYE4yOWApLiAqL1xuZXhwb3J0IHR5cGUgRWNvc3lzdGVtTm90aWZpY2F0aW9uRXZlbnQgPSBgTiR7bnVtYmVyfWA7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRWNvc3lzdGVtLWdsb2JhbCB0YWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEFuIG9yZydzIHB1YmxpYyBpZGVudGl0eSAob25lIHBlciByb290IG9yZykuIGBvd25lck9yZ0lkYCBpcyBOVUxMIGZvciB0aGVcbiAqIHBsYXRmb3JtLW93bmVkIGBjb21tdW5pdHlgIHB1Ymxpc2hlciBhbm9ueW1vdXMgc3VibWlzc2lvbnMgbGFuZCB1bmRlci5cbiAqXG4gKiBAdGFibGUgcHVibGlzaGVyc1xuICovXG5leHBvcnQgY29uc3QgcHVibGlzaGVyID0gcGdUYWJsZSgncHVibGlzaGVycycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgb3duZXJPcmdJZDogdmFyY2hhcignb3duZXJfb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS51bmlxdWUoKSxcbiAgaGFuZGxlOiB2YXJjaGFyKCdoYW5kbGUnLCB7IGxlbmd0aDogMzkgfSkubm90TnVsbCgpLnVuaXF1ZSgpLFxuICBkaXNwbGF5TmFtZTogdmFyY2hhcignZGlzcGxheV9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGRlc2NyaXB0aW9uOiB0ZXh0KCdkZXNjcmlwdGlvbicpLFxuICBob21lcGFnZVVybDogdmFyY2hhcignaG9tZXBhZ2VfdXJsJywgeyBsZW5ndGg6IDIwNDggfSksXG4gIHRpZXI6IHZhcmNoYXIoJ3RpZXInLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8UHVibGlzaGVyVGllcj4oKS5kZWZhdWx0KCdjb21tdW5pdHknKS5ub3ROdWxsKCksXG4gIHZlcmlmaWVkQXQ6IHRpbWVzdGFtcCgndmVyaWZpZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLy8gVmVyaWZpZWQgcHVibGlzaGVyIGRvd25ncmFkZWQgYmVsb3cgVGVhbSBrZWVwcyB0aGUgdGllciB1bnRpbCB0aGlzIHBhc3NlcyAoTjI5KS5cbiAgdmVyaWZpZWRHcmFjZVVudGlsOiB0aW1lc3RhbXAoJ3ZlcmlmaWVkX2dyYWNlX3VudGlsJywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHRlcm1zVmVyc2lvbjogdmFyY2hhcigndGVybXNfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgdGVybXNBY2NlcHRlZEF0OiB0aW1lc3RhbXAoJ3Rlcm1zX2FjY2VwdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHN1c3BlbmRlZEF0OiB0aW1lc3RhbXAoJ3N1c3BlbmRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBzdXNwZW5kUmVhc29uOiB0ZXh0KCdzdXNwZW5kX3JlYXNvbicpLFxuICAvLyBXNyByb2xsLXVwcywgd3JpdHRlbiBieSB0aGUgc3RhdHMgc3dlZXA6IHJ1bi13ZWlnaHRlZCAzMC1kYXkgc3VjY2VzcyByYXRlXG4gIC8vIGFuZCB0aGUgaW5zdGFsbC13ZWlnaHRlZCBtZWFuIGhlYWx0aCBzY29yZSBvZiBpdHMgbGlzdGluZ3MgKE5VTEw6IG5vbmUpLlxuICBzdWNjZXNzUmF0ZTMwZDogZG91YmxlUHJlY2lzaW9uKCdzdWNjZXNzX3JhdGVfMzBkJyksXG4gIGhlYWx0aFNjb3JlOiBpbnRlZ2VyKCdoZWFsdGhfc2NvcmUnKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIGhhbmRsZUNoZWNrOiBjaGVjaygncHVibGlzaGVyc19oYW5kbGVfY2hlY2snLCBzcWxgJHt0YWJsZS5oYW5kbGV9IH4gJ15bYS16MC05XVthLXowLTktXSokJ2ApLFxuICB0aWVyQ2hlY2s6IGNoZWNrKCdwdWJsaXNoZXJzX3RpZXJfY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLnRpZXJ9IElOICgnb2ZmaWNpYWwnLCAndmVyaWZpZWQnLCAnY29tbXVuaXR5JywgJ3VudmVyaWZpZWQnKWApLFxufSkpO1xuXG4vKipcbiAqIEEgcGx1Z2luIE5BTUUgcHVibGlzaGVkIGJ5IGEgcHVibGlzaGVyLiBSZXZpZXdzLCBpbnN0YWxscywgc3RhdHMgYW5kIHNlYXJjaFxuICogYXR0YWNoIGhlcmU7IHRoZSBwZXItdmVyc2lvbiByZWNvcmRzIGFyZSB7QGxpbmsgcGx1Z2luTGlzdGluZ1ZlcnNpb259LlxuICogYHNlYXJjaFZlY3RvcmAgaXMgbWFpbnRhaW5lZCBieSBhIHRyaWdnZXIgaW4gcG9zdGdyZXMtaW5pdC5zcWwgKG5hbWUgQSxcbiAqIGtleXdvcmRzICsgY2F0ZWdvcnkgQiwgc3VtbWFyeSBDLCBSRUFETUUgKyBkZXNjcmlwdGlvbiBELCBjb25maWcgYGVuZ2xpc2hgKVxuICog4oCUIG5ldmVyIHdyaXRlIGl0IGZyb20gdGhlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fbGlzdGluZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbkxpc3RpbmcgPSBwZ1RhYmxlKCdwbHVnaW5fbGlzdGluZ3MnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIHB1Ymxpc2hlcklkOiB1dWlkKCdwdWJsaXNoZXJfaWQnKS5ub3ROdWxsKCkucmVmZXJlbmNlcygoKSA9PiBwdWJsaXNoZXIuaWQpLFxuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGNhdGVnb3J5OiB2YXJjaGFyKCdjYXRlZ29yeScsIHsgbGVuZ3RoOiA1MCB9KS5kZWZhdWx0KCd1bmtub3duJykubm90TnVsbCgpLFxuICBzdW1tYXJ5OiB2YXJjaGFyKCdzdW1tYXJ5JywgeyBsZW5ndGg6IDMwMCB9KSxcbiAgZGVzY3JpcHRpb246IHRleHQoJ2Rlc2NyaXB0aW9uJyksXG4gIHJlYWRtZUh0bWw6IHRleHQoJ3JlYWRtZV9odG1sJyksXG4gIGxpY2Vuc2U6IHZhcmNoYXIoJ2xpY2Vuc2UnLCB7IGxlbmd0aDogNjQgfSksXG4gIGhvbWVwYWdlVXJsOiB2YXJjaGFyKCdob21lcGFnZV91cmwnLCB7IGxlbmd0aDogMjA0OCB9KSxcbiAgc291cmNlVXJsOiB2YXJjaGFyKCdzb3VyY2VfdXJsJywgeyBsZW5ndGg6IDIwNDggfSksXG4gIGljb246IGpzb25iKCdpY29uJykuJHR5cGU8UGx1Z2luSWNvbj4oKSxcbiAgdXBsb2FkZWRJY29uOiBqc29uYigndXBsb2FkZWRfaWNvbicpLiR0eXBlPFBsdWdpblVwbG9hZGVkSWNvbj4oKSxcbiAga2V5d29yZHM6IGpzb25iKCdrZXl3b3JkcycpLiR0eXBlPHN0cmluZ1tdPigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgc3RhdGU6IHZhcmNoYXIoJ3N0YXRlJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPExpc3RpbmdTdGF0ZT4oKS5kZWZhdWx0KCdsaXN0ZWQnKS5ub3ROdWxsKCksXG4gIC8vIFB1Ymxpc2hlciBwYXVzZTogbm8gbmV3IGluc3RhbGxzOyBleGlzdGluZyBpbnN0YWxscyBrZWVwIHJlc29sdmluZy5cbiAgcGF1c2VkQXQ6IHRpbWVzdGFtcCgncGF1c2VkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGZlYXR1cmVkOiBib29sZWFuKCdmZWF0dXJlZCcpLmRlZmF1bHQoZmFsc2UpLm5vdE51bGwoKSxcbiAgbGF0ZXN0VmVyc2lvbjogdmFyY2hhcignbGF0ZXN0X3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHNlYXJjaFZlY3RvcjogdHN2ZWN0b3IoJ3NlYXJjaF92ZWN0b3InKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHB1Ymxpc2hlck5hbWVVbmlxdWU6IHVuaXF1ZUluZGV4KCdwbHVnaW5fbGlzdGluZ19wdWJsaXNoZXJfbmFtZV91bmlxdWUnKS5vbih0YWJsZS5wdWJsaXNoZXJJZCwgdGFibGUubmFtZSksXG4gIHN0YXRlQ2F0ZWdvcnlJZHg6IGluZGV4KCdwbHVnaW5fbGlzdGluZ19zdGF0ZV9jYXRlZ29yeV9pZHgnKS5vbih0YWJsZS5zdGF0ZSwgdGFibGUuY2F0ZWdvcnkpLFxuICB1cGRhdGVkQXRJZHg6IGluZGV4KCdwbHVnaW5fbGlzdGluZ191cGRhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLnVwZGF0ZWRBdCksXG4gIHNlYXJjaFZlY3RvcklkeDogaW5kZXgoJ3BsdWdpbl9saXN0aW5nX3NlYXJjaF92ZWN0b3JfaWR4JykudXNpbmcoJ2dpbicsIHRhYmxlLnNlYXJjaFZlY3RvciksXG4gIC8vIHBnX3RyZ206IHR5cG8tdG9sZXJhbnQgbmFtZSBtYXRjaGluZyAoXCJ0ZXJhZnJvbVwiIC0+IHRlcnJhZm9ybSkuXG4gIG5hbWVUcmdtSWR4OiBpbmRleCgncGx1Z2luX2xpc3RpbmdfbmFtZV90cmdtX2lkeCcpLnVzaW5nKCdnaW4nLCBzcWxgJHt0YWJsZS5uYW1lfSBnaW5fdHJnbV9vcHNgKSxcbiAgc3RhdGVDaGVjazogY2hlY2soJ3BsdWdpbl9saXN0aW5nc19zdGF0ZV9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuc3RhdGV9IElOICgnbGlzdGVkJywgJ3VubWFpbnRhaW5lZCcsICdzdXNwZW5kZWQnLCAndHJhbnNmZXJyZWQnKWApLFxufSkpO1xuXG4vKipcbiAqIFRoZSBwdWJsaWMsIGZyb3plbiBzdWJzZXQgb2YgYSBwbHVnaW4gcmVjb3JkIGNhcHR1cmVkIGF0IGFwcHJvdmFsLCBzbyBhXG4gKiBsaXN0ZWQgdmVyc2lvbiBrZWVwcyBzeW50aGVzaXppbmcgYWZ0ZXIgdGhlIHB1Ymxpc2hlciBvcmcncyBvd24gYHBsdWdpbnNgXG4gKiByb3cgaXMgZGVsZXRlZCBvciBwdXJnZWQuIE9ubHkgdGhlIGtleXMgdGhlIGBwdWJsaWNfbGlzdGVkX3ZlcnNpb25zYFxuICogdmlldyBwcm9qZWN0cyBhcmUgcHVibGljOyB0aGUgcmVzdCBpcyB2aXNpYmxlIHRvIGluc3RhbGxlcnMnIHN5bnRoIG9ubHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGluZ1ZlcnNpb25TcGVjU25hcHNob3Qge1xuICBwbHVnaW5UeXBlPzogc3RyaW5nO1xuICBjb21wdXRlVHlwZT86IHN0cmluZztcbiAgc2VjcmV0cz86IFBsdWdpblNlY3JldFtdO1xuICByZXF1aXJlZE1ldGFkYXRhPzogc3RyaW5nW107XG4gIHJlcXVpcmVkVmFycz86IHN0cmluZ1tdO1xuICBuZXR3b3JrRWdyZXNzPzogc3RyaW5nW107XG4gIHJ1bkFzUm9vdD86IGJvb2xlYW47XG4gIGxpY2Vuc2U/OiBzdHJpbmc7XG4gIHJlYWRtZUh0bWw/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKlxuICogQSB2ZXJzaW9uIHB1Ymxpc2hlZCB0byBhIGxpc3Rpbmcg4oCUIHRoZSBjb3B5IGluIHRoZSByZWFkLW9ubHkgYHB1YmxpYy8qYFxuICogbmFtZXNwYWNlLiBJbW11dGFibGUgb25jZSB3cml0dGVuIGFwYXJ0IGZyb20gcGF1c2UgLyB5YW5rIC9cbiAqIGRlcHJlY2F0aW9uLiBgc291cmNlUGx1Z2luSWRgIGlzIHByb3ZlbmFuY2Ugb25seSAobm8gRks6IHRoZSBvcmcgcm93IGlzXG4gKiBzb2Z0LWRlbGV0ZWQgYW5kIHB1cmdlZCBvbiBpdHMgb3duIHNjaGVkdWxlKS5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX2xpc3RpbmdfdmVyc2lvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbkxpc3RpbmdWZXJzaW9uID0gcGdUYWJsZSgncGx1Z2luX2xpc3RpbmdfdmVyc2lvbnMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIGxpc3RpbmdJZDogdXVpZCgnbGlzdGluZ19pZCcpLm5vdE51bGwoKS5yZWZlcmVuY2VzKCgpID0+IHBsdWdpbkxpc3RpbmcuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KSxcbiAgc291cmNlUGx1Z2luSWQ6IHV1aWQoJ3NvdXJjZV9wbHVnaW5faWQnKSxcbiAgdmVyc2lvbjogdmFyY2hhcigndmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KS5ub3ROdWxsKCksXG4gIGltYWdlRGlnZXN0OiB2YXJjaGFyKCdpbWFnZV9kaWdlc3QnLCB7IGxlbmd0aDogNzEgfSksXG4gIC8vIHB1YmxpYy88aGFuZGxlPi88bmFtZT5cbiAgaW1hZ2VSZXBvc2l0b3J5OiB2YXJjaGFyKCdpbWFnZV9yZXBvc2l0b3J5JywgeyBsZW5ndGg6IDUxMiB9KSxcbiAgc3BlY1NuYXBzaG90OiBqc29uYignc3BlY19zbmFwc2hvdCcpLiR0eXBlPExpc3RpbmdWZXJzaW9uU3BlY1NuYXBzaG90PigpLmRlZmF1bHQoe30pLm5vdE51bGwoKSxcbiAgYnJlYWtpbmc6IGJvb2xlYW4oJ2JyZWFraW5nJykuZGVmYXVsdChmYWxzZSkubm90TnVsbCgpLFxuICBwYXVzZWRBdDogdGltZXN0YW1wKCdwYXVzZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgeWFua2VkQXQ6IHRpbWVzdGFtcCgneWFua2VkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHlhbmtSZWFzb246IHRleHQoJ3lhbmtfcmVhc29uJyksXG4gIGRlcHJlY2F0ZWRBdDogdGltZXN0YW1wKCdkZXByZWNhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlcHJlY2F0aW9uTWVzc2FnZTogdGV4dCgnZGVwcmVjYXRpb25fbWVzc2FnZScpLFxuICBjaGFuZ2Vsb2c6IHRleHQoJ2NoYW5nZWxvZycpLFxuICB2dWxuQ3JpdGljYWw6IGludGVnZXIoJ3Z1bG5fY3JpdGljYWwnKSxcbiAgdnVsbkhpZ2g6IGludGVnZXIoJ3Z1bG5faGlnaCcpLFxuICAvLyBGaXhhYmxlIHN1YnNldCAoZ3J5cGUgcmVwb3J0cyBhIGZpeGVkIHZlcnNpb24pOyBOVUxMID0gdW5zY2FubmVkLlxuICB2dWxuQ3JpdGljYWxGaXhhYmxlOiBpbnRlZ2VyKCd2dWxuX2NyaXRpY2FsX2ZpeGFibGUnKSxcbiAgdnVsbkhpZ2hGaXhhYmxlOiBpbnRlZ2VyKCd2dWxuX2hpZ2hfZml4YWJsZScpLFxuICBzY2FubmVkQXQ6IHRpbWVzdGFtcCgnc2Nhbm5lZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICAvLyBUaGUgbmlnaHRseSByZXNjYW4ncyBmbGFnIChmaXhhYmxlIGNyaXRpY2FscyBvdmVyIFBMVUdJTl9WVUxOX01BWF9DUklUSUNBTCk7IE5VTEwgPSBub3QgZmxhZ2dlZC5cbiAgc2NhbkZsYWdnZWRBdDogdGltZXN0YW1wKCdzY2FuX2ZsYWdnZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgc2NhbkZsYWc6IGpzb25iKCdzY2FuX2ZsYWcnKS4kdHlwZTxQbHVnaW5TY2FuRmxhZz4oKSxcbiAgLy8gVGhlIGJhc2UgaW1hZ2UncyBjb25maWcgYGNyZWF0ZWRgIHRpbWUsIHJlY29yZGVkIGF0IHB1Ymxpc2g7IE5VTEwgPSB1bmtub3duLlxuICBiYXNlSW1hZ2VDcmVhdGVkQXQ6IHRpbWVzdGFtcCgnYmFzZV9pbWFnZV9jcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIC8vIFdoZW4gbWFpbnRlbmFuY2UgY29sbGVjdGVkIHRoaXMgbG9uZy15YW5rZWQsIHVucmVmZXJlbmNlZCB2ZXJzaW9uJ3MgcHVibGljLyogaW1hZ2U7IE5VTEwgPSBzdGlsbCBzdG9yZWQuXG4gIGltYWdlQ29sbGVjdGVkQXQ6IHRpbWVzdGFtcCgnaW1hZ2VfY29sbGVjdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHB1Ymxpc2hlZEF0OiB0aW1lc3RhbXAoJ3B1Ymxpc2hlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHB1Ymxpc2hlZEJ5OiB0ZXh0KCdwdWJsaXNoZWRfYnknKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIGxpc3RpbmdWZXJzaW9uVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX2xpc3RpbmdfdmVyc2lvbl91bmlxdWUnKS5vbih0YWJsZS5saXN0aW5nSWQsIHRhYmxlLnZlcnNpb24pLFxuICAvLyBwdWJsaWMvKiBHQyBndWFyZCArIGRpZ2VzdCBsb29rdXBzLlxuICBkaWdlc3RJZHg6IGluZGV4KCdwbHVnaW5fbGlzdGluZ192ZXJzaW9uX2RpZ2VzdF9pZHgnKS5vbih0YWJsZS5pbWFnZURpZ2VzdCksXG4gIHZlcnNpb25DaGVjazogY2hlY2soJ3BsdWdpbl9saXN0aW5nX3ZlcnNpb25zX3ZlcnNpb25fY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLnZlcnNpb259IH4gJ15bMC05XStcXC5bMC05XStcXC5bMC05XSsoLVthLXpBLVowLTkuLV0rKT8oXFwrW2EtekEtWjAtOS4tXSspPyQnYCxcbiAgKSxcbiAgaW1hZ2VEaWdlc3RDaGVjazogY2hlY2soJ3BsdWdpbl9saXN0aW5nX3ZlcnNpb25zX2ltYWdlX2RpZ2VzdF9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuaW1hZ2VEaWdlc3R9IElTIE5VTEwgT1IgJHt0YWJsZS5pbWFnZURpZ2VzdH0gfiAnXnNoYTI1NjpbMC05YS1mXXs2NH0kJ2ApLFxufSkpO1xuXG4vKipcbiAqIFNlY3VyaXR5IGFkdmlzb3J5IGFnYWluc3QgYSBsaXN0aW5nJ3MgdmVyc2lvbiByYW5nZS5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX2Fkdmlzb3JpZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbkFkdmlzb3J5ID0gcGdUYWJsZSgncGx1Z2luX2Fkdmlzb3JpZXMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIGxpc3RpbmdJZDogdXVpZCgnbGlzdGluZ19pZCcpLm5vdE51bGwoKS5yZWZlcmVuY2VzKCgpID0+IHBsdWdpbkxpc3RpbmcuaWQpLFxuICBwdWJsaXNoZXJJZDogdXVpZCgncHVibGlzaGVyX2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcHVibGlzaGVyLmlkKSxcbiAgLy8gU2VtdmVyIHJhbmdlIG9mIGFmZmVjdGVkIHZlcnNpb25zLlxuICBhZmZlY3RlZFJhbmdlOiB2YXJjaGFyKCdhZmZlY3RlZF9yYW5nZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBmaXhlZFZlcnNpb246IHZhcmNoYXIoJ2ZpeGVkX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHNldmVyaXR5OiB2YXJjaGFyKCdzZXZlcml0eScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxBZHZpc29yeVNldmVyaXR5PigpLm5vdE51bGwoKSxcbiAgc3VtbWFyeTogdmFyY2hhcignc3VtbWFyeScsIHsgbGVuZ3RoOiAzMDAgfSkubm90TnVsbCgpLFxuICBkZXRhaWxzTWQ6IHRleHQoJ2RldGFpbHNfbWQnKSxcbiAgZGV0YWlsc0h0bWw6IHRleHQoJ2RldGFpbHNfaHRtbCcpLFxuICBjdmVJZHM6IHRleHQoJ2N2ZV9pZHMnKS5hcnJheSgpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgc3RhdGU6IHZhcmNoYXIoJ3N0YXRlJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPEFkdmlzb3J5U3RhdGU+KCkuZGVmYXVsdCgnZHJhZnQnKS5ub3ROdWxsKCksXG4gIHNvdXJjZTogdmFyY2hhcignc291cmNlJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPEFkdmlzb3J5U291cmNlPigpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEJ5OiB0ZXh0KCdjcmVhdGVkX2J5Jykubm90TnVsbCgpLFxuICBwdWJsaXNoZWRCeTogdGV4dCgncHVibGlzaGVkX2J5JyksXG4gIHB1Ymxpc2hlZEF0OiB0aW1lc3RhbXAoJ3B1Ymxpc2hlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICB3aXRoZHJhd25BdDogdGltZXN0YW1wKCd3aXRoZHJhd25fYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIGxpc3RpbmdTdGF0ZUlkeDogaW5kZXgoJ3BsdWdpbl9hZHZpc29yeV9saXN0aW5nX3N0YXRlX2lkeCcpLm9uKHRhYmxlLmxpc3RpbmdJZCwgdGFibGUuc3RhdGUpLFxuICBwdWJsaXNoZXJJZHg6IGluZGV4KCdwbHVnaW5fYWR2aXNvcnlfcHVibGlzaGVyX2lkeCcpLm9uKHRhYmxlLnB1Ymxpc2hlcklkKSxcbiAgc2V2ZXJpdHlDaGVjazogY2hlY2soJ3BsdWdpbl9hZHZpc29yaWVzX3NldmVyaXR5X2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS5zZXZlcml0eX0gSU4gKCdjcml0aWNhbCcsICdoaWdoJywgJ21lZGl1bScsICdsb3cnKWApLFxuICBzdGF0ZUNoZWNrOiBjaGVjaygncGx1Z2luX2Fkdmlzb3JpZXNfc3RhdGVfY2hlY2snLCBzcWxgJHt0YWJsZS5zdGF0ZX0gSU4gKCdkcmFmdCcsICdwdWJsaXNoZWQnLCAnd2l0aGRyYXduJylgKSxcbiAgc291cmNlQ2hlY2s6IGNoZWNrKCdwbHVnaW5fYWR2aXNvcmllc19zb3VyY2VfY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLnNvdXJjZX0gSU4gKCdwdWJsaXNoZXInLCAnbW9kZXJhdG9yJywgJ2N2ZV9yZXNjYW4nLCAncmV2aWV3JylgKSxcbn0pKTtcblxuLyoqXG4gKiBBIHByb3Bvc2VkIGVuYWJsZSBvciB3aWRlbmluZyBvZiBhbiBhdXRvLWFwcHJvdmFsIHJ1bGUsIHdhaXRpbmcgZm9yIGEgU0VDT05EXG4gKiBFY29zeXN0ZW0gTWFuYWdlciAobmV2ZXIgdGhlIHByb3Bvc2VyKS4gRGlzYWJsaW5nIG9yIGRlbGV0aW5nIGEgcnVsZVxuICogbmFycm93cyBpdCBhbmQgYXBwbGllcyBhdCBvbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9BcHByb3ZhbFJ1bGVQZW5kaW5nQ2hhbmdlIHtcbiAgcmVxdWVzdGVkQnk6IHN0cmluZztcbiAgcmVxdWVzdGVkQXQ6IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBjb25kaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBTeXN0ZW0tb3JnIGF1dG8tYXBwcm92YWwgcnVsZXM7IGVuYWJsaW5nIG9yIHdpZGVuaW5nIG9uZVxuICogbmVlZHMgYSBzZWNvbmQgYXBwcm92ZXIgKGBwZW5kaW5nQ2hhbmdlYCkuXG4gKlxuICogQHRhYmxlIGVjb3N5c3RlbV9hdXRvX2FwcHJvdmFsX3J1bGVzXG4gKi9cbmV4cG9ydCBjb25zdCBlY29zeXN0ZW1BdXRvQXBwcm92YWxSdWxlID0gcGdUYWJsZSgnZWNvc3lzdGVtX2F1dG9fYXBwcm92YWxfcnVsZXMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgZW5hYmxlZDogYm9vbGVhbignZW5hYmxlZCcpLmRlZmF1bHQoZmFsc2UpLm5vdE51bGwoKSxcbiAgY29uZGl0aW9uczoganNvbmIoJ2NvbmRpdGlvbnMnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKS5kZWZhdWx0KHt9KS5ub3ROdWxsKCksXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpLm5vdE51bGwoKSxcbiAgLy8gU2Vjb25kIGFwcHJvdmVyIChuZXZlciB0aGUgY3JlYXRvcikuXG4gIGFwcHJvdmVkQnk6IHRleHQoJ2FwcHJvdmVkX2J5JyksXG4gIHBlbmRpbmdDaGFuZ2U6IGpzb25iKCdwZW5kaW5nX2NoYW5nZScpLiR0eXBlPEF1dG9BcHByb3ZhbFJ1bGVQZW5kaW5nQ2hhbmdlPigpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0pO1xuXG4vKipcbiAqIFRoZSBzaW5nbGUgcXVldWUgdGhlIEVjb3N5c3RlbSBjb25zb2xlIHdvcmtzIGZyb20uIGBkaWdlc3RgIGlzIHBpbm5lZFxuICogYXQgc3VibWl0OiBhcHByb3ZhbCBwdWJsaXNoZXMgZXhhY3RseSBpdCwgb3IgZmFpbHMgY2xvc2VkLiBgcGx1Z2luSWRgXG4gKiBoYXMgbm8gRksgKHRoZSBvcmcgcm93IGlzIHNvZnQtZGVsZXRlZCBhbmQgcHVyZ2VkIG9uIGl0cyBvd24gc2NoZWR1bGUpLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fcHVibGlzaF9yZXF1ZXN0c1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luUHVibGlzaFJlcXVlc3QgPSBwZ1RhYmxlKCdwbHVnaW5fcHVibGlzaF9yZXF1ZXN0cycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgcHVibGlzaGVySWQ6IHV1aWQoJ3B1Ymxpc2hlcl9pZCcpLm5vdE51bGwoKS5yZWZlcmVuY2VzKCgpID0+IHB1Ymxpc2hlci5pZCksXG4gIGxpc3RpbmdJZDogdXVpZCgnbGlzdGluZ19pZCcpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luTGlzdGluZy5pZCksXG4gIHBsdWdpbklkOiB1dWlkKCdwbHVnaW5faWQnKSxcbiAgdmVyc2lvbjogdmFyY2hhcigndmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgZGlnZXN0OiB2YXJjaGFyKCdkaWdlc3QnLCB7IGxlbmd0aDogNzEgfSksXG4gIGtpbmQ6IHZhcmNoYXIoJ2tpbmQnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8UHVibGlzaFJlcXVlc3RLaW5kPigpLm5vdE51bGwoKSxcbiAgc2VjdXJpdHlGaXhBZHZpc29yeUlkOiB1dWlkKCdzZWN1cml0eV9maXhfYWR2aXNvcnlfaWQnKS5yZWZlcmVuY2VzKCgpID0+IHBsdWdpbkFkdmlzb3J5LmlkKSxcbiAgcGF5bG9hZDoganNvbmIoJ3BheWxvYWQnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKS5kZWZhdWx0KHt9KS5ub3ROdWxsKCksXG4gIHN0YXR1czogdmFyY2hhcignc3RhdHVzJywgeyBsZW5ndGg6IDMwIH0pLiR0eXBlPFB1Ymxpc2hSZXF1ZXN0U3RhdHVzPigpLmRlZmF1bHQoJ3BlbmRpbmcnKS5ub3ROdWxsKCksXG4gIGxhbmU6IHZhcmNoYXIoJ2xhbmUnLCB7IGxlbmd0aDogMTAgfSkuJHR5cGU8UHVibGlzaFJlcXVlc3RMYW5lPigpLmRlZmF1bHQoJ3N0YW5kYXJkJykubm90TnVsbCgpLFxuICBzdWJtaXR0ZWRCeTogdGV4dCgnc3VibWl0dGVkX2J5Jykubm90TnVsbCgpLFxuICBzdWJtaXR0ZWRPcmdJZDogdmFyY2hhcignc3VibWl0dGVkX29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGZpcnN0QXBwcm92ZWRCeTogdGV4dCgnZmlyc3RfYXBwcm92ZWRfYnknKSxcbiAgZGVjaWRlZEJ5OiB0ZXh0KCdkZWNpZGVkX2J5JyksXG4gIHNlY29uZEFwcHJvdmVkQnk6IHRleHQoJ3NlY29uZF9hcHByb3ZlZF9ieScpLFxuICByZWFzb246IHRleHQoJ3JlYXNvbicpLFxuICBhdXRvUnVsZUlkOiB1dWlkKCdhdXRvX3J1bGVfaWQnKS5yZWZlcmVuY2VzKCgpID0+IGVjb3N5c3RlbUF1dG9BcHByb3ZhbFJ1bGUuaWQpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIGRlY2lkZWRBdDogdGltZXN0YW1wKCdkZWNpZGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59LCAodGFibGUpID0+ICh7XG4gIHN0YXR1c0NyZWF0ZWRJZHg6IGluZGV4KCdwbHVnaW5fcHVibGlzaF9yZXF1ZXN0X3N0YXR1c19jcmVhdGVkX2lkeCcpLm9uKHRhYmxlLnN0YXR1cywgdGFibGUuY3JlYXRlZEF0KSxcbiAgcHVibGlzaGVySWR4OiBpbmRleCgncGx1Z2luX3B1Ymxpc2hfcmVxdWVzdF9wdWJsaXNoZXJfaWR4Jykub24odGFibGUucHVibGlzaGVySWQsIHRhYmxlLmNyZWF0ZWRBdCksXG4gIC8vIEF0IG1vc3QgT05FIG9wZW4gcmVxdWVzdCBvZiBhIGtpbmQgcGVyIChwdWJsaXNoZXIsIGxpc3RpbmcsIHZlcnNpb24pLiBBXG4gIC8vIG5ld19saXN0aW5nIGhhcyBubyBsaXN0aW5nIHlldCwgc28gdGhlIHJlcXVlc3RlZCBuYW1lIChwYXlsb2FkLT4+J25hbWUnKVxuICAvLyBzdGFuZHMgaW47IENPQUxFU0NFIGJlY2F1c2UgTlVMTHMgYXJlIERJU1RJTkNUIGluIGEgdW5pcXVlIGluZGV4LiBBZHZpc29yeVxuICAvLyBkcmFmdHMgYXJlIGV4ZW1wdDogYSBsaXN0aW5nIGNhbiBjYXJyeSBzZXZlcmFsIGF0IG9uY2UgKGRpZmZlcmVudCByYW5nZXNcbiAgLy8gYW5kIENWRSBzZXRzKSwgZWFjaCBkZWR1cGxpY2F0ZWQgYnkgdGhlIGFkdmlzb3J5IHNlcnZpY2UuIE11c3QgbWF0Y2ggdGhlXG4gIC8vIHBvc3RncmVzLWluaXQuc3FsIGV4cHJlc3Npb24gaW5kZXguXG4gIG9wZW5VbmlxdWU6IHVuaXF1ZUluZGV4KCdwbHVnaW5fcHVibGlzaF9yZXF1ZXN0X29wZW5fdW5pcXVlJylcbiAgICAub24oXG4gICAgICB0YWJsZS5wdWJsaXNoZXJJZCxcbiAgICAgIHRhYmxlLmtpbmQsXG4gICAgICBzcWxgY29hbGVzY2UoJHt0YWJsZS5saXN0aW5nSWR9Ojp0ZXh0LCAke3RhYmxlLnBheWxvYWR9LT4+J25hbWUnLCAnJylgLFxuICAgICAgc3FsYGNvYWxlc2NlKCR7dGFibGUudmVyc2lvbn0sICcnKWAsXG4gICAgKVxuICAgIC53aGVyZShzcWxgc3RhdHVzIElOICgncGVuZGluZycsICdwZW5kaW5nX3NlY29uZF9hcHByb3ZhbCcpIEFORCBraW5kIDw+ICdhZHZpc29yeSdgKSxcbiAgZGlnZXN0Q2hlY2s6IGNoZWNrKCdwbHVnaW5fcHVibGlzaF9yZXF1ZXN0c19kaWdlc3RfY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLmRpZ2VzdH0gSVMgTlVMTCBPUiAke3RhYmxlLmRpZ2VzdH0gfiAnXnNoYTI1NjpbMC05YS1mXXs2NH0kJ2ApLFxuICBraW5kQ2hlY2s6IGNoZWNrKCdwbHVnaW5fcHVibGlzaF9yZXF1ZXN0c19raW5kX2NoZWNrJywgc3FsYCR7dGFibGUua2luZH0gSU4gKCduZXdfbGlzdGluZycsICduZXdfdmVyc2lvbicsXG4gICAgJ2xpc3RpbmdfdXBkYXRlJywgJ3lhbmsnLCAndW5wYXVzZScsICd0cmFuc2ZlcicsICdjbGFpbScsICdwcm9maWxlX2NoYW5nZScsICdhZHZpc29yeScsICd2ZXJpZnknLCAnbW9kZXJhdGlvbicsXG4gICAgJ3N1Ym1pc3Npb24nKWApLFxuICBzdGF0dXNDaGVjazogY2hlY2soJ3BsdWdpbl9wdWJsaXNoX3JlcXVlc3RzX3N0YXR1c19jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuc3RhdHVzfSBJTiAoJ3BlbmRpbmcnLCAncGVuZGluZ19zZWNvbmRfYXBwcm92YWwnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLCAnd2l0aGRyYXduJylgKSxcbiAgbGFuZUNoZWNrOiBjaGVjaygncGx1Z2luX3B1Ymxpc2hfcmVxdWVzdHNfbGFuZV9jaGVjaycsIHNxbGAke3RhYmxlLmxhbmV9IElOICgnc3RhbmRhcmQnLCAnc2VjdXJpdHknKWApLFxufSkpO1xuXG4vKipcbiAqIE5hbWVzIGhlbGQgYmFjayBmcm9tIGhhbmRsZXMvbGlzdGluZ3MgKE9mZmljaWFsL1ZlcmlmaWVkIHJlc2VydmF0aW9ucyxcbiAqIGNvbmZ1c2FibGVzKS4gYHB1Ymxpc2hlcklkYCA9IHRoZSBwdWJsaXNoZXIgdGhlIG5hbWUgaXMgcmVzZXJ2ZWQgRk9SLCBpZiBhbnkuXG4gKlxuICogQHRhYmxlIGVjb3N5c3RlbV9yZXNlcnZlZF9uYW1lc1xuICovXG5leHBvcnQgY29uc3QgZWNvc3lzdGVtUmVzZXJ2ZWROYW1lID0gcGdUYWJsZSgnZWNvc3lzdGVtX3Jlc2VydmVkX25hbWVzJywge1xuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5wcmltYXJ5S2V5KCksXG4gIHJlYXNvbjogdGV4dCgncmVhc29uJyksXG4gIHB1Ymxpc2hlcklkOiB1dWlkKCdwdWJsaXNoZXJfaWQnKS5yZWZlcmVuY2VzKCgpID0+IHB1Ymxpc2hlci5pZCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0pO1xuXG4vKipcbiAqIEluc3RhbmNlLXdpZGUgZWNvc3lzdGVtIGtub2JzIChmbGFncywgU0xBLCB0aHJlc2hvbGRzKSwga2V5L3ZhbHVlLlxuICpcbiAqIEB0YWJsZSBlY29zeXN0ZW1fc2V0dGluZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IGVjb3N5c3RlbVNldHRpbmcgPSBwZ1RhYmxlKCdlY29zeXN0ZW1fc2V0dGluZ3MnLCB7XG4gIGtleTogdmFyY2hhcigna2V5JywgeyBsZW5ndGg6IDEwMCB9KS5wcmltYXJ5S2V5KCksXG4gIHZhbHVlOiBqc29uYigndmFsdWUnKS4kdHlwZTx1bmtub3duPigpLm5vdE51bGwoKSxcbiAgdXBkYXRlZEJ5OiB0ZXh0KCd1cGRhdGVkX2J5JyksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0pO1xuXG4vKipcbiAqIEN1cmF0ZWQgZGlyZWN0b3J5IGNvbGxlY3Rpb25zIChcIkZlYXR1cmVkXCIsIFwiU2VjdXJpdHkgc2Nhbm5lcnNcIiwg4oCmKS5cbiAqXG4gKiBAdGFibGUgZWNvc3lzdGVtX2NvbGxlY3Rpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBlY29zeXN0ZW1Db2xsZWN0aW9uID0gcGdUYWJsZSgnZWNvc3lzdGVtX2NvbGxlY3Rpb25zJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICBzbHVnOiB2YXJjaGFyKCdzbHVnJywgeyBsZW5ndGg6IDEwMCB9KS5ub3ROdWxsKCkudW5pcXVlKCksXG4gIHRpdGxlOiB2YXJjaGFyKCd0aXRsZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBkZXNjcmlwdGlvbjogdGV4dCgnZGVzY3JpcHRpb24nKSxcbiAgbGlzdGluZ0lkczoganNvbmIoJ2xpc3RpbmdfaWRzJykuJHR5cGU8c3RyaW5nW10+KCkuZGVmYXVsdChbXSkubm90TnVsbCgpLFxuICBwb3NpdGlvbjogaW50ZWdlcigncG9zaXRpb24nKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgdXBkYXRlZEJ5OiB0ZXh0KCd1cGRhdGVkX2J5JyksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0pO1xuXG4vKipcbiAqIEEgbGlzdGluZyByZXZpZXcuIGBhdXRob3JPcmdJZGAgZmVlZHMgdGhlIGludGVncml0eSBydWxlcyAobm9cbiAqIHNlbGYtcmV2aWV3LCBwZXItb3JnIHJhdGUgbGltaXQsIHZlcmlmaWVkIHVzZSkgYW5kIGlzIE5FVkVSIGV4cG9zZWQuIEdEUFJcbiAqIHVzZXIgZGVsZXRpb24gYW5vbnltaXplczogYGF1dGhvclVzZXJJZGAgYW5kIHRoZSBib2R5IGdvIE5VTEwsIHRoZSByYXRpbmcgc3RheXMuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9yZXZpZXdzXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5SZXZpZXcgPSBwZ1RhYmxlKCdwbHVnaW5fcmV2aWV3cycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luTGlzdGluZy5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pLFxuICB2ZXJzaW9uOiB2YXJjaGFyKCd2ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLFxuICByYXRpbmc6IHNtYWxsaW50KCdyYXRpbmcnKS5ub3ROdWxsKCksXG4gIHRpdGxlOiB2YXJjaGFyKCd0aXRsZScsIHsgbGVuZ3RoOiAxMjAgfSksXG4gIGJvZHlNZDogdGV4dCgnYm9keV9tZCcpLFxuICBib2R5SHRtbDogdGV4dCgnYm9keV9odG1sJyksXG4gIGF1dGhvclVzZXJJZDogdGV4dCgnYXV0aG9yX3VzZXJfaWQnKSxcbiAgYXV0aG9yT3JnSWQ6IHZhcmNoYXIoJ2F1dGhvcl9vcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLFxuICAvLyBUaGUgb25seSBhdXRob3IgZmllbGQgZXZlciBzaG93biAoc25hcHNob3QgYXQgd3JpdGUgdGltZTsgTlVMTCBvbmNlIGFub255bWl6ZWQpLlxuICBhdXRob3JEaXNwbGF5TmFtZTogdmFyY2hhcignYXV0aG9yX2Rpc3BsYXlfbmFtZScsIHsgbGVuZ3RoOiAxMDAgfSksXG4gIHZlcmlmaWVkVXNlOiBib29sZWFuKCd2ZXJpZmllZF91c2UnKS5kZWZhdWx0KGZhbHNlKS5ub3ROdWxsKCksXG4gIHN0YXR1czogdmFyY2hhcignc3RhdHVzJywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPFJldmlld1N0YXR1cz4oKS5kZWZhdWx0KCdwdWJsaXNoZWQnKS5ub3ROdWxsKCksXG4gIGhvbGRSZWFzb246IHZhcmNoYXIoJ2hvbGRfcmVhc29uJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPFJldmlld0hvbGRSZWFzb24+KCksXG4gIG1vZGVyYXRpb25SZWFzb246IHRleHQoJ21vZGVyYXRpb25fcmVhc29uJyksXG4gIGhlbHBmdWxDb3VudDogaW50ZWdlcignaGVscGZ1bF9jb3VudCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgbGlzdGluZ0F1dGhvclVuaXF1ZTogdW5pcXVlSW5kZXgoJ3BsdWdpbl9yZXZpZXdfbGlzdGluZ19hdXRob3JfdW5pcXVlJykub24odGFibGUubGlzdGluZ0lkLCB0YWJsZS5hdXRob3JVc2VySWQpLFxuICBsaXN0aW5nU3RhdHVzQ3JlYXRlZElkeDogaW5kZXgoJ3BsdWdpbl9yZXZpZXdfbGlzdGluZ19zdGF0dXNfY3JlYXRlZF9pZHgnKVxuICAgIC5vbih0YWJsZS5saXN0aW5nSWQsIHRhYmxlLnN0YXR1cywgdGFibGUuY3JlYXRlZEF0KSxcbiAgLy8gUGVyLW9yZyBkYWlseSByZXZpZXcgY2FwLlxuICBhdXRob3JPcmdDcmVhdGVkSWR4OiBpbmRleCgncGx1Z2luX3Jldmlld19hdXRob3Jfb3JnX2NyZWF0ZWRfaWR4Jykub24odGFibGUuYXV0aG9yT3JnSWQsIHRhYmxlLmNyZWF0ZWRBdCksXG4gIC8vIE1vZGVyYXRpb24gcXVldWUuXG4gIHN0YXR1c1VwZGF0ZWRJZHg6IGluZGV4KCdwbHVnaW5fcmV2aWV3X3N0YXR1c191cGRhdGVkX2lkeCcpLm9uKHRhYmxlLnN0YXR1cywgdGFibGUudXBkYXRlZEF0KSxcbiAgcmF0aW5nQ2hlY2s6IGNoZWNrKCdwbHVnaW5fcmV2aWV3c19yYXRpbmdfY2hlY2snLCBzcWxgJHt0YWJsZS5yYXRpbmd9IEJFVFdFRU4gMSBBTkQgNWApLFxuICBzdGF0dXNDaGVjazogY2hlY2soJ3BsdWdpbl9yZXZpZXdzX3N0YXR1c19jaGVjaycsIHNxbGAke3RhYmxlLnN0YXR1c30gSU4gKCdwdWJsaXNoZWQnLCAnaGVsZCcsICdyZW1vdmVkJylgKSxcbiAgaG9sZFJlYXNvbkNoZWNrOiBjaGVjaygncGx1Z2luX3Jldmlld3NfaG9sZF9yZWFzb25fY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLmhvbGRSZWFzb259IElOICgncmVwb3J0cycsICdidXJzdCcsICdmaWx0ZXInLCAnc2VjdXJpdHknLCAnbW9kZXJhdG9yJylgKSxcbn0pKTtcblxuLyoqXG4gKiBUaGUgb25lIHB1YmxpYyBwdWJsaXNoZXIgcmVwbHkgdG8gYSByZXZpZXcuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9yZXZpZXdfcmVwbGllc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luUmV2aWV3UmVwbHkgPSBwZ1RhYmxlKCdwbHVnaW5fcmV2aWV3X3JlcGxpZXMnLCB7XG4gIHJldmlld0lkOiB1dWlkKCdyZXZpZXdfaWQnKS5wcmltYXJ5S2V5KCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5SZXZpZXcuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KSxcbiAgcHVibGlzaGVySWQ6IHV1aWQoJ3B1Ymxpc2hlcl9pZCcpLm5vdE51bGwoKS5yZWZlcmVuY2VzKCgpID0+IHB1Ymxpc2hlci5pZCksXG4gIGF1dGhvclVzZXJJZDogdGV4dCgnYXV0aG9yX3VzZXJfaWQnKSxcbiAgYm9keU1kOiB0ZXh0KCdib2R5X21kJykubm90TnVsbCgpLFxuICBib2R5SHRtbDogdGV4dCgnYm9keV9odG1sJykubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0pO1xuXG4vKipcbiAqIFwiUmVwb3J0IHJldmlld1wiIOKAlCBvbmUgcGVyIHJlcG9ydGVyIHBlciByZXZpZXc7IE4gcmVwb3J0cyBhdXRvLWhvbGQgaXQuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9yZXZpZXdfcmVwb3J0c1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luUmV2aWV3UmVwb3J0ID0gcGdUYWJsZSgncGx1Z2luX3Jldmlld19yZXBvcnRzJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICByZXZpZXdJZDogdXVpZCgncmV2aWV3X2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luUmV2aWV3LmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSksXG4gIHJlcG9ydGVyVXNlcklkOiB0ZXh0KCdyZXBvcnRlcl91c2VyX2lkJykubm90TnVsbCgpLFxuICBjYXRlZ29yeTogdmFyY2hhcignY2F0ZWdvcnknLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8UmV2aWV3UmVwb3J0Q2F0ZWdvcnk+KCkuZGVmYXVsdCgnYWJ1c2UnKS5ub3ROdWxsKCksXG4gIHJlYXNvbjogdGV4dCgncmVhc29uJyksXG4gIC8vIFNldCBvbmNlIGEgbW9kZXJhdG9yIHJlbGVhc2VkIG9yIHJlbW92ZWQgdGhlIHJldmlldy5cbiAgcmVzb2x2ZWRBdDogdGltZXN0YW1wKCdyZXNvbHZlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHJldmlld1JlcG9ydGVyVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX3Jldmlld19yZXBvcnRfdW5pcXVlJykub24odGFibGUucmV2aWV3SWQsIHRhYmxlLnJlcG9ydGVyVXNlcklkKSxcbiAgb3BlbklkeDogaW5kZXgoJ3BsdWdpbl9yZXZpZXdfcmVwb3J0X29wZW5faWR4Jykub24odGFibGUucmV2aWV3SWQpLndoZXJlKHNxbGAke3RhYmxlLnJlc29sdmVkQXR9IElTIE5VTExgKSxcbiAgY2F0ZWdvcnlDaGVjazogY2hlY2soJ3BsdWdpbl9yZXZpZXdfcmVwb3J0c19jYXRlZ29yeV9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuY2F0ZWdvcnl9IElOICgnc3BhbScsICdhYnVzZScsICdvZmZfdG9waWMnLCAnc2VjdXJpdHknKWApLFxufSkpO1xuXG4vKipcbiAqIE9uZSBcImhlbHBmdWxcIiB2b3RlIHBlciB1c2VyIHBlciByZXZpZXcuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9yZXZpZXdfdm90ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpblJldmlld1ZvdGUgPSBwZ1RhYmxlKCdwbHVnaW5fcmV2aWV3X3ZvdGVzJywge1xuICByZXZpZXdJZDogdXVpZCgncmV2aWV3X2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luUmV2aWV3LmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSksXG4gIHVzZXJJZDogdGV4dCgndXNlcl9pZCcpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICBwazogcHJpbWFyeUtleSh7IGNvbHVtbnM6IFt0YWJsZS5yZXZpZXdJZCwgdGFibGUudXNlcklkXSB9KSxcbn0pKTtcblxuLyoqXG4gKiBSZXZpZXcgZWRpdCBoaXN0b3J5OiB0aGUgUFJJT1IgY29udGVudCwgYXBwZW5kZWQgb24gZXZlcnkgZWRpdC5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX3Jldmlld19oaXN0b3J5XG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5SZXZpZXdIaXN0b3J5ID0gcGdUYWJsZSgncGx1Z2luX3Jldmlld19oaXN0b3J5Jywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICByZXZpZXdJZDogdXVpZCgncmV2aWV3X2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luUmV2aWV3LmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSksXG4gIHZlcnNpb246IHZhcmNoYXIoJ3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHJhdGluZzogc21hbGxpbnQoJ3JhdGluZycpLm5vdE51bGwoKSxcbiAgdGl0bGU6IHZhcmNoYXIoJ3RpdGxlJywgeyBsZW5ndGg6IDEyMCB9KSxcbiAgYm9keU1kOiB0ZXh0KCdib2R5X21kJyksXG4gIGVkaXRlZEF0OiB0aW1lc3RhbXAoJ2VkaXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHJldmlld0lkeDogaW5kZXgoJ3BsdWdpbl9yZXZpZXdfaGlzdG9yeV9yZXZpZXdfaWR4Jykub24odGFibGUucmV2aWV3SWQsIHRhYmxlLmVkaXRlZEF0KSxcbiAgcmF0aW5nQ2hlY2s6IGNoZWNrKCdwbHVnaW5fcmV2aWV3X2hpc3RvcnlfcmF0aW5nX2NoZWNrJywgc3FsYCR7dGFibGUucmF0aW5nfSBCRVRXRUVOIDEgQU5EIDVgKSxcbn0pKTtcblxuLyoqXG4gKiBEZW5vcm1hbGl6ZWQgcGVyLWxpc3Rpbmcgc3RhdHMsIHJlY29tcHV0ZWQgYnkgYSBqb2IuIGBhY3RpdmVPcmdDb3VudGAgaXNcbiAqIHB1YmxpYyBvbmx5IHdoZW4gPj0gNSAodGhlIGBwdWJsaWNfbGlzdGluZ3NgIHZpZXcgZW5mb3JjZXMgaXQpLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fc3RhdHNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpblN0YXRzID0gcGdUYWJsZSgncGx1Z2luX3N0YXRzJywge1xuICBsaXN0aW5nSWQ6IHV1aWQoJ2xpc3RpbmdfaWQnKS5wcmltYXJ5S2V5KCkucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5MaXN0aW5nLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSksXG4gIHJhdGluZ0JheWVzOiBkb3VibGVQcmVjaXNpb24oJ3JhdGluZ19iYXllcycpLFxuICByYXRpbmdDb3VudDogaW50ZWdlcigncmF0aW5nX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIC8vIFN0YXIgZGlzdHJpYnV0aW9uOiB7IFwiMVwiOiBuLCDigKYsIFwiNVwiOiBuIH0uXG4gIGRpc3Q6IGpzb25iKCdkaXN0JykuJHR5cGU8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4oKS5kZWZhdWx0KHt9KS5ub3ROdWxsKCksXG4gIC8vIFwiUmVjZW50IHZlcnNpb25zXCIgcmF0aW5nIG92ZXIgdGhlIGxhc3QgdHdvIG1pbm9ycy5cbiAgcmVjZW50UmF0aW5nOiBkb3VibGVQcmVjaXNpb24oJ3JlY2VudF9yYXRpbmcnKSxcbiAgaW5zdGFsbENvdW50OiBpbnRlZ2VyKCdpbnN0YWxsX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGFjdGl2ZU9yZ0NvdW50OiBpbnRlZ2VyKCdhY3RpdmVfb3JnX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIHN1Y2Nlc3NSYXRlMzBkOiBkb3VibGVQcmVjaXNpb24oJ3N1Y2Nlc3NfcmF0ZV8zMGQnKSxcbiAgaGVhbHRoU2NvcmU6IGRvdWJsZVByZWNpc2lvbignaGVhbHRoX3Njb3JlJyksXG4gIC8vIFBlci1jb21wb25lbnQgaGVhbHRoIHNjb3JlcyBhbmQgd2VpZ2h0cywgZm9yIHRoZSBicmVha2Rvd24gcGFuZWwuXG4gIGhlYWx0aEJyZWFrZG93bjoganNvbmIoJ2hlYWx0aF9icmVha2Rvd24nKS4kdHlwZTxIZWFsdGhCcmVha2Rvd24+KCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0pO1xuXG4vKipcbiAqIEFub255bW91cyBwdWJsaWMgc3VibWlzc2lvbi4gVGhlIGVtYWlsIGlzIGtlcHQgaGFzaGVkIChyYXRlIGxpbWl0cyxcbiAqIGNsYWltIG1hdGNoaW5nKSBhbmQgZW5jcnlwdGVkICh0YWtlZG93biBub3RpY2VzIG9ubHkpIGFuZCBwdXJnZWQgYXRcbiAqIGBlbWFpbFB1cmdlQWZ0ZXJgLiBOb3RoaW5nIGhlcmUgaXMgZXZlciBsaXN0ZWQgb3IgcmVzb2x2YWJsZS5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX3N1Ym1pc3Npb25zXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5TdWJtaXNzaW9uID0gcGdUYWJsZSgncGx1Z2luX3N1Ym1pc3Npb25zJywge1xuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuICBzdGF0dXM6IHZhcmNoYXIoJ3N0YXR1cycsIHsgbGVuZ3RoOiAzMCB9KS4kdHlwZTxTdWJtaXNzaW9uU3RhdHVzPigpLmRlZmF1bHQoJ3BlbmRpbmdfdmVyaWZpY2F0aW9uJykubm90TnVsbCgpLFxuICBlbWFpbEhhc2g6IHZhcmNoYXIoJ2VtYWlsX2hhc2gnLCB7IGxlbmd0aDogNjQgfSksXG4gIGVtYWlsRW5jOiB0ZXh0KCdlbWFpbF9lbmMnKSxcbiAgdmVyaWZ5VG9rZW5IYXNoOiB2YXJjaGFyKCd2ZXJpZnlfdG9rZW5faGFzaCcsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgdmVyaWZ5RXhwaXJlc0F0OiB0aW1lc3RhbXAoJ3ZlcmlmeV9leHBpcmVzX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHZlcmlmaWVkQXQ6IHRpbWVzdGFtcCgndmVyaWZpZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLy8gc2hhMjU2IG9mIHRoZSBzdGF0dXMgdG9rZW4gKHJldHVybmVkIGJ5IHZlcmlmeSBhbmQgaW4gTjEvTjMvTjQgZW1haWxzKSDigJRcbiAgLy8gdGhlIHN1Ym1pdHRlcidzIG9ubHkgcmVhZCBoYW5kbGUgb24gdGhlIHN1Ym1pc3Npb24uXG4gIHN0YXR1c1Rva2VuSGFzaDogdmFyY2hhcignc3RhdHVzX3Rva2VuX2hhc2gnLCB7IGxlbmd0aDogNjQgfSksXG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgdmVyc2lvbjogdmFyY2hhcigndmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KS5ub3ROdWxsKCksXG4gIHNwZWM6IGpzb25iKCdzcGVjJykuJHR5cGU8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCkuZGVmYXVsdCh7fSkubm90TnVsbCgpLFxuICAvLyBUaGUgYWNjZXB0LW9yLWVkaXQgY2F0YWxvZyB2YWx1ZXMgKyBwcm92ZW5hbmNlIGFuZCB0aGUgRG9ja2VyZmlsZSxcbiAgLy8gY2FwdHVyZWQgYXQgc3VibWl0IHNvIG1vZGVyYXRpb24gcmV2aWV3cyBleGFjdGx5IHdoYXQgd2FzIHN1Ym1pdHRlZC5cbiAgY2F0YWxvZzoganNvbmIoJ2NhdGFsb2cnKS4kdHlwZTxTdWJtaXNzaW9uQ2F0YWxvZz4oKS5kZWZhdWx0KHsgdmFsdWVzOiB7fSwgc291cmNlczoge30gfSkubm90TnVsbCgpLFxuICBkb2NrZXJmaWxlOiB0ZXh0KCdkb2NrZXJmaWxlJyksXG4gIGFydGlmYWN0S2V5OiB2YXJjaGFyKCdhcnRpZmFjdF9rZXknLCB7IGxlbmd0aDogMTAyNCB9KSxcbiAgcXVhcmFudGluZUltYWdlUmVmOiB2YXJjaGFyKCdxdWFyYW50aW5lX2ltYWdlX3JlZicsIHsgbGVuZ3RoOiAxMDI0IH0pLFxuICBnYXRlUmVwb3J0OiBqc29uYignZ2F0ZV9yZXBvcnQnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKSxcbiAgaGV1cmlzdGljczoganNvbmIoJ2hldXJpc3RpY3MnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykucmVmZXJlbmNlcygoKSA9PiBwbHVnaW5MaXN0aW5nLmlkKSxcbiAgZGVjaWRlZEJ5OiB0ZXh0KCdkZWNpZGVkX2J5JyksXG4gIHJlYXNvbjogdGV4dCgncmVhc29uJyksXG4gIGNsaWVudElwSGFzaDogdmFyY2hhcignY2xpZW50X2lwX2hhc2gnLCB7IGxlbmd0aDogNjQgfSksXG4gIGV4cGlyZXNBdDogdGltZXN0YW1wKCdleHBpcmVzX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkubm90TnVsbCgpLFxuICBkZWNpZGVkQXQ6IHRpbWVzdGFtcCgnZGVjaWRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBlbWFpbFB1cmdlQWZ0ZXI6IHRpbWVzdGFtcCgnZW1haWxfcHVyZ2VfYWZ0ZXInLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHN0YXR1c0NyZWF0ZWRJZHg6IGluZGV4KCdwbHVnaW5fc3VibWlzc2lvbl9zdGF0dXNfY3JlYXRlZF9pZHgnKS5vbih0YWJsZS5zdGF0dXMsIHRhYmxlLmNyZWF0ZWRBdCksXG4gIC8vIFBlci1lbWFpbCAvIHBlci1JUCBkYWlseSByYXRlIGxpbWl0cy5cbiAgZW1haWxDcmVhdGVkSWR4OiBpbmRleCgncGx1Z2luX3N1Ym1pc3Npb25fZW1haWxfY3JlYXRlZF9pZHgnKS5vbih0YWJsZS5lbWFpbEhhc2gsIHRhYmxlLmNyZWF0ZWRBdCksXG4gIGlwQ3JlYXRlZElkeDogaW5kZXgoJ3BsdWdpbl9zdWJtaXNzaW9uX2lwX2NyZWF0ZWRfaWR4Jykub24odGFibGUuY2xpZW50SXBIYXNoLCB0YWJsZS5jcmVhdGVkQXQpLFxuICB2ZXJpZnlUb2tlblVuaXF1ZTogdW5pcXVlSW5kZXgoJ3BsdWdpbl9zdWJtaXNzaW9uX3ZlcmlmeV90b2tlbl91bmlxdWUnKVxuICAgIC5vbih0YWJsZS52ZXJpZnlUb2tlbkhhc2gpXG4gICAgLndoZXJlKHNxbGB2ZXJpZnlfdG9rZW5faGFzaCBJUyBOT1QgTlVMTGApLFxuICBzdGF0dXNUb2tlblVuaXF1ZTogdW5pcXVlSW5kZXgoJ3BsdWdpbl9zdWJtaXNzaW9uX3N0YXR1c190b2tlbl91bmlxdWUnKVxuICAgIC5vbih0YWJsZS5zdGF0dXNUb2tlbkhhc2gpXG4gICAgLndoZXJlKHNxbGBzdGF0dXNfdG9rZW5faGFzaCBJUyBOT1QgTlVMTGApLFxuICBzdGF0dXNDaGVjazogY2hlY2soJ3BsdWdpbl9zdWJtaXNzaW9uc19zdGF0dXNfY2hlY2snLCBzcWxgJHt0YWJsZS5zdGF0dXN9IElOICgncGVuZGluZ192ZXJpZmljYXRpb24nLFxuICAgICdwZW5kaW5nX3JldmlldycsICdwdWJsaXNoaW5nJywgJ2dhdGVfZmFpbGVkJywgJ2FwcHJvdmVkJywgJ3JlamVjdGVkJywgJ2V4cGlyZWQnLCAnY2xhaW1lZCcpYCksXG59KSk7XG5cbi8qKlxuICogWmVyby1yZXN1bHQgZGlyZWN0b3J5IHNlYXJjaGVzLiBObyB1c2VyIGRhdGEuIGBxdWVyeWAgaXMgc3RvcmVkIG5vcm1hbGl6ZWQ7XG4gKiB0aGUgbWFpbnRlbmFuY2Ugc3dlZXAgZm9sZHMgcmVwZWF0cyBvZiBvbmUgKHF1ZXJ5LCBjYXRlZ29yeSkgaW50byBhIHNpbmdsZVxuICogcm93IGNvdW50aW5nIGBoaXRzYCwgd2l0aCBgY3JlYXRlZF9hdGAgPSB0aGUgbGF0ZXN0IG9uZSwgYW5kIHBydW5lcyByb3dzIG5vdFxuICogc2VlbiBmb3IgMzAgZGF5cy5cbiAqXG4gKiBAdGFibGUgZWNvc3lzdGVtX3NlYXJjaF9taXNzZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGVjb3N5c3RlbVNlYXJjaE1pc3MgPSBwZ1RhYmxlKCdlY29zeXN0ZW1fc2VhcmNoX21pc3NlcycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgcXVlcnk6IHZhcmNoYXIoJ3F1ZXJ5JywgeyBsZW5ndGg6IDIwMCB9KS5ub3ROdWxsKCksXG4gIGNhdGVnb3J5OiB2YXJjaGFyKCdjYXRlZ29yeScsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgaGl0czogaW50ZWdlcignaGl0cycpLmRlZmF1bHQoMSkubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIGNyZWF0ZWRBdElkeDogaW5kZXgoJ2Vjb3N5c3RlbV9zZWFyY2hfbWlzc19jcmVhdGVkX2lkeCcpLm9uKHRhYmxlLmNyZWF0ZWRBdCksXG4gIGhpdHNDaGVjazogY2hlY2soJ2Vjb3N5c3RlbV9zZWFyY2hfbWlzc2VzX2hpdHNfY2hlY2snLCBzcWxgJHt0YWJsZS5oaXRzfSA+PSAxYCksXG59KSk7XG5cbi8qKlxuICogTm90aWZpY2F0aW9uIGRpZ2VzdC9iYXRjaGluZyBxdWV1ZS4gUm93cyBzaGFyaW5nIGEgYGRpZ2VzdEtleWAgYXJlXG4gKiBjb2FsZXNjZWQgaW50byBvbmUgZW1haWwgYXQgYGRlbGl2ZXJBZnRlcmAuXG4gKlxuICogQHRhYmxlIGVjb3N5c3RlbV9ub3RpZmljYXRpb25fcXVldWVcbiAqL1xuZXhwb3J0IGNvbnN0IGVjb3N5c3RlbU5vdGlmaWNhdGlvblF1ZXVlID0gcGdUYWJsZSgnZWNvc3lzdGVtX25vdGlmaWNhdGlvbl9xdWV1ZScsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgcmVjaXBpZW50VXNlcklkOiB0ZXh0KCdyZWNpcGllbnRfdXNlcl9pZCcpLFxuICByZWNpcGllbnRPcmdJZDogdmFyY2hhcigncmVjaXBpZW50X29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGV2ZW50OiB2YXJjaGFyKCdldmVudCcsIHsgbGVuZ3RoOiA4IH0pLiR0eXBlPEVjb3N5c3RlbU5vdGlmaWNhdGlvbkV2ZW50PigpLm5vdE51bGwoKSxcbiAgZGlnZXN0S2V5OiB2YXJjaGFyKCdkaWdlc3Rfa2V5JywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgcGF5bG9hZDoganNvbmIoJ3BheWxvYWQnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKS5kZWZhdWx0KHt9KS5ub3ROdWxsKCksXG4gIGRlbGl2ZXJBZnRlcjogdGltZXN0YW1wKCdkZWxpdmVyX2FmdGVyJywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgZGVsaXZlcmVkQXQ6IHRpbWVzdGFtcCgnZGVsaXZlcmVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgLy8gVGhlIGRpc3BhdGNoZXIncyBzY2FuOiB1bmRlbGl2ZXJlZCByb3dzIHRoYXQgYXJlIGR1ZS5cbiAgZHVlSWR4OiBpbmRleCgnZWNvc3lzdGVtX25vdGlmaWNhdGlvbl9kdWVfaWR4Jykub24odGFibGUuZGVsaXZlckFmdGVyKS53aGVyZShzcWxgZGVsaXZlcmVkX2F0IElTIE5VTExgKSxcbiAgZGlnZXN0SWR4OiBpbmRleCgnZWNvc3lzdGVtX25vdGlmaWNhdGlvbl9kaWdlc3RfaWR4Jykub24odGFibGUuZGlnZXN0S2V5KS53aGVyZShzcWxgZGVsaXZlcmVkX2F0IElTIE5VTExgKSxcbiAgZXZlbnRDaGVjazogY2hlY2soJ2Vjb3N5c3RlbV9ub3RpZmljYXRpb25fcXVldWVfZXZlbnRfY2hlY2snLCBzcWxgJHt0YWJsZS5ldmVudH0gfiAnXk4oWzEtOV18MVswLTldfDJbMC05XSkkJ2ApLFxufSkpO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE9yZy1zY29wZWQgdGFibGVzIChvcmdfaWQgKyBybHNfb3JnXyogcG9saWNpZXMgKyBGT1JDRTsgaW4gdGhlIG9yZyBjYXNjYWRlKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogU3RlcCBtYW5pZmVzdDogd2hpY2ggcGx1Z2luIGVhY2ggKHBpcGVsaW5lLCBzdGFnZSwgYWN0aW9uKSBydW5zLFxuICogcmVjb3JkZWQgYXQgc3ludGguIEV2ZW50IGluZ2VzdCBqb2lucyBvbiBpdCB0byBzdGFtcFxuICogYHBpcGVsaW5lX2V2ZW50cy5wbHVnaW5fKmAuIGBwbHVnaW5QdWJsaXNoZXJgIGlzIE5VTEwgZm9yIGFuIG93bi1vcmcgcGx1Z2luLlxuICpcbiAqIEB0YWJsZSBwaXBlbGluZV9zdGVwX21hbmlmZXN0c1xuICovXG5leHBvcnQgY29uc3QgcGlwZWxpbmVTdGVwTWFuaWZlc3QgPSBwZ1RhYmxlKCdwaXBlbGluZV9zdGVwX21hbmlmZXN0cycsIHtcbiAgcGlwZWxpbmVJZDogdXVpZCgncGlwZWxpbmVfaWQnKS5ub3ROdWxsKCksXG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgc3RhZ2VOYW1lOiB2YXJjaGFyKCdzdGFnZV9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGFjdGlvbk5hbWU6IHZhcmNoYXIoJ2FjdGlvbl9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHBsdWdpblB1Ymxpc2hlcjogdmFyY2hhcigncGx1Z2luX3B1Ymxpc2hlcicsIHsgbGVuZ3RoOiAzOSB9KSxcbiAgLyoqIFRoZSBsaXN0aW5nIHB1Ymxpc2hlcidzIGlkIChOVUxMIGZvciBhbiBvd24tb3JnIHBsdWdpbikg4oCUIHdoYXQgY3Jvc3Mtb3JnIHN0YXRzIGpvaW4gb24uICovXG4gIHBsdWdpblB1Ymxpc2hlcklkOiB1dWlkKCdwbHVnaW5fcHVibGlzaGVyX2lkJyksXG4gIHBsdWdpbk5hbWU6IHZhcmNoYXIoJ3BsdWdpbl9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHBsdWdpblZlcnNpb246IHZhcmNoYXIoJ3BsdWdpbl92ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLm5vdE51bGwoKSxcbiAgaW1hZ2VEaWdlc3Q6IHZhcmNoYXIoJ2ltYWdlX2RpZ2VzdCcsIHsgbGVuZ3RoOiA3MSB9KSxcbiAgaW1hZ2VSZXBvc2l0b3J5OiB2YXJjaGFyKCdpbWFnZV9yZXBvc2l0b3J5JywgeyBsZW5ndGg6IDUxMiB9KSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICBwazogcHJpbWFyeUtleSh7IGNvbHVtbnM6IFt0YWJsZS5waXBlbGluZUlkLCB0YWJsZS5zdGFnZU5hbWUsIHRhYmxlLmFjdGlvbk5hbWVdIH0pLFxuICBvcmdJZHg6IGluZGV4KCdwaXBlbGluZV9zdGVwX21hbmlmZXN0X29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCksXG4gIC8vIHB1YmxpYy8qIEdDIGd1YXJkOiBcImRvZXMgYW55IG1hbmlmZXN0IHN0aWxsIHJlZmVyZW5jZSB0aGlzIGRpZ2VzdD9cIlxuICBkaWdlc3RJZHg6IGluZGV4KCdwaXBlbGluZV9zdGVwX21hbmlmZXN0X2RpZ2VzdF9pZHgnKS5vbih0YWJsZS5pbWFnZURpZ2VzdCksXG4gIHBsdWdpbklkeDogaW5kZXgoJ3BpcGVsaW5lX3N0ZXBfbWFuaWZlc3RfcGx1Z2luX2lkeCcpLm9uKHRhYmxlLnBsdWdpblB1Ymxpc2hlciwgdGFibGUucGx1Z2luTmFtZSksXG4gIHBsdWdpblB1Ymxpc2hlcklkSWR4OiBpbmRleCgncGlwZWxpbmVfc3RlcF9tYW5pZmVzdF9wdWJsaXNoZXJfaWRfaWR4Jykub24odGFibGUucGx1Z2luUHVibGlzaGVySWQsIHRhYmxlLnBsdWdpbk5hbWUpLFxufSkpO1xuXG4vKipcbiAqIEFuIG9yZydzIGluc3RhbGwgb2YgYSBsaXN0aW5nLiBPZmZpY2lhbCBsaXN0aW5ncyBhcmUgaW5zdGFsbGVkXG4gKiBpbXBsaWNpdGx5ICh2aXJ0dWFsIOKAlCBubyByb3cpOyBhIHJvdyBpcyBhbiBleHBsaWNpdCBpbnN0YWxsIG9yIG92ZXJyaWRlLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5faW5zdGFsbHNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbkluc3RhbGwgPSBwZ1RhYmxlKCdwbHVnaW5faW5zdGFsbHMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luTGlzdGluZy5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pLFxuICB2ZXJzaW9uUG9saWN5OiB2YXJjaGFyKCd2ZXJzaW9uX3BvbGljeScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxJbnN0YWxsVmVyc2lvblBvbGljeT4oKS5kZWZhdWx0KCdtaW5vcicpLm5vdE51bGwoKSxcbiAgcGlubmVkVmVyc2lvbjogdmFyY2hhcigncGlubmVkX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHJlc29sdmVkVmVyc2lvbjogdmFyY2hhcigncmVzb2x2ZWRfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgc3RhdHVzOiB2YXJjaGFyKCdzdGF0dXMnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8SW5zdGFsbFN0YXR1cz4oKS5kZWZhdWx0KCdhY3RpdmUnKS5ub3ROdWxsKCksXG4gIGluc3RhbGxlZEJ5OiB0ZXh0KCdpbnN0YWxsZWRfYnknKS5ub3ROdWxsKCksXG4gIGFwcHJvdmVkQnk6IHRleHQoJ2FwcHJvdmVkX2J5JyksXG4gIGRlY2lkZWRBdDogdGltZXN0YW1wKCdkZWNpZGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIC8qKiBBIHBlbmRpbmcsIGFwcHJvdmFsLWdhdGVkIGNoYW5nZSBvZiB0aGlzIGluc3RhbGwgKHVwZ3JhZGUgLyBwb2xpY3kpLCBvciBudWxsLiAqL1xuICBwZW5kaW5nQ2hhbmdlOiBqc29uYigncGVuZGluZ19jaGFuZ2UnKS4kdHlwZTxJbnN0YWxsQ2hhbmdlUmVxdWVzdD4oKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIG9yZ0xpc3RpbmdVbmlxdWU6IHVuaXF1ZUluZGV4KCdwbHVnaW5faW5zdGFsbF9vcmdfbGlzdGluZ191bmlxdWUnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUubGlzdGluZ0lkKSxcbiAgLy8gXCJJbnN0YWxsaW5nIG9yZ3NcIiBmYW4tb3V0IGZvciBOOC9OMTMvTjE0L04yMS9OMjYuXG4gIGxpc3RpbmdTdGF0dXNJZHg6IGluZGV4KCdwbHVnaW5faW5zdGFsbF9saXN0aW5nX3N0YXR1c19pZHgnKS5vbih0YWJsZS5saXN0aW5nSWQsIHRhYmxlLnN0YXR1cyksXG4gIHZlcnNpb25Qb2xpY3lDaGVjazogY2hlY2soJ3BsdWdpbl9pbnN0YWxsc192ZXJzaW9uX3BvbGljeV9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUudmVyc2lvblBvbGljeX0gSU4gKCdwaW5uZWQnLCAncGF0Y2gnLCAnbWlub3InLCAnbGF0ZXN0JylgKSxcbiAgc3RhdHVzQ2hlY2s6IGNoZWNrKCdwbHVnaW5faW5zdGFsbHNfc3RhdHVzX2NoZWNrJywgc3FsYCR7dGFibGUuc3RhdHVzfSBJTiAoJ2FjdGl2ZScsICdwZW5kaW5nX2FwcHJvdmFsJywgJ2RlbmllZCcpYCksXG4gIHBpbm5lZENoZWNrOiBjaGVjaygncGx1Z2luX2luc3RhbGxfcGlubmVkX2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS52ZXJzaW9uUG9saWN5fSA8PiAncGlubmVkJyBPUiAke3RhYmxlLnBpbm5lZFZlcnNpb259IElTIE5PVCBOVUxMYCksXG59KSk7XG5cbi8qKlxuICogT3JnIGNvbnN1bXB0aW9uIHBvbGljeS4gT25lIHJvdyBwZXIgb3JnOyBhYnNlbnQgPSB0aGUgY29sdW1uIGRlZmF1bHRzLlxuICogTm9uZSBvZiB0aGVzZSBzYWZldHkgY29udHJvbHMgaXMgcGxhbi1nYXRlZC5cbiAqXG4gKiBAdGFibGUgcGx1Z2luX2luc3RhbGxfcG9saWNpZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbkluc3RhbGxQb2xpY3kgPSBwZ1RhYmxlKCdwbHVnaW5faW5zdGFsbF9wb2xpY2llcycsIHtcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBhbGxvd2VkVGllcnM6IHRleHQoJ2FsbG93ZWRfdGllcnMnKS5hcnJheSgpLiR0eXBlPFB1Ymxpc2hlclRpZXJbXT4oKVxuICAgIC5kZWZhdWx0KFsnb2ZmaWNpYWwnLCAndmVyaWZpZWQnXSkubm90TnVsbCgpLFxuICByZXF1aXJlQXBwcm92YWxUaWVyczogdGV4dCgncmVxdWlyZV9hcHByb3ZhbF90aWVycycpLmFycmF5KCkuJHR5cGU8UHVibGlzaGVyVGllcltdPigpXG4gICAgLmRlZmF1bHQoWydjb21tdW5pdHknLCAndW52ZXJpZmllZCddKS5ub3ROdWxsKCksXG4gIHNlY3JldHNBbGxvd2VkVGllcnM6IHRleHQoJ3NlY3JldHNfYWxsb3dlZF90aWVycycpLmFycmF5KCkuJHR5cGU8UHVibGlzaGVyVGllcltdPigpXG4gICAgLmRlZmF1bHQoWydvZmZpY2lhbCcsICd2ZXJpZmllZCddKS5ub3ROdWxsKCksXG4gIGJsb2NrT25BZHZpc29yeTogdmFyY2hhcignYmxvY2tfb25fYWR2aXNvcnknLCB7IGxlbmd0aDogMTAgfSkuJHR5cGU8QmxvY2tPbkFkdmlzb3J5PigpLmRlZmF1bHQoJ2NyaXRpY2FsJykubm90TnVsbCgpLFxuICBvZmZpY2lhbEluc3RhbGxzOiB2YXJjaGFyKCdvZmZpY2lhbF9pbnN0YWxscycsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxPZmZpY2lhbEluc3RhbGxzPigpLmRlZmF1bHQoJ2ltcGxpY2l0Jykubm90TnVsbCgpLFxuICBibG9ja2VkTGlzdGluZ3M6IGpzb25iKCdibG9ja2VkX2xpc3RpbmdzJykuJHR5cGU8QmxvY2tlZExpc3RpbmdSZWZbXT4oKS5kZWZhdWx0KFtdKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRCeTogdGV4dCgndXBkYXRlZF9ieScpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIGJsb2NrT25BZHZpc29yeUNoZWNrOiBjaGVjaygncGx1Z2luX2luc3RhbGxfcG9saWNpZXNfYmxvY2tfb25fYWR2aXNvcnlfY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLmJsb2NrT25BZHZpc29yeX0gSU4gKCdjcml0aWNhbCcsICdoaWdoJywgJ25ldmVyJylgKSxcbiAgb2ZmaWNpYWxJbnN0YWxsc0NoZWNrOiBjaGVjaygncGx1Z2luX2luc3RhbGxfcG9saWNpZXNfb2ZmaWNpYWxfaW5zdGFsbHNfY2hlY2snLFxuICAgIHNxbGAke3RhYmxlLm9mZmljaWFsSW5zdGFsbHN9IElOICgnaW1wbGljaXQnLCAnZXhwbGljaXQnKWApLFxuICB0aWVyc0NoZWNrOiBjaGVjaygncGx1Z2luX2luc3RhbGxfcG9saWN5X3RpZXJzX2NoZWNrJywgc3FsYFxuICAgICR7dGFibGUuYWxsb3dlZFRpZXJzfSA8QCBBUlJBWVsnb2ZmaWNpYWwnLCAndmVyaWZpZWQnLCAnY29tbXVuaXR5JywgJ3VudmVyaWZpZWQnXTo6VEVYVFtdXG4gICAgQU5EICR7dGFibGUucmVxdWlyZUFwcHJvdmFsVGllcnN9IDxAIEFSUkFZWydvZmZpY2lhbCcsICd2ZXJpZmllZCcsICdjb21tdW5pdHknLCAndW52ZXJpZmllZCddOjpURVhUW11cbiAgICBBTkQgJHt0YWJsZS5zZWNyZXRzQWxsb3dlZFRpZXJzfSA8QCBBUlJBWVsnb2ZmaWNpYWwnLCAndmVyaWZpZWQnLCAnY29tbXVuaXR5JywgJ3VudmVyaWZpZWQnXTo6VEVYVFtdYCksXG59KSk7XG5cbi8qKlxuICogUGVyLW9yZyBwbHVnaW4gc2VjdXJpdHkgbm90aWZpY2F0aW9uIHNldHRpbmdzIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kXG4gKiBcIlNjYW4gZ2F0ZXNcIik6IHdobyBoZWFycyBhYm91dCBhIGJsb2NrZWQgYnVpbGQgKE4zMCkgYW5kIGEgcmVzY2FuIGZpbmRpbmdcbiAqIChOMzEpLCBhbmQgd2hlcmUgZWxzZSB0aGV5IGdvLiBPbmUgcm93IHBlciBvcmc7IGFic2VudCA9IHRoZSBjb2x1bW5cbiAqIGRlZmF1bHRzLiBUaGUgd2ViaG9vayBzZWNyZXQgYW5kIHRoZSBleHRlcm5hbCBhZGRyZXNzIGFyZSBzdG9yZWQgRU5DUllQVEVEXG4gKiAoYXBpLWNvcmUgc2VjcmV0LWVuY3J5cHRpb24sIHRoZSBvcmcncyBrZXkpIGFuZCBuZXZlciByZXR1cm5lZDsgdGhlIGFkZHJlc3NcbiAqIGlzIHVzZWQgb25seSBvbmNlIGNvbmZpcm1lZCB0aHJvdWdoIGl0cyBlbWFpbGVkIHNpbmdsZS11c2UgbGlua1xuICogKGBleHRlcm5hbF92ZXJpZnlfdG9rZW5faGFzaGAsIHNoYTI1NiBvZiB0aGUgdG9rZW4pLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fc2VjdXJpdHlfbm90aWZpY2F0aW9uX3ByZWZzXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5TZWN1cml0eU5vdGlmaWNhdGlvblByZWYgPSBwZ1RhYmxlKCdwbHVnaW5fc2VjdXJpdHlfbm90aWZpY2F0aW9uX3ByZWZzJywge1xuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5wcmltYXJ5S2V5KCksXG4gIHJlY2lwaWVudE1vZGU6IHZhcmNoYXIoJ3JlY2lwaWVudF9tb2RlJywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPFBsdWdpblNlY3VyaXR5UmVjaXBpZW50TW9kZT4oKS5kZWZhdWx0KCd3cml0ZXJzJykubm90TnVsbCgpLFxuICB0YXJnZXRVc2VyczogdGV4dCgndGFyZ2V0X3VzZXJzJykuYXJyYXkoKS4kdHlwZTxzdHJpbmdbXT4oKS5kZWZhdWx0KFtdKS5ub3ROdWxsKCksXG4gIG5vdGlmeVJlc2NhbjogYm9vbGVhbignbm90aWZ5X3Jlc2NhbicpLmRlZmF1bHQodHJ1ZSkubm90TnVsbCgpLFxuICBkaWdlc3RNb2RlOiB2YXJjaGFyKCdkaWdlc3RfbW9kZScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxQbHVnaW5TZWN1cml0eURpZ2VzdE1vZGU+KCkuZGVmYXVsdCgnaW1tZWRpYXRlJykubm90TnVsbCgpLFxuICB3ZWJob29rVXJsOiB2YXJjaGFyKCd3ZWJob29rX3VybCcsIHsgbGVuZ3RoOiAyMDQ4IH0pLFxuICB3ZWJob29rU2VjcmV0OiB0ZXh0KCd3ZWJob29rX3NlY3JldCcpLFxuICBleHRlcm5hbEVtYWlsRW5jOiB0ZXh0KCdleHRlcm5hbF9lbWFpbF9lbmMnKSxcbiAgZXh0ZXJuYWxFbWFpbEhhc2g6IHZhcmNoYXIoJ2V4dGVybmFsX2VtYWlsX2hhc2gnLCB7IGxlbmd0aDogNjQgfSksXG4gIGV4dGVybmFsRW1haWxWZXJpZmllZEF0OiB0aW1lc3RhbXAoJ2V4dGVybmFsX2VtYWlsX3ZlcmlmaWVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGV4dGVybmFsVmVyaWZ5VG9rZW5IYXNoOiB2YXJjaGFyKCdleHRlcm5hbF92ZXJpZnlfdG9rZW5faGFzaCcsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgZXh0ZXJuYWxWZXJpZnlFeHBpcmVzQXQ6IHRpbWVzdGFtcCgnZXh0ZXJuYWxfdmVyaWZ5X2V4cGlyZXNfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgdXBkYXRlZEJ5OiB0ZXh0KCd1cGRhdGVkX2J5JyksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICB2ZXJpZnlUb2tlbklkeDogdW5pcXVlSW5kZXgoJ3BsdWdpbl9zZWN1cml0eV9ub3RpZmljYXRpb25fcHJlZnNfdmVyaWZ5X3Rva2VuX2lkeCcpLm9uKHRhYmxlLmV4dGVybmFsVmVyaWZ5VG9rZW5IYXNoKSxcbiAgcmVjaXBpZW50TW9kZUNoZWNrOiBjaGVjaygncGx1Z2luX3NlY3VyaXR5X25vdGlmaWNhdGlvbl9wcmVmc19yZWNpcGllbnRfbW9kZV9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUucmVjaXBpZW50TW9kZX0gSU4gKCd3cml0ZXJzJywgJ3VzZXJzJylgKSxcbiAgZGlnZXN0TW9kZUNoZWNrOiBjaGVjaygncGx1Z2luX3NlY3VyaXR5X25vdGlmaWNhdGlvbl9wcmVmc19kaWdlc3RfbW9kZV9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUuZGlnZXN0TW9kZX0gSU4gKCdpbW1lZGlhdGUnLCAnZGFpbHknLCAnd2Vla2x5JylgKSxcbn0pKTtcblxuLyoqXG4gKiBOMjEgaWRlbXBvdGVuY3k6IG9uZSBkZWxpdmVyeSBwZXIgKGFkdmlzb3J5LCBpbnN0YWxsaW5nIG9yZyksIHNvIGEgcmV0cmllZFxuICogZmFuLW91dCBuZXZlciBub3RpZmllcyBhbiBvcmcgdHdpY2UuXG4gKlxuICogQHRhYmxlIHBsdWdpbl9hZHZpc29yeV9kZWxpdmVyaWVzXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5BZHZpc29yeURlbGl2ZXJ5ID0gcGdUYWJsZSgncGx1Z2luX2Fkdmlzb3J5X2RlbGl2ZXJpZXMnLCB7XG4gIGFkdmlzb3J5SWQ6IHV1aWQoJ2Fkdmlzb3J5X2lkJykubm90TnVsbCgpLnJlZmVyZW5jZXMoKCkgPT4gcGx1Z2luQWR2aXNvcnkuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBkZWxpdmVyZWRBdDogdGltZXN0YW1wKCdkZWxpdmVyZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICBwazogcHJpbWFyeUtleSh7IGNvbHVtbnM6IFt0YWJsZS5hZHZpc29yeUlkLCB0YWJsZS5vcmdJZF0gfSksXG4gIG9yZ0lkeDogaW5kZXgoJ3BsdWdpbl9hZHZpc29yeV9kZWxpdmVyeV9vcmdfaWR4Jykub24odGFibGUub3JnSWQpLFxufSkpO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFB1YmxpYyByZWFkIHBhdGgg4oCUIHZpZXdzIGNyZWF0ZWQgYnkgcG9zdGdyZXMtaW5pdC5zcWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIGBwdWJsaWNfbGlzdGluZ3NgOiBsaXN0ZWQgYW5kIHVubWFpbnRhaW5lZCBsaXN0aW5ncyBvZiBub24tc3VzcGVuZGVkXG4gKiBwdWJsaXNoZXJzLCBwdWJsaWMgY29sdW1ucyBvbmx5LCBqb2luZWQgd2l0aCB0aGUgcHVibGlzaGVyJ3MgaGFuZGxlL25hbWUvdGllciBhbmQgdGhlIHN0YXRzLlxuICogUmVhZCBhcyBgZWNvc3lzdGVtX3B1YmxpY19yZWFkZXJgIChzZWUgcG9zdGdyZXMtaW5pdC5zcWwpLlxuICovXG5leHBvcnQgY29uc3QgcHVibGljTGlzdGluZ3MgPSBwZ1ZpZXcoJ3B1YmxpY19saXN0aW5ncycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykubm90TnVsbCgpLFxuICBwdWJsaXNoZXJIYW5kbGU6IHZhcmNoYXIoJ3B1Ymxpc2hlcl9oYW5kbGUnLCB7IGxlbmd0aDogMzkgfSkubm90TnVsbCgpLFxuICBwdWJsaXNoZXJEaXNwbGF5TmFtZTogdmFyY2hhcigncHVibGlzaGVyX2Rpc3BsYXlfbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBwdWJsaXNoZXJUaWVyOiB2YXJjaGFyKCdwdWJsaXNoZXJfdGllcicsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxQdWJsaXNoZXJUaWVyPigpLm5vdE51bGwoKSxcbiAgcHVibGlzaGVyVmVyaWZpZWRBdDogdGltZXN0YW1wKCdwdWJsaXNoZXJfdmVyaWZpZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgbmFtZTogdmFyY2hhcignbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBjYXRlZ29yeTogdmFyY2hhcignY2F0ZWdvcnknLCB7IGxlbmd0aDogNTAgfSkubm90TnVsbCgpLFxuICBzdW1tYXJ5OiB2YXJjaGFyKCdzdW1tYXJ5JywgeyBsZW5ndGg6IDMwMCB9KSxcbiAgZGVzY3JpcHRpb246IHRleHQoJ2Rlc2NyaXB0aW9uJyksXG4gIHJlYWRtZUh0bWw6IHRleHQoJ3JlYWRtZV9odG1sJyksXG4gIGxpY2Vuc2U6IHZhcmNoYXIoJ2xpY2Vuc2UnLCB7IGxlbmd0aDogNjQgfSksXG4gIGhvbWVwYWdlVXJsOiB2YXJjaGFyKCdob21lcGFnZV91cmwnLCB7IGxlbmd0aDogMjA0OCB9KSxcbiAgc291cmNlVXJsOiB2YXJjaGFyKCdzb3VyY2VfdXJsJywgeyBsZW5ndGg6IDIwNDggfSksXG4gIGljb246IGpzb25iKCdpY29uJykuJHR5cGU8UGx1Z2luSWNvbj4oKSxcbiAgdXBsb2FkZWRJY29uOiBqc29uYigndXBsb2FkZWRfaWNvbicpLiR0eXBlPFBsdWdpblVwbG9hZGVkSWNvbj4oKSxcbiAga2V5d29yZHM6IGpzb25iKCdrZXl3b3JkcycpLiR0eXBlPHN0cmluZ1tdPigpLm5vdE51bGwoKSxcbiAgZmVhdHVyZWQ6IGJvb2xlYW4oJ2ZlYXR1cmVkJykubm90TnVsbCgpLFxuICBsYXRlc3RWZXJzaW9uOiB2YXJjaGFyKCdsYXRlc3RfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgcGF1c2VkQXQ6IHRpbWVzdGFtcCgncGF1c2VkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHNlYXJjaFZlY3RvcjogdHN2ZWN0b3IoJ3NlYXJjaF92ZWN0b3InKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkubm90TnVsbCgpLFxuICByYXRpbmdCYXllczogZG91YmxlUHJlY2lzaW9uKCdyYXRpbmdfYmF5ZXMnKSxcbiAgcmF0aW5nQ291bnQ6IGludGVnZXIoJ3JhdGluZ19jb3VudCcpLm5vdE51bGwoKSxcbiAgcmF0aW5nRGlzdDoganNvbmIoJ3JhdGluZ19kaXN0JykuJHR5cGU8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4oKSxcbiAgcmVjZW50UmF0aW5nOiBkb3VibGVQcmVjaXNpb24oJ3JlY2VudF9yYXRpbmcnKSxcbiAgaW5zdGFsbENvdW50OiBpbnRlZ2VyKCdpbnN0YWxsX2NvdW50Jykubm90TnVsbCgpLFxuICAvLyBOVUxMIGJlbG93IHRoZSA1LW9yZyBkaXNwbGF5IHRocmVzaG9sZC5cbiAgYWN0aXZlT3JnQ291bnQ6IGludGVnZXIoJ2FjdGl2ZV9vcmdfY291bnQnKSxcbiAgc3VjY2Vzc1JhdGUzMGQ6IGRvdWJsZVByZWNpc2lvbignc3VjY2Vzc19yYXRlXzMwZCcpLFxuICBoZWFsdGhTY29yZTogZG91YmxlUHJlY2lzaW9uKCdoZWFsdGhfc2NvcmUnKSxcbiAgLy8gJ2xpc3RlZCcgfCAndW5tYWludGFpbmVkJyDigJQgdW5tYWludGFpbmVkIHN0YXlzIHB1YmxpYyB3aXRoIGEgYmFubmVyLlxuICBzdGF0ZTogdmFyY2hhcignc3RhdGUnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8TGlzdGluZ1N0YXRlPigpLm5vdE51bGwoKSxcbiAgaGVhbHRoQnJlYWtkb3duOiBqc29uYignaGVhbHRoX2JyZWFrZG93bicpLiR0eXBlPEhlYWx0aEJyZWFrZG93bj4oKSxcbn0pLmV4aXN0aW5nKCk7XG5cbi8qKlxuICogYHB1YmxpY19saXN0ZWRfdmVyc2lvbnNgOiBub24tcGF1c2VkIHZlcnNpb25zIG9mIGxpc3RlZCBsaXN0aW5ncyAoeWFua2VkIG9uZXNcbiAqIGluY2x1ZGVkLCBmbGFnZ2VkKSwgd2l0aCBvbmx5IHRoZSBwdWJsaWMgc3Vic2V0IG9mIHRoZSBmcm96ZW4gc3BlYy5cbiAqL1xuZXhwb3J0IGNvbnN0IHB1YmxpY0xpc3RlZFZlcnNpb25zID0gcGdWaWV3KCdwdWJsaWNfbGlzdGVkX3ZlcnNpb25zJywge1xuICBpZDogdXVpZCgnaWQnKS5ub3ROdWxsKCksXG4gIGxpc3RpbmdJZDogdXVpZCgnbGlzdGluZ19pZCcpLm5vdE51bGwoKSxcbiAgcHVibGlzaGVySGFuZGxlOiB2YXJjaGFyKCdwdWJsaXNoZXJfaGFuZGxlJywgeyBsZW5ndGg6IDM5IH0pLm5vdE51bGwoKSxcbiAgbmFtZTogdmFyY2hhcignbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICB2ZXJzaW9uOiB2YXJjaGFyKCd2ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLm5vdE51bGwoKSxcbiAgaW1hZ2VEaWdlc3Q6IHZhcmNoYXIoJ2ltYWdlX2RpZ2VzdCcsIHsgbGVuZ3RoOiA3MSB9KSxcbiAgaW1hZ2VSZXBvc2l0b3J5OiB2YXJjaGFyKCdpbWFnZV9yZXBvc2l0b3J5JywgeyBsZW5ndGg6IDUxMiB9KSxcbiAgYnJlYWtpbmc6IGJvb2xlYW4oJ2JyZWFraW5nJykubm90TnVsbCgpLFxuICBkZXByZWNhdGVkQXQ6IHRpbWVzdGFtcCgnZGVwcmVjYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBjaGFuZ2Vsb2c6IHRleHQoJ2NoYW5nZWxvZycpLFxuICB2dWxuQ3JpdGljYWw6IGludGVnZXIoJ3Z1bG5fY3JpdGljYWwnKSxcbiAgdnVsbkhpZ2g6IGludGVnZXIoJ3Z1bG5faGlnaCcpLFxuICBzY2FubmVkQXQ6IHRpbWVzdGFtcCgnc2Nhbm5lZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBwdWJsaXNoZWRBdDogdGltZXN0YW1wKCdwdWJsaXNoZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIHBsdWdpblR5cGU6IHRleHQoJ3BsdWdpbl90eXBlJyksXG4gIGNvbXB1dGVUeXBlOiB0ZXh0KCdjb21wdXRlX3R5cGUnKSxcbiAgc2VjcmV0czoganNvbmIoJ3NlY3JldHMnKS4kdHlwZTxQbHVnaW5TZWNyZXRbXT4oKSxcbiAgcmVxdWlyZWRNZXRhZGF0YToganNvbmIoJ3JlcXVpcmVkX21ldGFkYXRhJykuJHR5cGU8c3RyaW5nW10+KCksXG4gIHJlcXVpcmVkVmFyczoganNvbmIoJ3JlcXVpcmVkX3ZhcnMnKS4kdHlwZTxzdHJpbmdbXT4oKSxcbiAgbmV0d29ya0VncmVzczoganNvbmIoJ25ldHdvcmtfZWdyZXNzJykuJHR5cGU8c3RyaW5nW10+KCksXG4gIHJ1bkFzUm9vdDogYm9vbGVhbigncnVuX2FzX3Jvb3QnKSxcbiAgbGljZW5zZTogdGV4dCgnbGljZW5zZScpLFxuICByZWFkbWVIdG1sOiB0ZXh0KCdyZWFkbWVfaHRtbCcpLFxuICAvLyBZYW5rZWQgdmVyc2lvbnMgc3RheSBsaXN0ZWQgKG1hcmtlZCk7IHRoZSB5YW5rIHJlYXNvbiBpc24ndCBwdWJsaWMuXG4gIHlhbmtlZDogYm9vbGVhbigneWFua2VkJykubm90TnVsbCgpLFxuICBkZXByZWNhdGlvbk1lc3NhZ2U6IHRleHQoJ2RlcHJlY2F0aW9uX21lc3NhZ2UnKSxcbiAgaW1hZ2VTb3VyY2U6IHRleHQoJ2ltYWdlX3NvdXJjZScpLFxuICBiYXNlSW1hZ2VDcmVhdGVkQXQ6IHRpbWVzdGFtcCgnYmFzZV9pbWFnZV9jcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIC8vIEFwcGVuZGVkIGluIHRoZSB2aWV3IChDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIG9ubHkgYWRkcyBjb2x1bW5zIGF0IHRoZSBlbmQpLlxuICB2dWxuQ3JpdGljYWxGaXhhYmxlOiBpbnRlZ2VyKCd2dWxuX2NyaXRpY2FsX2ZpeGFibGUnKSxcbiAgdnVsbkhpZ2hGaXhhYmxlOiBpbnRlZ2VyKCd2dWxuX2hpZ2hfZml4YWJsZScpLFxuICBzY2FuRmxhZ2dlZEF0OiB0aW1lc3RhbXAoJ3NjYW5fZmxhZ2dlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxufSkuZXhpc3RpbmcoKTtcblxuLyoqXG4gKiBgcHVibGljX2Fkdmlzb3JpZXNgOiBQVUJMSVNIRUQgYWR2aXNvcmllcyBvbiBsaXN0ZWQgbGlzdGluZ3MsIHB1YmxpYyBjb2x1bW5zXG4gKiBvbmx5IChubyBwdWJsaXNoZXIvb3JnIGlkcywgbm8gYXV0aG9yLCBubyBkcmFmdHMgb3Igd2l0aGRyYXduIHJvd3MpLlxuICovXG5leHBvcnQgY29uc3QgcHVibGljQWR2aXNvcmllcyA9IHBnVmlldygncHVibGljX2Fkdmlzb3JpZXMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLm5vdE51bGwoKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykubm90TnVsbCgpLFxuICBwdWJsaXNoZXJIYW5kbGU6IHZhcmNoYXIoJ3B1Ymxpc2hlcl9oYW5kbGUnLCB7IGxlbmd0aDogMzkgfSkubm90TnVsbCgpLFxuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHNldmVyaXR5OiB2YXJjaGFyKCdzZXZlcml0eScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxBZHZpc29yeVNldmVyaXR5PigpLm5vdE51bGwoKSxcbiAgc3VtbWFyeTogdmFyY2hhcignc3VtbWFyeScsIHsgbGVuZ3RoOiAzMDAgfSkubm90TnVsbCgpLFxuICBkZXRhaWxzSHRtbDogdGV4dCgnZGV0YWlsc19odG1sJyksXG4gIGN2ZUlkczogdGV4dCgnY3ZlX2lkcycpLmFycmF5KCkubm90TnVsbCgpLFxuICBhZmZlY3RlZFJhbmdlOiB2YXJjaGFyKCdhZmZlY3RlZF9yYW5nZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBmaXhlZFZlcnNpb246IHZhcmNoYXIoJ2ZpeGVkX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHB1Ymxpc2hlZEF0OiB0aW1lc3RhbXAoJ3B1Ymxpc2hlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxufSkuZXhpc3RpbmcoKTtcblxuLyoqXG4gKiBgcHVibGljX3Jldmlld3NgOiBQVUJMSVNIRUQgcmV2aWV3cyBvZiBwdWJsaWMgKG5vbi1wYXVzZWQpIGxpc3RpbmdzLCBwdWJsaWNcbiAqIGNvbHVtbnMgb25seSDigJQgdGhlIGF1dGhvcidzIGRpc3BsYXkgbmFtZSwgbmV2ZXIgYSB1c2VyIG9yIG9yZyBpZCDigJRcbiAqIHdpdGggdGhlIHB1Ymxpc2hlcidzIHJlcGx5LlxuICovXG5leHBvcnQgY29uc3QgcHVibGljUmV2aWV3cyA9IHBnVmlldygncHVibGljX3Jldmlld3MnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLm5vdE51bGwoKSxcbiAgbGlzdGluZ0lkOiB1dWlkKCdsaXN0aW5nX2lkJykubm90TnVsbCgpLFxuICBwdWJsaXNoZXJIYW5kbGU6IHZhcmNoYXIoJ3B1Ymxpc2hlcl9oYW5kbGUnLCB7IGxlbmd0aDogMzkgfSkubm90TnVsbCgpLFxuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHZlcnNpb246IHZhcmNoYXIoJ3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHJhdGluZzogc21hbGxpbnQoJ3JhdGluZycpLm5vdE51bGwoKSxcbiAgdGl0bGU6IHZhcmNoYXIoJ3RpdGxlJywgeyBsZW5ndGg6IDEyMCB9KSxcbiAgYm9keUh0bWw6IHRleHQoJ2JvZHlfaHRtbCcpLFxuICBhdXRob3JEaXNwbGF5TmFtZTogdmFyY2hhcignYXV0aG9yX2Rpc3BsYXlfbmFtZScsIHsgbGVuZ3RoOiAxMDAgfSksXG4gIHZlcmlmaWVkVXNlOiBib29sZWFuKCd2ZXJpZmllZF91c2UnKS5ub3ROdWxsKCksXG4gIGhlbHBmdWxDb3VudDogaW50ZWdlcignaGVscGZ1bF9jb3VudCcpLm5vdE51bGwoKSxcbiAgZWRpdGVkOiBib29sZWFuKCdlZGl0ZWQnKS5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgcHVibGlzaGVyRGlzcGxheU5hbWU6IHZhcmNoYXIoJ3B1Ymxpc2hlcl9kaXNwbGF5X25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcmVwbHlCb2R5SHRtbDogdGV4dCgncmVwbHlfYm9keV9odG1sJyksXG4gIHJlcGx5Q3JlYXRlZEF0OiB0aW1lc3RhbXAoJ3JlcGx5X2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgcmVwbHlVcGRhdGVkQXQ6IHRpbWVzdGFtcCgncmVwbHlfdXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxufSkuZXhpc3RpbmcoKTtcblxuLyoqIFRoZSBvZmZpY2lhbCBwdWJsaXNoZXIncyBoYW5kbGUgKHRoZSBzeXN0ZW0gb3JnJ3MgY2F0YWxvZykuICovXG5leHBvcnQgY29uc3QgT0ZGSUNJQUxfUFVCTElTSEVSX0hBTkRMRSA9ICdwaXBlbGluZS1idWlsZGVyJztcbi8qKiBUaGUgcGxhdGZvcm0tb3duZWQgcHVibGlzaGVyIGFub255bW91cyBzdWJtaXNzaW9ucyBsYW5kIHVuZGVyLiAqL1xuZXhwb3J0IGNvbnN0IENPTU1VTklUWV9QVUJMSVNIRVJfSEFORExFID0gJ2NvbW11bml0eSc7XG5cbi8qKiBGaXhlZCBpZHMgb2YgdGhlIHR3byBhdXRvLWFwcHJvdmFsIHJ1bGVzIHBvc3RncmVzLWluaXQuc3FsIHNlZWRzLiAqL1xuZXhwb3J0IGNvbnN0IFNFRURFRF9BVVRPX0FQUFJPVkFMX1JVTEVfSURTID0ge1xuICB2ZXJpZmllZFVwZGF0ZXM6ICcwMDAwMDAwMC0wMDAwLTQwMDAtODAwMC0wMDAwMDAwMGEwMDEnLFxuICBvZmZpY2lhbENhdGFsb2c6ICcwMDAwMDAwMC0wMDAwLTQwMDAtODAwMC0wMDAwMDAwMGEwMDInLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBUeXBlU2NyaXB0IHR5cGVzIHJlcHJlc2VudGluZyBkYXRhYmFzZSByb3dzXG4gKi9cbmV4cG9ydCB0eXBlIFB1Ymxpc2hlciA9IHR5cGVvZiBwdWJsaXNoZXIuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUHVibGlzaGVySW5zZXJ0ID0gdHlwZW9mIHB1Ymxpc2hlci4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpbkxpc3RpbmcgPSB0eXBlb2YgcGx1Z2luTGlzdGluZy4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5MaXN0aW5nSW5zZXJ0ID0gdHlwZW9mIHBsdWdpbkxpc3RpbmcuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5MaXN0aW5nVmVyc2lvbiA9IHR5cGVvZiBwbHVnaW5MaXN0aW5nVmVyc2lvbi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5MaXN0aW5nVmVyc2lvbkluc2VydCA9IHR5cGVvZiBwbHVnaW5MaXN0aW5nVmVyc2lvbi4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpbkFkdmlzb3J5ID0gdHlwZW9mIHBsdWdpbkFkdmlzb3J5LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpbkFkdmlzb3J5SW5zZXJ0ID0gdHlwZW9mIHBsdWdpbkFkdmlzb3J5LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgRWNvc3lzdGVtQXV0b0FwcHJvdmFsUnVsZSA9IHR5cGVvZiBlY29zeXN0ZW1BdXRvQXBwcm92YWxSdWxlLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIEVjb3N5c3RlbUF1dG9BcHByb3ZhbFJ1bGVJbnNlcnQgPSB0eXBlb2YgZWNvc3lzdGVtQXV0b0FwcHJvdmFsUnVsZS4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpblB1Ymxpc2hSZXF1ZXN0ID0gdHlwZW9mIHBsdWdpblB1Ymxpc2hSZXF1ZXN0LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpblB1Ymxpc2hSZXF1ZXN0SW5zZXJ0ID0gdHlwZW9mIHBsdWdpblB1Ymxpc2hSZXF1ZXN0LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgRWNvc3lzdGVtUmVzZXJ2ZWROYW1lID0gdHlwZW9mIGVjb3N5c3RlbVJlc2VydmVkTmFtZS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBFY29zeXN0ZW1SZXNlcnZlZE5hbWVJbnNlcnQgPSB0eXBlb2YgZWNvc3lzdGVtUmVzZXJ2ZWROYW1lLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgRWNvc3lzdGVtU2V0dGluZyA9IHR5cGVvZiBlY29zeXN0ZW1TZXR0aW5nLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIEVjb3N5c3RlbVNldHRpbmdJbnNlcnQgPSB0eXBlb2YgZWNvc3lzdGVtU2V0dGluZy4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIEVjb3N5c3RlbUNvbGxlY3Rpb24gPSB0eXBlb2YgZWNvc3lzdGVtQ29sbGVjdGlvbi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBFY29zeXN0ZW1Db2xsZWN0aW9uSW5zZXJ0ID0gdHlwZW9mIGVjb3N5c3RlbUNvbGxlY3Rpb24uJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5SZXZpZXcgPSB0eXBlb2YgcGx1Z2luUmV2aWV3LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpblJldmlld0luc2VydCA9IHR5cGVvZiBwbHVnaW5SZXZpZXcuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5SZXZpZXdSZXBseSA9IHR5cGVvZiBwbHVnaW5SZXZpZXdSZXBseS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5SZXZpZXdSZXBseUluc2VydCA9IHR5cGVvZiBwbHVnaW5SZXZpZXdSZXBseS4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpblJldmlld1JlcG9ydCA9IHR5cGVvZiBwbHVnaW5SZXZpZXdSZXBvcnQuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luUmV2aWV3UmVwb3J0SW5zZXJ0ID0gdHlwZW9mIHBsdWdpblJldmlld1JlcG9ydC4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpblJldmlld1ZvdGUgPSB0eXBlb2YgcGx1Z2luUmV2aWV3Vm90ZS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5SZXZpZXdWb3RlSW5zZXJ0ID0gdHlwZW9mIHBsdWdpblJldmlld1ZvdGUuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5SZXZpZXdIaXN0b3J5ID0gdHlwZW9mIHBsdWdpblJldmlld0hpc3RvcnkuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luUmV2aWV3SGlzdG9yeUluc2VydCA9IHR5cGVvZiBwbHVnaW5SZXZpZXdIaXN0b3J5LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luU3RhdHMgPSB0eXBlb2YgcGx1Z2luU3RhdHMuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luU3RhdHNJbnNlcnQgPSB0eXBlb2YgcGx1Z2luU3RhdHMuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5TdWJtaXNzaW9uID0gdHlwZW9mIHBsdWdpblN1Ym1pc3Npb24uJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luU3VibWlzc2lvbkluc2VydCA9IHR5cGVvZiBwbHVnaW5TdWJtaXNzaW9uLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgRWNvc3lzdGVtU2VhcmNoTWlzcyA9IHR5cGVvZiBlY29zeXN0ZW1TZWFyY2hNaXNzLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIEVjb3N5c3RlbVNlYXJjaE1pc3NJbnNlcnQgPSB0eXBlb2YgZWNvc3lzdGVtU2VhcmNoTWlzcy4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIEVjb3N5c3RlbU5vdGlmaWNhdGlvbiA9IHR5cGVvZiBlY29zeXN0ZW1Ob3RpZmljYXRpb25RdWV1ZS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBFY29zeXN0ZW1Ob3RpZmljYXRpb25JbnNlcnQgPSB0eXBlb2YgZWNvc3lzdGVtTm90aWZpY2F0aW9uUXVldWUuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQaXBlbGluZVN0ZXBNYW5pZmVzdCA9IHR5cGVvZiBwaXBlbGluZVN0ZXBNYW5pZmVzdC4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQaXBlbGluZVN0ZXBNYW5pZmVzdEluc2VydCA9IHR5cGVvZiBwaXBlbGluZVN0ZXBNYW5pZmVzdC4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBsdWdpbkluc3RhbGwgPSB0eXBlb2YgcGx1Z2luSW5zdGFsbC4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5JbnN0YWxsSW5zZXJ0ID0gdHlwZW9mIHBsdWdpbkluc3RhbGwuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQbHVnaW5JbnN0YWxsUG9saWN5ID0gdHlwZW9mIHBsdWdpbkluc3RhbGxQb2xpY3kuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luSW5zdGFsbFBvbGljeUluc2VydCA9IHR5cGVvZiBwbHVnaW5JbnN0YWxsUG9saWN5LiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGx1Z2luU2VjdXJpdHlOb3RpZmljYXRpb25QcmVmID0gdHlwZW9mIHBsdWdpblNlY3VyaXR5Tm90aWZpY2F0aW9uUHJlZi4kaW5mZXJTZWxlY3Q7XG5cbmV4cG9ydCB0eXBlIFBsdWdpbkFkdmlzb3J5RGVsaXZlcnkgPSB0eXBlb2YgcGx1Z2luQWR2aXNvcnlEZWxpdmVyeS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5BZHZpc29yeURlbGl2ZXJ5SW5zZXJ0ID0gdHlwZW9mIHBsdWdpbkFkdmlzb3J5RGVsaXZlcnkuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQdWJsaWNMaXN0aW5nID0gdHlwZW9mIHB1YmxpY0xpc3RpbmdzLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFB1YmxpY0xpc3RlZFZlcnNpb24gPSB0eXBlb2YgcHVibGljTGlzdGVkVmVyc2lvbnMuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUHVibGljQWR2aXNvcnkgPSB0eXBlb2YgcHVibGljQWR2aXNvcmllcy4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQdWJsaWNSZXZpZXcgPSB0eXBlb2YgcHVibGljUmV2aWV3cy4kaW5mZXJTZWxlY3Q7XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -29,7 +29,9 @@ export * from './api/viewer-context.js';
29
29
  export * from './api/crud-service.js';
30
30
  export { parseSemver, compareSemverParts, compareSemver, isVersionRange, satisfiesVersionSpec, semverOrderBy, } from './api/semver-range.js';
31
31
  export { normalizeQuery, searchPublicListings, listPublicCategories, getPublicListing, getPublicListedVersion, listPublicReviews, listPublicListingsForSitemap, type DirectoryTrustTier, type DirectorySort, DIRECTORY_SORTS, DIRECTORY_TIERS, type DirectorySearchParams, type ReviewSort, REVIEW_SORTS, type PublicListingRow, } from './api/public-directory.js';
32
- export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, listingBlock, advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, type ConsumptionPolicy, DEFAULT_CONSUMPTION_POLICY, type ResolutionRefusal, type ResolutionScope, type ListingDataSource, type ListingResolved, type OrgListingState, } from './api/plugin-resolution.js';
32
+ export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, type ConsumptionPolicy, DEFAULT_CONSUMPTION_POLICY, } from './api/plugin-consumption-policy.js';
33
+ export { advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, } from './api/plugin-advisories.js';
34
+ export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, type ResolutionRefusal, type ResolutionScope, type ListingDataSource, type ListingResolved, type OrgListingState, } from './api/plugin-resolution.js';
33
35
  export { runSoftDeletePurge, createSoftDeletePurgeScheduler, type PurgeableEntity, } from './api/soft-delete-sweep.js';
34
36
  export { type BuildHealth, type DoraLevel, type DoraMetrics, type DoraOptions, type DoraTrendPoint, type IncidentListItem, type ReportingSettings, type IncidentTestResult, type IngestMetric, type PluginRuntimeFilter, type PluginRuntimeStats, ReportingService, reportingService, } from './api/reporting-service.js';
35
37
  export { type PluginFilter, type PipelineFilter, type PipelineTemplateFilter, type MessageFilter, type CompliancePolicyFilter, type ComplianceRuleFilter, type ComplianceExemptionFilter, type ComplianceAuditFilter, type ComplianceScanFilter, } from './core/query-filters.js';