@c8y/ngx-components 1018.0.90 → 1018.0.92

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.
@@ -181,6 +181,10 @@ export declare class ApplicationOptions {
181
181
  * Allows to opt out of supporting/loading plugins for this application.
182
182
  */
183
183
  noPlugins?: boolean;
184
+ /**
185
+ * Allows to opt out of the version warning which is shown in the dev tools.
186
+ */
187
+ noVersionWarning?: boolean;
184
188
  }
185
189
  export interface RemotePlugins {
186
190
  /**
@@ -5,4 +5,4 @@
5
5
  */
6
6
  export class ApplicationOptions {
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25PcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vQXBwbGljYXRpb25PcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0NBd0w5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuLypcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tV0FSTklORy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGhpcyBmaWxlIGhhcyBhbiAqZXhhY3QqIGNvcHkgaW4gcGFja2FnZXMvY2xpL3NyYy93ZWJwYWNrLy5cbiAqIEFueSBjaGFuZ2VzIHRvIHRoaXMgZmlsZSBtdXN0IGJlIHJlZmxlY3RlZCB0aGVyZSwgdG9vLlxuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25PcHRpb25zIHtcbiAgLyoqIEFwcGxpY2F0aW9uIG5hbWUgKHNhdmVkIHRvIHRoZSBzZXJ2ZXIpLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBBcHBsaWNhdGlvbiBjb250ZXh0IHBhdGggKHNhdmVkIHRvIHRoZSBzZXJ2ZXIpLiAqL1xuICBjb250ZXh0UGF0aDogc3RyaW5nO1xuICAvKiogQXBwbGljYXRpb24ga2V5IChzYXZlZCB0byB0aGUgc2VydmVyKS4gKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBUaGUgdmVyc2lvbiBvZiB0aGUgYXBwbGljYXRpb24gKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqIFRoZSB2ZXJzaW9uIG9mIHRoZSB1c2VkIFdlYiBTREsgdmVyc2lvbiAqL1xuICB3ZWJTZGtWZXJzaW9uPzogc3RyaW5nO1xuICAvKiogU2V0IHRvIGB0cnVlYCBpZiB0aGUgYXBwbGljYXRpb24gaXMgaHlicmlkIGFuZCB1c2VzIEFuZ3VsYXIgYW5kIEFuZ3VsYXJKUyBzaW11bHRhbmVvdXNseS4gKi9cbiAgdXBncmFkZT86IGJvb2xlYW47XG4gIC8qKiBQYXRoIHRvIHRoZSBicmFuZGluZyBlbnRyeSBmaWxlLiAoU2V0IGl0IHRvIGZhbHNlIHRvIGRpc2FibGUgYW55IHN0eWxpbmcuIFlvdSBjYW4gaGFuZGxlIHRoZSBzdHlsaW5nIHRoZW4gb24geW91ciBvd24gZS5nLiBpbiBhbiBhbmd1bGFyLmpzb24gZmlsZSB1c2luZyBuZy1jbGkpICovXG4gIGJyYW5kaW5nRW50cnk/OiBzdHJpbmcgfCBib29sZWFuO1xuICAvKiogUGF0aCB0byB0c2NjbmZpZy5qc29uIGZpbGUgaWYgVHlwZVNjcmlwdCBpcyB1c2VkIChkZWZhdWx0OiAuL3RzY29uZmlnLmpzb24pLiAqL1xuICB0c0NvbmZpZ1BhdGg/OiBzdHJpbmc7XG4gIC8qKiBFbnRyeSBtb2R1bGUgZm9yIEFuZ3VsYXIgY29tcGlsZXIgKG9ubHkgdXNlZCB3aXRoIGxhenkgbG9hZGVkIHJvdXRlcyksIGUuZy4gYCdhcHAubW9kdWxlLnRzI0FwcE1vZHVsZSdgLiAqL1xuICBlbnRyeU1vZHVsZT86IHN0cmluZztcbiAgLyoqIFBhdGggdG8gY3VzdG9tIGluZGV4Lmh0bWwgKG90aGVyd2lzZSBkZWZhdWx0IG9uZSB3aWxsIGJlIHVzZWQpLiAqL1xuICBpbmRleFRlbXBsYXRlPzogc3RyaW5nO1xuICAvKiogVVJMIHRvIGR5bmFtaWNhbGx5IGZldGNoZWQgb3B0aW9ucy4gKi9cbiAgZHluYW1pY09wdGlvbnNVcmw/OiBzdHJpbmc7XG4gIC8qKiBVUkwgdG8gZmF2aWNvbi4gKi9cbiAgZmF2aWNvblVybD86IHN0cmluZztcbiAgLyoqIFVSTCB0byAqLmNzcyBmaWxlIHdoaWNoIHdpbGwgcmVwbGFjZSBkZWZhdWx0IGJyYW5kaW5nLiAqL1xuICBicmFuZGluZ1VybD86IHN0cmluZztcbiAgLyoqIE9iamVjdCB3aXRoIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBDU1MgY3VzdG9tIHZhcmlhYmxlcy4gKi9cbiAgYnJhbmRpbmdDc3NWYXJzPzogQnJhbmRpbmdDc3NWYXJzO1xuICAvKipcbiAgICogQWxsb3dzIGZvciBhZGRpbmcgb3Igb3ZlcnJpZGluZyBsYW5ndWFnZXMgYXZhaWxhYmxlIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogSXRzIGtleXMgYXJlIGxhbmd1YWdlIGNvZGVzIGFuZCBpdHMgdmFsdWVzIGFyZSBvYmplY3RzIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICAgKlxuICAgKiAtIGBuYW1lYDogRW5nbGlzaCBuYW1lIG9mIHRoZSBsYW5ndWFnZSxcbiAgICogLSBgbmF0aXZlTmFtZWA6IG5hdGl2ZSBuYW1lIG9mIHRoZSBsYW5ndWFnZSxcbiAgICogLSBgdXJsYDogZnVsbCBVUkwgdG8gSlNPTiBmaWxlIHdpdGggY29tcGlsZWQgdHJhbnNsYXRpb25zO1xuICAgKiAgICBpZiBub3QgZGVmaW5lZCwgdHJhbnNsYXRpb25zIHdpbGwgYmUgbG9hZGVkIGZyb20gYCR7bG9jYWxlUGF0aH0vJHtsYW5nQ29kZX0uanNvbmAuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYGpzb25cbiAgICogXCJsYW5ndWFnZXNcIjoge1xuICAgKiAgIFwiZGVcIjoge1xuICAgKiAgICAgXCJuYW1lXCI6IFwiR2VybWFuXCIsXG4gICAqICAgICBcIm5hdGl2ZU5hbWVcIjogXCJEZXV0c2NoXCIsXG4gICAqICAgICBcInVybFwiOiBcIi9hcHBzL3B1YmxpYy91aS1hc3NldHMvZGUuanNvblwiXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgbGFuZ3VhZ2VzPzogTGFuZ3VhZ2VzO1xuICAvKipcbiAgICogQWxsb3dzIGZvciBhZGRpbmcgY3VzdG9tIHRyYW5zbGF0aW9ucy4gSXQgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkuXG4gICAqXG4gICAqIEl0cyBrZXlzIGFyZSBsYW5ndWFnZSBjb2RlcyAoaHR0cHM6Ly9jdW11bG9jaXR5LmNvbS9ndWlkZXMvdXNlcnMtZ3VpZGUvZ2V0dGluZy1zdGFydGVkLyNhLW5hbWUtbGFuZ3VhZ2VzLWEtYXZhaWxhYmxlLWxhbmd1YWdlcylcbiAgICogYW5kIGl0cyB2YWx1ZXMgYXJlIG9iamVjdHMgd2l0aCBrZXktdmFsdWUgcGFpcnMsIHdoZXJlIHRoZSBrZXkgaXMgdGhlIG9yaWdpbmFsIHN0cmluZyBpbiBFbmdsaXNoIGFuZCB0aGUgdmFsdWUgLSBpdHMgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqIC0gYEhvbWVgOiBcIlN0YXJ0c2VpdGVcIlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSB5b3UgY2FuIGFkZCB0aGUgdHJhbnNsYXRpb24gb2YgeW91ciBjdXN0b20gY29va2llIGJhbm5lciBjb25maWd1cmVkIGluIHRoZSBicmFuZGluZyBzZXR0aW5nczpcbiAgICogYGBganNvblxuICAgKiBcImkxOG5FeHRyYVwiOiB7XG4gICAqICAgXCJkZVwiOiB7XG4gICAqICAgICBcIkFib3V0IGNvb2tpZXMgb24gQ3VtdWxvY2l0eSBJb1RcIjogXCJJbmZvcm1hdGlvbmVuIHp1IENvb2tpZXMgaW4gQ3VtdWxvY2l0eSBJb1RcIixcbiAgICogICAgIFwiQ2xpY2sgQWdyZWUgYW5kIFByb2NlZWQgdG8gYWNjZXB0IGNvb2tpZXMgYW5kIGdvIGRpcmVjdGx5IHRvIHRoZSBwbGF0Zm9ybSBvciBjbGljayBvbiBQcml2YWN5IFBvbGljeSB0byBzZWUgZGV0YWlsZWQgZGVzY3JpcHRpb25zIG9mIHRoZSB1c2VkIGNvb2tpZXMuXCI6IFwiS2xpY2tlbiBTaWUgYXVmIFp1c3RpbW1lbiB1bmQgZm9ydGZhaHJlbiwgdW0gQ29va2llcyB6dSBha3plcHRpZXJlbiB1bmQgZGlyZWt0IHp1ciBQbGF0dGZvcm0genUgZ2VsYW5nZW4sIG9kZXIga2xpY2tlbiBTaWUgYXVmIERhdGVuc2NodXR6cmljaHRsaW5pZSwgdW0gZGV0YWlsbGllcnRlIEJlc2NocmVpYnVuZ2VuIGRlciB2ZXJ3ZW5kZXRlbiBDb29raWVzIGFuenV6ZWlnZW4uXCJcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBpMThuRXh0cmE/OiBJMThuRXh0cmE7XG4gIC8qKiBQYXRoIHRvIHRoZSBmb2xkZXIgZnJvbSB3aGljaCAqLnBvIGZpbGVzIHdpbGwgYmUgbG9hZGVkLiAqL1xuICBsb2NhbGVQYXRoPzogc3RyaW5nO1xuICAvKiogQXJyYXkgb2YgVVJMcyB0byBhZGRpdGlvbmFsICouY3NzIGZpbGVzIHRvIGJlIGxvYWRlZCBhdCBydW50aW1lLiAqL1xuICBleHRyYUNzc1VybHM/OiBzdHJpbmdbXTtcbiAgLyoqIERvY3VtZW50YXRpb24gbGlua3Mgc2V0dGluZ3MuICovXG4gIGRvY3M/OiBEb2NzO1xuICAvKiogQXBwbGljYXRpb24gaWNvbiB0byBiZSBkaXNwbGF5ZWQgaW4gYXBwIHN3aXRjaGVyIGFuZCBoZWFkZXIgYmFyLiAqL1xuICBpY29uPzogSWNvbjtcblxuICAvLyBUaGVzZSBhcmUgdGhlIG9sZCBvcHRpb25zXG4gIC8qKiBIaWRlIGFwcGxpY2F0aW9uIGluIGFwcCBzd2l0Y2hlciAoc2F2ZWQgdG8gdGhlIHNlcnZlcikuICovXG4gIG5vQXBwU3dpdGNoZXI/OiBib29sZWFuO1xuICAvKiogSFRNTCBwYWdlIHRpdGxlLiAqL1xuICBnbG9iYWxUaXRsZT86IHN0cmluZztcbiAgLyoqIEhpZGUgXCJwb3dlcmVkIGJ5XCIgYW5kIHZlcnNpb24gaW5mbyBhdCB0aGUgYm90dG9tIG9mIHRoZSBuYXZpZ2F0b3IgYW5kIGluIHRoZSByaWdodCBkcmF3ZXIuICovXG4gIGhpZGVQb3dlcmVkPzogYm9vbGVhbjtcbiAgLyoqIEhpZGVzIHRoZSBcIlBsYXRmb3JtIGluZm9ybWF0aW9uXCIgaW4gdGhlIHJpZ2h0IGRyYXdlciwgd2lsbCBvdmVycnVsZSB0aGUgXCJoaWRlUG93ZXJlZFwiIG9wdGlvbiAqL1xuICBoaWRlUGxhdGZvcm1JbmZvcm1hdGlvbj86IGJvb2xlYW47XG4gIC8qKiBVUkwgdG8gc3VwcG9ydCBwYWdlIChzZXQgdG8gYGZhbHNlYCB0byBoaWRlIHRoZSBsaW5rKS4gKi9cbiAgc3VwcG9ydFVybD86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZXBsYWNlbWVudCBzdHJpbmcgZm9yIGB1c2VyYCBmaWVsZCBpbiBhdWRpdCBsb2dzIGZvciBhY3Rpb25zIHBlcmZvcm1lZCBieSBhIHN1cHBvcnQgdXNlclxuICAgKiAoYXZhaWxhYmxlIHBsYWNlaG9sZGVyczogYHt7c3VwcG9ydF91c2VyfX1gLCBge3tzdXBwb3J0ZWRfdXNlcn19YCkuXG4gICAqL1xuICBzdXBwb3J0VXNlclN0cmluZz86IHN0cmluZztcbiAgLyoqXG4gICAqIERpc2FibGVzIHJlYWx0aW1lIHVwZGF0ZXMgb24gdGhlIG1hcCB3aWRnZXQgYW5kIG1hcHMgaW4gZ2VuZXJhbC5cbiAgICovXG4gIG1hcFdpZGdldFJlYWx0aW1lRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGFkanVzdCB0aGUgZGVmYXVsdCBwYWdlc2l6ZSBvZiAxMDAgaXRlbXMgb2YgdGhlIG1hcCB3aWRnZXQgYW5kIG1hcHMgaW4gZ2VuZXJhbC5cbiAgICovXG4gIG1hcFdpZGdldFBhZ2VTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGhpZGUgdGhlIGhpbnQgdGhhdCB0aGVyZSBhcmUgbW9yZSBkZXZpY2VzIHdpdGggZ2VvIGNvb3JkaW5hdGVzIHRoZW4gZGlzcGxheWVkIG9uIHRoZSBtYXAgd2lkZ2V0IGFuZCBtYXBzIGluIGdlbmVyYWwuXG4gICAqL1xuICBtYXBXaWRnZXRIaWRlTWF4RGV2aWNlT25NYXBIaW50PzogYm9vbGVhbjtcbiAgLyoqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSByaWdodCBkcmF3ZXIuICovXG4gIHJpZ2h0RHJhd2VyPzogYm9vbGVhbjtcbiAgLyoqIEVuYWJsZSBvciBkaXNhYmxlIGJyZWFkY3J1bWJzIGluIHRoZSBoZWFkZXIgZm9yIGdyb3VwcyBhbmQgZGV2aWNlcyAoZGVmYXVsdDogZmFsc2UpLiAqL1xuICBicmVhZGNydW1icz86IGJvb2xlYW47XG4gIC8qKiBDb2xsYXBzZSBuYXZpZ2F0b3Igb24gaW5pdGlhbCBsb2FkLiAqL1xuICBoaWRlTmF2aWdhdG9yPzogYm9vbGVhbjtcbiAgLyoqIFNob3cgdGFicyBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS4gKi9cbiAgdGFic0hvcml6b250YWw/OiBib29sZWFuO1xuICAvKiogQWRkaXRpb25hbCBsaW5rIHRvIGRpc3BsYXkgb24gbG9naW4gc2NyZWVuLiAqL1xuICBsb2dpbkV4dHJhTGluaz86IExvZ2luRXh0cmFMaW5rO1xuICAvKiogRW5hYmxlIG9yIGRpc2FibGUgc3RvcmFnZSBsaW1pdGF0aW9uIGZlYXR1cmUuICovXG4gIHN0b3JhZ2VMaW1pdGF0aW9uRmVhdHVyZUVuYWJsZWQ/OiBib29sZWFuO1xuICAvKiogTmFtZSBvZiBjb21wYW55IGhhbmRsaW5nIHN1cHBvcnQgcmVxdWVzdHMgZnJvbSBhcHAgdXNlcnMgKGRpc3BsYXllZCBpbiBub3RpZmljYXRpb24gbWVzc2FnZSkuICovXG4gIGNvbXBhbnlOYW1lPzogc3RyaW5nO1xuICAvKiogVVJMIHRlbXBsYXRlIGZvciBkb2N1bWVudGF0aW9uIGxpbmtzIChkZWZhdWx0OiBgJyR7ZG9jc0Jhc2VVcmx9JHtwYXJ0aWFsVXJsfSdgKS4gKi9cbiAgZ3VpZGVIcmVmVGVtcGxhdGU/OiBzdHJpbmc7XG4gIC8qKiBCYXNlIFVSTCBmb3IgZG9jdW1lbnRhdGlvbiBsaW5rcyAoaW5jbHVkZSBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXIsIGlmIHlvdSB3YW50IHZlcnNpb25lZCBsaW5rcykuICovXG4gIGRvY3NCYXNlVXJsPzogc3RyaW5nO1xuICAvKiogQ1NQIHN0cmluZyB0byBiZSBhcHBsaWVkIHRvIGBpbmRleC5odG1sYCBieSByZXBsYWNpbmcgZGVmYXVsdCB2YWx1ZXMuICovXG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeT86IHN0cmluZztcbiAgLyoqIEVuYWJsZXMgY2xvdWQgc2Vuc29yIHdpemFyZCAqL1xuICBzZW5zb3JQaG9uZT86IGJvb2xlYW47XG4gIC8qKiBTaG93IG9yIGhpZGUgYSBuZXdzbGV0dGVyIHN1YnNjcmlwdGlvbiBjaGVja2JveCBpbiBlZGl0IHVzZXIgbW9kYWwuICovXG4gIG5ld3NsZXR0ZXI/OiBib29sZWFuO1xuICAvKiogUGF0aCB0byB0aGUgcm9vdCBub2RlX21vZHVsZXMgZGlyICh1c2VmdWwgd2hlbiB3b3JraW5nIGluIG1vbm9yZXBvIHNldHVwLCBlLmcuIHlhcm4gd29ya3NwYWNlcykuICovXG4gIHJvb3ROb2RlTW9kdWxlc1BhdGg/OiBzdHJpbmc7XG4gIC8qKiBDb29raWUgQmFubmVyIGNvbmZpZ3VyYXRpb24gKi9cbiAgY29va2llQmFubmVyPzogQ29va2llQmFubmVyQ29uZmlndXJhdGlvbjtcbiAgLyoqIENvb2tpZSBwcmVmZXJlbmNlcyBjb25maWd1cmF0aW9uLiBIZXJlIHlvdSBjYW4gZW5hYmxlIG9yIGRpc2FibGUgY29va2llIGNhdGVnb3JpZXMgKi9cbiAgY29va2llUHJlZmVyZW5jZXM/OiBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb247XG4gIC8qKiBBIGtleSBmb3IgdGhlIHByb2R1Y3QgZXhwZXJpZW5jZSBzb2Z0d2FyZSBHYWluc2lnaHQuICovXG4gIGdhaW5zaWdodEtleT86IHN0cmluZztcbiAgLyoqIE5nTW9kdWxlIGV4cG9ydCBmb3IgcGx1Z2lucy4gKi9cbiAgZXhwb3J0cz86IFBsdWdpbnNFeHBvcnRzW107XG4gIC8qKiBMaXN0IG9mIGltcG9ydGVkIHJlbW90ZSBwbHVnaW5zLiAqL1xuICByZW1vdGVzPzogUmVtb3RlUGx1Z2lucztcbiAgLyoqIFRoZSBwYWNrYWdlIHNvdXJjZSBhIGFwcGxpY2F0aW9uIG9yaWdpbnMgZnJvbSBhcyBJQXBwbGljYXRpb24gb3Igc2ltcGx5IHRoZSBpZCBvZiB0aGUgc291cmNlICovXG4gIHNvdXJjZT86IHN0cmluZyB8IG51bWJlciB8IElBcHBsaWNhdGlvbjtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXNzZXRzIHRvIGNvcHkgdG8gdGhlIGJ1aWxkIG91dHB1dC5cbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvY29weS13ZWJwYWNrLXBsdWdpbiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgcGF0dGVybnMgdG8gYWRkIGhlcmUuXG4gICAqL1xuICBjb3B5PzogW107XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gZW5hYmxlIG9yIGRpc2FibGUgY29udGV4dCBoZWxwLCBvciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBiYXNlIFVSTCB1c2VkIHRvIGxvYWQgaXRzIGNvbnRlbnRzLlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgY29udGV4dCBoZWxwIHVzZXMgdGhlIHNhbWUgYmFzZSBVUkwgYXMgZGVmaW5lZCBpbiB0aGUgYGRvY3NCYXNlVXJsYCBvcHRpb25cbiAgICogKGlmIHRoaXMgb3B0aW9uIGlzIHVuZGVmaW5lZCwgdGhlbiB0aGUgZm9sbG93aW5nIHZhbHVlIHdpbGwgYmUgdXNlZDogYGh0dHBzOi8vd3d3LmN1bXVsb2NpdHkuY29tL2d1aWRlcy97e3ZlcnNpb259fWApLlxuICAgKiBBbHRlcm5hdGl2ZWx5LCBpZiBhIHN0cmluZyBpcyBwcm92aWRlZCBoZXJlLCBpdCdsbCBiZSB1c2VkIGFzIHRoZSBiYXNlIFVSTFxuICAgKiBhbmQgYW55IGB7eyB2ZXJzaW9uIH19YCBwbGFjZWhvbGRlciB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIHJlbGV2YW50IGRvY3MgdmVyc2lvbi5cbiAgICovXG4gIGNvbnRleHRIZWxwPzogYm9vbGVhbiB8IHN0cmluZztcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGNvY2twaXQgYW5kIGRldmljZW1hbmFnZW1lbnQgdXNlIHRoZSBvbmx5Um9vdHMgcXVlcnkgdG8gcmVzb2x2ZSByb290IG5vZGVzLiBUaGlzXG4gICAqIGNvdWxkIGxlYWQgdG8gcGVyZm9ybWFuY2UgaXNzdWVzLCBpZiBhIGN1c3RvbWVyIGhhcyBhIGxvdCBvZiByb290IG5vZGVzLiBUaGVyZWZvcmUgeW91IGNhbiBkaXNhYmxlXG4gICAqIHRoZSB1c2Ugb2YgdGhpcyBxdWVyeSB3aXRoIHRoaXMgZmxhZy5cbiAgICovXG4gIGRpc2FibGVPbmx5Um9vdHNRdWVyeT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gZm9yY2Ugc2hvd2luZyB0aGUgc2V0dXAgd2l6YXJkLlxuICAgKi9cbiAgZm9yY2VTZXR1cD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGFwcGxpY2F0aW9uIG5lZWRzIHRvIHNob3cgdGhlIHNldHVwIHdpemFyZC5cbiAgICovXG4gIGlzU2V0dXA/OiBib29sZWFuO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCBhIFdlYlNESyBhcHAgcmVxdWlyZXMgdGhlIHVzZXIgdG8gYmUgbG9nZ2VkIGluLlxuICAgKiBJbiBjYXNlIHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AganVzdCBhIHN0YXRpYyBhcHBsaWNhdGlvbiwgdGhhdCBkb2VzIG5vdCByZXF1aXJlIGFueSBraW5kIG9mIGFjY2VzcyB0byB0aGUgYmFja2VuZCxcbiAgICogeW91IGNhbiB1c2UgdGhpcyBmbGFnIHRvIGRpc2FibGUgdGhlIGxvZ2luIHNjcmVlbi5cbiAgICogTk9URTogbm90IGFsbCBXZWJTREsgY29tcG9uZW50cyBzdXBwb3J0IHRoaXMsIHNvbWUgbWlnaHQgcmVxdWlyZSB0aGUgdXNlciB0byBiZSBsb2dnZWQgaW4gYW5kIHdvbid0IHdvcmsuXG4gICAqL1xuICBub0xvZ2luPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBvcHQgb3V0IG9mIHN1cHBvcnRpbmcvbG9hZGluZyBwbHVnaW5zIGZvciB0aGlzIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgbm9QbHVnaW5zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVQbHVnaW5zIHtcbiAgLyoqXG4gICAqIEEga2V5IHZhbHVlIHBhaXIsIHdoaWxlIHRoZSB2YWx1ZSBpcyBhbiBhcnJheSBvZiBtb2R1bGVzIHRvIGxvYWQgYW5kIHRoZVxuICAgKiBrZXkgaXMgdGhlIGNvbnRleHQgcGF0aC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBganNcbiAgICoge1xuICAgKiAgICAnY29ja3BpdCc6IFsnSG9tZURhc2hib2FyZE1vZHVsZScsICdEYXRhRXhwbG9yZXJEYXNoYm9hcmQnXSxcbiAgICogICAgJ3dpZGdldC1wYWNrYWdlQDEuMC4wJzogWydFeHRlbmRlZE1hcFdpZGdldCddXG4gICAqIH1cbiAgICogYGBcbiAgICovXG4gIFtrZXk6IHN0cmluZ106IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbnNFeHBvcnRzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBbmd1bGFyIG1vZHVsZSBjbGFzcy5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmaWxlIHBhdGggdG8gdGhlIG1vZHVsZSB0eXBlc2NyaXB0IGZpbGUuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBzaG9ydCBkZXNjcmlwdGlvbiBhYm91dCB3aGF0IHRoZSBtb2R1bGUgZG9lcy5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb3dzIHRvIHNjb3BlIHRoZSBwbHVnaW4gdG8gY2VydGFpbiBhcHBsaWNhdGlvbnMuIEUuZy4gaWYgeW91XG4gICAqIGFkZCBoZXJlICdjb2NrcGl0JywgdGhlIHBsdWdpbiBjYW4gb25seSBiZSBpbnN0YWxsZWQgaW50byBhblxuICAgKiBhcHBsaWNhdGlvbiBvbiB0aGUgY29udGV4dFBhdGggYGFwcHMvY29ja3BpdGAuIFlvdSBjYW4gdXNlIGNvbW1hXG4gICAqIHNlcGFyYXRlZCB2YWx1ZXMsIGFzdGVyaXNrIChkZWZhdWx0KSB0byBhbGxvdyBhbGwgYXBwbGljYXRpb25zIG9yXG4gICAqIGBzZWxmYCB0byBsaW1pdCB0aGUgcGx1Z2luIHRvIHRoZSBjdXJyZW50IHNvbHV0aW9uLlxuICAgKi9cbiAgc2NvcGU/OiAnKicgfCAnc2VsZicgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29va2llQmFubmVyQ29uZmlndXJhdGlvbiB7XG4gIC8qKiBIZXJlIHlvdSBjYW4gc2V0IHRoZSB0aXRsZSBvZiBDb29raWUgQmFubmVyICovXG4gIGNvb2tpZUJhbm5lclRpdGxlPzogc3RyaW5nO1xuICAvKiogSGVyZSB5b3UgY2FuIHNldCB0aGUgVGV4dCBvZiBDb29raWUgQmFubmVyICovXG4gIGNvb2tpZUJhbm5lclRleHQ/OiBzdHJpbmc7XG4gIC8qKiBIZXJlIHlvdSBjYW4gc2V0IHRoZSBwb2xpY3lVcmwgb2YgQ29va2llIEJhbm5lciAqL1xuICBwb2xpY3lVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29va2llUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uIHtcbiAgLyoqIFRoaXMgY2F0ZWdvcnkgaW5jbHVkZXMgZS5nLiBjb29raWVzIHJlbGF0ZWQgdG8gbG9nZ2luZyBpbiAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuICAvKiogVGhpcyBjYXRlZ29yeSBpbmNsdWRlcyBlLmcuIHRyYWNraW5nIGNvb2tpZXMgICovXG4gIGZ1bmN0aW9uYWw/OiBib29sZWFuIHwgc3RyaW5nO1xuICAvKiogVGhpcyBjYXRlZ29yeSBpbmNsdWRlcyBlLmcuIGNvb2tpZXMgcmVsYXRlZCB0byBhZHZlcnRpc2luZyAgKi9cbiAgbWFya2V0aW5nPzogYm9vbGVhbiB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbkV4dHJhTGluayB7XG4gIHVybDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljb24ge1xuICBjbGFzcz86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3Mge1xuICAvKiogSGlkZSBkZWZhdWx0IGxpbmtzIHRvIGRvY3VtZW50YXRpb24uICovXG4gIG5vRGVmYXVsdDogYm9vbGVhbjtcbiAgLyoqIExpc3Qgb2YgcmVnZXggc3RyaW5ncy4gTWF0Y2hpbmcgZGVmYXVsdCBkb2NzIFVSTHMgd2lsbCBiZSBoaWRkZW4uICovXG4gIGV4Y2x1ZGVEZWZhdWx0OiBzdHJpbmdbXTtcbiAgLyoqIEFkZGl0aW9uYWwgbGlua3MgdG8gYmUgZGlzcGxheWVkLiAqL1xuICBsaW5rczogTGlua3NbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rcyB7XG4gIC8qKiBJY29uIGNsYXNzZXMgd2l0aCBgYzh5LWljb25gLCBlLmcuIGBjOHktaWNvbiBjOHktaWNvbi1hZGQtdXNlcmAgb3IgYGM4eS1pY29uIGM4eS1pY29uLWRldmljZS1jb25uZWN0YC4gKi9cbiAgaWNvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgdHlwZTogJ2RvYycgfCAncXVpY2tsaW5rJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJMThuRXh0cmEge1xuICBbbGFuZ0NvZGU6IHN0cmluZ106IEkxOG5FeHRyYUxhbmdDb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5FeHRyYUxhbmdDb2RlIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlcyB7XG4gIFtsYW5nQ29kZTogc3RyaW5nXTogTGFuZ3VhZ2VzTGFuZ0NvZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2VzTGFuZ0NvZGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIG5hdGl2ZU5hbWU6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRpbmdDc3NWYXJzIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25PcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vQXBwbGljYXRpb25PcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0NBNEw5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuLypcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tV0FSTklORy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGhpcyBmaWxlIGhhcyBhbiAqZXhhY3QqIGNvcHkgaW4gcGFja2FnZXMvY2xpL3NyYy93ZWJwYWNrLy5cbiAqIEFueSBjaGFuZ2VzIHRvIHRoaXMgZmlsZSBtdXN0IGJlIHJlZmxlY3RlZCB0aGVyZSwgdG9vLlxuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25PcHRpb25zIHtcbiAgLyoqIEFwcGxpY2F0aW9uIG5hbWUgKHNhdmVkIHRvIHRoZSBzZXJ2ZXIpLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBBcHBsaWNhdGlvbiBjb250ZXh0IHBhdGggKHNhdmVkIHRvIHRoZSBzZXJ2ZXIpLiAqL1xuICBjb250ZXh0UGF0aDogc3RyaW5nO1xuICAvKiogQXBwbGljYXRpb24ga2V5IChzYXZlZCB0byB0aGUgc2VydmVyKS4gKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBUaGUgdmVyc2lvbiBvZiB0aGUgYXBwbGljYXRpb24gKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqIFRoZSB2ZXJzaW9uIG9mIHRoZSB1c2VkIFdlYiBTREsgdmVyc2lvbiAqL1xuICB3ZWJTZGtWZXJzaW9uPzogc3RyaW5nO1xuICAvKiogU2V0IHRvIGB0cnVlYCBpZiB0aGUgYXBwbGljYXRpb24gaXMgaHlicmlkIGFuZCB1c2VzIEFuZ3VsYXIgYW5kIEFuZ3VsYXJKUyBzaW11bHRhbmVvdXNseS4gKi9cbiAgdXBncmFkZT86IGJvb2xlYW47XG4gIC8qKiBQYXRoIHRvIHRoZSBicmFuZGluZyBlbnRyeSBmaWxlLiAoU2V0IGl0IHRvIGZhbHNlIHRvIGRpc2FibGUgYW55IHN0eWxpbmcuIFlvdSBjYW4gaGFuZGxlIHRoZSBzdHlsaW5nIHRoZW4gb24geW91ciBvd24gZS5nLiBpbiBhbiBhbmd1bGFyLmpzb24gZmlsZSB1c2luZyBuZy1jbGkpICovXG4gIGJyYW5kaW5nRW50cnk/OiBzdHJpbmcgfCBib29sZWFuO1xuICAvKiogUGF0aCB0byB0c2NjbmZpZy5qc29uIGZpbGUgaWYgVHlwZVNjcmlwdCBpcyB1c2VkIChkZWZhdWx0OiAuL3RzY29uZmlnLmpzb24pLiAqL1xuICB0c0NvbmZpZ1BhdGg/OiBzdHJpbmc7XG4gIC8qKiBFbnRyeSBtb2R1bGUgZm9yIEFuZ3VsYXIgY29tcGlsZXIgKG9ubHkgdXNlZCB3aXRoIGxhenkgbG9hZGVkIHJvdXRlcyksIGUuZy4gYCdhcHAubW9kdWxlLnRzI0FwcE1vZHVsZSdgLiAqL1xuICBlbnRyeU1vZHVsZT86IHN0cmluZztcbiAgLyoqIFBhdGggdG8gY3VzdG9tIGluZGV4Lmh0bWwgKG90aGVyd2lzZSBkZWZhdWx0IG9uZSB3aWxsIGJlIHVzZWQpLiAqL1xuICBpbmRleFRlbXBsYXRlPzogc3RyaW5nO1xuICAvKiogVVJMIHRvIGR5bmFtaWNhbGx5IGZldGNoZWQgb3B0aW9ucy4gKi9cbiAgZHluYW1pY09wdGlvbnNVcmw/OiBzdHJpbmc7XG4gIC8qKiBVUkwgdG8gZmF2aWNvbi4gKi9cbiAgZmF2aWNvblVybD86IHN0cmluZztcbiAgLyoqIFVSTCB0byAqLmNzcyBmaWxlIHdoaWNoIHdpbGwgcmVwbGFjZSBkZWZhdWx0IGJyYW5kaW5nLiAqL1xuICBicmFuZGluZ1VybD86IHN0cmluZztcbiAgLyoqIE9iamVjdCB3aXRoIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBDU1MgY3VzdG9tIHZhcmlhYmxlcy4gKi9cbiAgYnJhbmRpbmdDc3NWYXJzPzogQnJhbmRpbmdDc3NWYXJzO1xuICAvKipcbiAgICogQWxsb3dzIGZvciBhZGRpbmcgb3Igb3ZlcnJpZGluZyBsYW5ndWFnZXMgYXZhaWxhYmxlIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogSXRzIGtleXMgYXJlIGxhbmd1YWdlIGNvZGVzIGFuZCBpdHMgdmFsdWVzIGFyZSBvYmplY3RzIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICAgKlxuICAgKiAtIGBuYW1lYDogRW5nbGlzaCBuYW1lIG9mIHRoZSBsYW5ndWFnZSxcbiAgICogLSBgbmF0aXZlTmFtZWA6IG5hdGl2ZSBuYW1lIG9mIHRoZSBsYW5ndWFnZSxcbiAgICogLSBgdXJsYDogZnVsbCBVUkwgdG8gSlNPTiBmaWxlIHdpdGggY29tcGlsZWQgdHJhbnNsYXRpb25zO1xuICAgKiAgICBpZiBub3QgZGVmaW5lZCwgdHJhbnNsYXRpb25zIHdpbGwgYmUgbG9hZGVkIGZyb20gYCR7bG9jYWxlUGF0aH0vJHtsYW5nQ29kZX0uanNvbmAuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYGpzb25cbiAgICogXCJsYW5ndWFnZXNcIjoge1xuICAgKiAgIFwiZGVcIjoge1xuICAgKiAgICAgXCJuYW1lXCI6IFwiR2VybWFuXCIsXG4gICAqICAgICBcIm5hdGl2ZU5hbWVcIjogXCJEZXV0c2NoXCIsXG4gICAqICAgICBcInVybFwiOiBcIi9hcHBzL3B1YmxpYy91aS1hc3NldHMvZGUuanNvblwiXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgbGFuZ3VhZ2VzPzogTGFuZ3VhZ2VzO1xuICAvKipcbiAgICogQWxsb3dzIGZvciBhZGRpbmcgY3VzdG9tIHRyYW5zbGF0aW9ucy4gSXQgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkuXG4gICAqXG4gICAqIEl0cyBrZXlzIGFyZSBsYW5ndWFnZSBjb2RlcyAoaHR0cHM6Ly9jdW11bG9jaXR5LmNvbS9ndWlkZXMvdXNlcnMtZ3VpZGUvZ2V0dGluZy1zdGFydGVkLyNhLW5hbWUtbGFuZ3VhZ2VzLWEtYXZhaWxhYmxlLWxhbmd1YWdlcylcbiAgICogYW5kIGl0cyB2YWx1ZXMgYXJlIG9iamVjdHMgd2l0aCBrZXktdmFsdWUgcGFpcnMsIHdoZXJlIHRoZSBrZXkgaXMgdGhlIG9yaWdpbmFsIHN0cmluZyBpbiBFbmdsaXNoIGFuZCB0aGUgdmFsdWUgLSBpdHMgdHJhbnNsYXRpb24uXG4gICAqXG4gICAqIC0gYEhvbWVgOiBcIlN0YXJ0c2VpdGVcIlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSB5b3UgY2FuIGFkZCB0aGUgdHJhbnNsYXRpb24gb2YgeW91ciBjdXN0b20gY29va2llIGJhbm5lciBjb25maWd1cmVkIGluIHRoZSBicmFuZGluZyBzZXR0aW5nczpcbiAgICogYGBganNvblxuICAgKiBcImkxOG5FeHRyYVwiOiB7XG4gICAqICAgXCJkZVwiOiB7XG4gICAqICAgICBcIkFib3V0IGNvb2tpZXMgb24gQ3VtdWxvY2l0eSBJb1RcIjogXCJJbmZvcm1hdGlvbmVuIHp1IENvb2tpZXMgaW4gQ3VtdWxvY2l0eSBJb1RcIixcbiAgICogICAgIFwiQ2xpY2sgQWdyZWUgYW5kIFByb2NlZWQgdG8gYWNjZXB0IGNvb2tpZXMgYW5kIGdvIGRpcmVjdGx5IHRvIHRoZSBwbGF0Zm9ybSBvciBjbGljayBvbiBQcml2YWN5IFBvbGljeSB0byBzZWUgZGV0YWlsZWQgZGVzY3JpcHRpb25zIG9mIHRoZSB1c2VkIGNvb2tpZXMuXCI6IFwiS2xpY2tlbiBTaWUgYXVmIFp1c3RpbW1lbiB1bmQgZm9ydGZhaHJlbiwgdW0gQ29va2llcyB6dSBha3plcHRpZXJlbiB1bmQgZGlyZWt0IHp1ciBQbGF0dGZvcm0genUgZ2VsYW5nZW4sIG9kZXIga2xpY2tlbiBTaWUgYXVmIERhdGVuc2NodXR6cmljaHRsaW5pZSwgdW0gZGV0YWlsbGllcnRlIEJlc2NocmVpYnVuZ2VuIGRlciB2ZXJ3ZW5kZXRlbiBDb29raWVzIGFuenV6ZWlnZW4uXCJcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBpMThuRXh0cmE/OiBJMThuRXh0cmE7XG4gIC8qKiBQYXRoIHRvIHRoZSBmb2xkZXIgZnJvbSB3aGljaCAqLnBvIGZpbGVzIHdpbGwgYmUgbG9hZGVkLiAqL1xuICBsb2NhbGVQYXRoPzogc3RyaW5nO1xuICAvKiogQXJyYXkgb2YgVVJMcyB0byBhZGRpdGlvbmFsICouY3NzIGZpbGVzIHRvIGJlIGxvYWRlZCBhdCBydW50aW1lLiAqL1xuICBleHRyYUNzc1VybHM/OiBzdHJpbmdbXTtcbiAgLyoqIERvY3VtZW50YXRpb24gbGlua3Mgc2V0dGluZ3MuICovXG4gIGRvY3M/OiBEb2NzO1xuICAvKiogQXBwbGljYXRpb24gaWNvbiB0byBiZSBkaXNwbGF5ZWQgaW4gYXBwIHN3aXRjaGVyIGFuZCBoZWFkZXIgYmFyLiAqL1xuICBpY29uPzogSWNvbjtcblxuICAvLyBUaGVzZSBhcmUgdGhlIG9sZCBvcHRpb25zXG4gIC8qKiBIaWRlIGFwcGxpY2F0aW9uIGluIGFwcCBzd2l0Y2hlciAoc2F2ZWQgdG8gdGhlIHNlcnZlcikuICovXG4gIG5vQXBwU3dpdGNoZXI/OiBib29sZWFuO1xuICAvKiogSFRNTCBwYWdlIHRpdGxlLiAqL1xuICBnbG9iYWxUaXRsZT86IHN0cmluZztcbiAgLyoqIEhpZGUgXCJwb3dlcmVkIGJ5XCIgYW5kIHZlcnNpb24gaW5mbyBhdCB0aGUgYm90dG9tIG9mIHRoZSBuYXZpZ2F0b3IgYW5kIGluIHRoZSByaWdodCBkcmF3ZXIuICovXG4gIGhpZGVQb3dlcmVkPzogYm9vbGVhbjtcbiAgLyoqIEhpZGVzIHRoZSBcIlBsYXRmb3JtIGluZm9ybWF0aW9uXCIgaW4gdGhlIHJpZ2h0IGRyYXdlciwgd2lsbCBvdmVycnVsZSB0aGUgXCJoaWRlUG93ZXJlZFwiIG9wdGlvbiAqL1xuICBoaWRlUGxhdGZvcm1JbmZvcm1hdGlvbj86IGJvb2xlYW47XG4gIC8qKiBVUkwgdG8gc3VwcG9ydCBwYWdlIChzZXQgdG8gYGZhbHNlYCB0byBoaWRlIHRoZSBsaW5rKS4gKi9cbiAgc3VwcG9ydFVybD86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZXBsYWNlbWVudCBzdHJpbmcgZm9yIGB1c2VyYCBmaWVsZCBpbiBhdWRpdCBsb2dzIGZvciBhY3Rpb25zIHBlcmZvcm1lZCBieSBhIHN1cHBvcnQgdXNlclxuICAgKiAoYXZhaWxhYmxlIHBsYWNlaG9sZGVyczogYHt7c3VwcG9ydF91c2VyfX1gLCBge3tzdXBwb3J0ZWRfdXNlcn19YCkuXG4gICAqL1xuICBzdXBwb3J0VXNlclN0cmluZz86IHN0cmluZztcbiAgLyoqXG4gICAqIERpc2FibGVzIHJlYWx0aW1lIHVwZGF0ZXMgb24gdGhlIG1hcCB3aWRnZXQgYW5kIG1hcHMgaW4gZ2VuZXJhbC5cbiAgICovXG4gIG1hcFdpZGdldFJlYWx0aW1lRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGFkanVzdCB0aGUgZGVmYXVsdCBwYWdlc2l6ZSBvZiAxMDAgaXRlbXMgb2YgdGhlIG1hcCB3aWRnZXQgYW5kIG1hcHMgaW4gZ2VuZXJhbC5cbiAgICovXG4gIG1hcFdpZGdldFBhZ2VTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogQWxsb3dzIHRvIGhpZGUgdGhlIGhpbnQgdGhhdCB0aGVyZSBhcmUgbW9yZSBkZXZpY2VzIHdpdGggZ2VvIGNvb3JkaW5hdGVzIHRoZW4gZGlzcGxheWVkIG9uIHRoZSBtYXAgd2lkZ2V0IGFuZCBtYXBzIGluIGdlbmVyYWwuXG4gICAqL1xuICBtYXBXaWRnZXRIaWRlTWF4RGV2aWNlT25NYXBIaW50PzogYm9vbGVhbjtcbiAgLyoqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSByaWdodCBkcmF3ZXIuICovXG4gIHJpZ2h0RHJhd2VyPzogYm9vbGVhbjtcbiAgLyoqIEVuYWJsZSBvciBkaXNhYmxlIGJyZWFkY3J1bWJzIGluIHRoZSBoZWFkZXIgZm9yIGdyb3VwcyBhbmQgZGV2aWNlcyAoZGVmYXVsdDogZmFsc2UpLiAqL1xuICBicmVhZGNydW1icz86IGJvb2xlYW47XG4gIC8qKiBDb2xsYXBzZSBuYXZpZ2F0b3Igb24gaW5pdGlhbCBsb2FkLiAqL1xuICBoaWRlTmF2aWdhdG9yPzogYm9vbGVhbjtcbiAgLyoqIFNob3cgdGFicyBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS4gKi9cbiAgdGFic0hvcml6b250YWw/OiBib29sZWFuO1xuICAvKiogQWRkaXRpb25hbCBsaW5rIHRvIGRpc3BsYXkgb24gbG9naW4gc2NyZWVuLiAqL1xuICBsb2dpbkV4dHJhTGluaz86IExvZ2luRXh0cmFMaW5rO1xuICAvKiogRW5hYmxlIG9yIGRpc2FibGUgc3RvcmFnZSBsaW1pdGF0aW9uIGZlYXR1cmUuICovXG4gIHN0b3JhZ2VMaW1pdGF0aW9uRmVhdHVyZUVuYWJsZWQ/OiBib29sZWFuO1xuICAvKiogTmFtZSBvZiBjb21wYW55IGhhbmRsaW5nIHN1cHBvcnQgcmVxdWVzdHMgZnJvbSBhcHAgdXNlcnMgKGRpc3BsYXllZCBpbiBub3RpZmljYXRpb24gbWVzc2FnZSkuICovXG4gIGNvbXBhbnlOYW1lPzogc3RyaW5nO1xuICAvKiogVVJMIHRlbXBsYXRlIGZvciBkb2N1bWVudGF0aW9uIGxpbmtzIChkZWZhdWx0OiBgJyR7ZG9jc0Jhc2VVcmx9JHtwYXJ0aWFsVXJsfSdgKS4gKi9cbiAgZ3VpZGVIcmVmVGVtcGxhdGU/OiBzdHJpbmc7XG4gIC8qKiBCYXNlIFVSTCBmb3IgZG9jdW1lbnRhdGlvbiBsaW5rcyAoaW5jbHVkZSBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXIsIGlmIHlvdSB3YW50IHZlcnNpb25lZCBsaW5rcykuICovXG4gIGRvY3NCYXNlVXJsPzogc3RyaW5nO1xuICAvKiogQ1NQIHN0cmluZyB0byBiZSBhcHBsaWVkIHRvIGBpbmRleC5odG1sYCBieSByZXBsYWNpbmcgZGVmYXVsdCB2YWx1ZXMuICovXG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeT86IHN0cmluZztcbiAgLyoqIEVuYWJsZXMgY2xvdWQgc2Vuc29yIHdpemFyZCAqL1xuICBzZW5zb3JQaG9uZT86IGJvb2xlYW47XG4gIC8qKiBTaG93IG9yIGhpZGUgYSBuZXdzbGV0dGVyIHN1YnNjcmlwdGlvbiBjaGVja2JveCBpbiBlZGl0IHVzZXIgbW9kYWwuICovXG4gIG5ld3NsZXR0ZXI/OiBib29sZWFuO1xuICAvKiogUGF0aCB0byB0aGUgcm9vdCBub2RlX21vZHVsZXMgZGlyICh1c2VmdWwgd2hlbiB3b3JraW5nIGluIG1vbm9yZXBvIHNldHVwLCBlLmcuIHlhcm4gd29ya3NwYWNlcykuICovXG4gIHJvb3ROb2RlTW9kdWxlc1BhdGg/OiBzdHJpbmc7XG4gIC8qKiBDb29raWUgQmFubmVyIGNvbmZpZ3VyYXRpb24gKi9cbiAgY29va2llQmFubmVyPzogQ29va2llQmFubmVyQ29uZmlndXJhdGlvbjtcbiAgLyoqIENvb2tpZSBwcmVmZXJlbmNlcyBjb25maWd1cmF0aW9uLiBIZXJlIHlvdSBjYW4gZW5hYmxlIG9yIGRpc2FibGUgY29va2llIGNhdGVnb3JpZXMgKi9cbiAgY29va2llUHJlZmVyZW5jZXM/OiBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb247XG4gIC8qKiBBIGtleSBmb3IgdGhlIHByb2R1Y3QgZXhwZXJpZW5jZSBzb2Z0d2FyZSBHYWluc2lnaHQuICovXG4gIGdhaW5zaWdodEtleT86IHN0cmluZztcbiAgLyoqIE5nTW9kdWxlIGV4cG9ydCBmb3IgcGx1Z2lucy4gKi9cbiAgZXhwb3J0cz86IFBsdWdpbnNFeHBvcnRzW107XG4gIC8qKiBMaXN0IG9mIGltcG9ydGVkIHJlbW90ZSBwbHVnaW5zLiAqL1xuICByZW1vdGVzPzogUmVtb3RlUGx1Z2lucztcbiAgLyoqIFRoZSBwYWNrYWdlIHNvdXJjZSBhIGFwcGxpY2F0aW9uIG9yaWdpbnMgZnJvbSBhcyBJQXBwbGljYXRpb24gb3Igc2ltcGx5IHRoZSBpZCBvZiB0aGUgc291cmNlICovXG4gIHNvdXJjZT86IHN0cmluZyB8IG51bWJlciB8IElBcHBsaWNhdGlvbjtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXNzZXRzIHRvIGNvcHkgdG8gdGhlIGJ1aWxkIG91dHB1dC5cbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvY29weS13ZWJwYWNrLXBsdWdpbiBmb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgcGF0dGVybnMgdG8gYWRkIGhlcmUuXG4gICAqL1xuICBjb3B5PzogW107XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gZW5hYmxlIG9yIGRpc2FibGUgY29udGV4dCBoZWxwLCBvciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBiYXNlIFVSTCB1c2VkIHRvIGxvYWQgaXRzIGNvbnRlbnRzLlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgY29udGV4dCBoZWxwIHVzZXMgdGhlIHNhbWUgYmFzZSBVUkwgYXMgZGVmaW5lZCBpbiB0aGUgYGRvY3NCYXNlVXJsYCBvcHRpb25cbiAgICogKGlmIHRoaXMgb3B0aW9uIGlzIHVuZGVmaW5lZCwgdGhlbiB0aGUgZm9sbG93aW5nIHZhbHVlIHdpbGwgYmUgdXNlZDogYGh0dHBzOi8vd3d3LmN1bXVsb2NpdHkuY29tL2d1aWRlcy97e3ZlcnNpb259fWApLlxuICAgKiBBbHRlcm5hdGl2ZWx5LCBpZiBhIHN0cmluZyBpcyBwcm92aWRlZCBoZXJlLCBpdCdsbCBiZSB1c2VkIGFzIHRoZSBiYXNlIFVSTFxuICAgKiBhbmQgYW55IGB7eyB2ZXJzaW9uIH19YCBwbGFjZWhvbGRlciB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIHJlbGV2YW50IGRvY3MgdmVyc2lvbi5cbiAgICovXG4gIGNvbnRleHRIZWxwPzogYm9vbGVhbiB8IHN0cmluZztcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGNvY2twaXQgYW5kIGRldmljZW1hbmFnZW1lbnQgdXNlIHRoZSBvbmx5Um9vdHMgcXVlcnkgdG8gcmVzb2x2ZSByb290IG5vZGVzLiBUaGlzXG4gICAqIGNvdWxkIGxlYWQgdG8gcGVyZm9ybWFuY2UgaXNzdWVzLCBpZiBhIGN1c3RvbWVyIGhhcyBhIGxvdCBvZiByb290IG5vZGVzLiBUaGVyZWZvcmUgeW91IGNhbiBkaXNhYmxlXG4gICAqIHRoZSB1c2Ugb2YgdGhpcyBxdWVyeSB3aXRoIHRoaXMgZmxhZy5cbiAgICovXG4gIGRpc2FibGVPbmx5Um9vdHNRdWVyeT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gZm9yY2Ugc2hvd2luZyB0aGUgc2V0dXAgd2l6YXJkLlxuICAgKi9cbiAgZm9yY2VTZXR1cD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGFwcGxpY2F0aW9uIG5lZWRzIHRvIHNob3cgdGhlIHNldHVwIHdpemFyZC5cbiAgICovXG4gIGlzU2V0dXA/OiBib29sZWFuO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCBhIFdlYlNESyBhcHAgcmVxdWlyZXMgdGhlIHVzZXIgdG8gYmUgbG9nZ2VkIGluLlxuICAgKiBJbiBjYXNlIHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AganVzdCBhIHN0YXRpYyBhcHBsaWNhdGlvbiwgdGhhdCBkb2VzIG5vdCByZXF1aXJlIGFueSBraW5kIG9mIGFjY2VzcyB0byB0aGUgYmFja2VuZCxcbiAgICogeW91IGNhbiB1c2UgdGhpcyBmbGFnIHRvIGRpc2FibGUgdGhlIGxvZ2luIHNjcmVlbi5cbiAgICogTk9URTogbm90IGFsbCBXZWJTREsgY29tcG9uZW50cyBzdXBwb3J0IHRoaXMsIHNvbWUgbWlnaHQgcmVxdWlyZSB0aGUgdXNlciB0byBiZSBsb2dnZWQgaW4gYW5kIHdvbid0IHdvcmsuXG4gICAqL1xuICBub0xvZ2luPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBvcHQgb3V0IG9mIHN1cHBvcnRpbmcvbG9hZGluZyBwbHVnaW5zIGZvciB0aGlzIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgbm9QbHVnaW5zPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFsbG93cyB0byBvcHQgb3V0IG9mIHRoZSB2ZXJzaW9uIHdhcm5pbmcgd2hpY2ggaXMgc2hvd24gaW4gdGhlIGRldiB0b29scy5cbiAgICovXG4gIG5vVmVyc2lvbldhcm5pbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZVBsdWdpbnMge1xuICAvKipcbiAgICogQSBrZXkgdmFsdWUgcGFpciwgd2hpbGUgdGhlIHZhbHVlIGlzIGFuIGFycmF5IG9mIG1vZHVsZXMgdG8gbG9hZCBhbmQgdGhlXG4gICAqIGtleSBpcyB0aGUgY29udGV4dCBwYXRoLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBqc1xuICAgKiB7XG4gICAqICAgICdjb2NrcGl0JzogWydIb21lRGFzaGJvYXJkTW9kdWxlJywgJ0RhdGFFeHBsb3JlckRhc2hib2FyZCddLFxuICAgKiAgICAnd2lkZ2V0LXBhY2thZ2VAMS4wLjAnOiBbJ0V4dGVuZGVkTWFwV2lkZ2V0J11cbiAgICogfVxuICAgKiBgYFxuICAgKi9cbiAgW2tleTogc3RyaW5nXTogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luc0V4cG9ydHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFuZ3VsYXIgbW9kdWxlIGNsYXNzLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZpbGUgcGF0aCB0byB0aGUgbW9kdWxlIHR5cGVzY3JpcHQgZmlsZS5cbiAgICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIHNob3J0IGRlc2NyaXB0aW9uIGFib3V0IHdoYXQgdGhlIG1vZHVsZSBkb2VzLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gc2NvcGUgdGhlIHBsdWdpbiB0byBjZXJ0YWluIGFwcGxpY2F0aW9ucy4gRS5nLiBpZiB5b3VcbiAgICogYWRkIGhlcmUgJ2NvY2twaXQnLCB0aGUgcGx1Z2luIGNhbiBvbmx5IGJlIGluc3RhbGxlZCBpbnRvIGFuXG4gICAqIGFwcGxpY2F0aW9uIG9uIHRoZSBjb250ZXh0UGF0aCBgYXBwcy9jb2NrcGl0YC4gWW91IGNhbiB1c2UgY29tbWFcbiAgICogc2VwYXJhdGVkIHZhbHVlcywgYXN0ZXJpc2sgKGRlZmF1bHQpIHRvIGFsbG93IGFsbCBhcHBsaWNhdGlvbnMgb3JcbiAgICogYHNlbGZgIHRvIGxpbWl0IHRoZSBwbHVnaW4gdG8gdGhlIGN1cnJlbnQgc29sdXRpb24uXG4gICAqL1xuICBzY29wZT86ICcqJyB8ICdzZWxmJyB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb29raWVCYW5uZXJDb25maWd1cmF0aW9uIHtcbiAgLyoqIEhlcmUgeW91IGNhbiBzZXQgdGhlIHRpdGxlIG9mIENvb2tpZSBCYW5uZXIgKi9cbiAgY29va2llQmFubmVyVGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBIZXJlIHlvdSBjYW4gc2V0IHRoZSBUZXh0IG9mIENvb2tpZSBCYW5uZXIgKi9cbiAgY29va2llQmFubmVyVGV4dD86IHN0cmluZztcbiAgLyoqIEhlcmUgeW91IGNhbiBzZXQgdGhlIHBvbGljeVVybCBvZiBDb29raWUgQmFubmVyICovXG4gIHBvbGljeVVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb24ge1xuICAvKiogVGhpcyBjYXRlZ29yeSBpbmNsdWRlcyBlLmcuIGNvb2tpZXMgcmVsYXRlZCB0byBsb2dnaW5nIGluICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIC8qKiBUaGlzIGNhdGVnb3J5IGluY2x1ZGVzIGUuZy4gdHJhY2tpbmcgY29va2llcyAgKi9cbiAgZnVuY3Rpb25hbD86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIC8qKiBUaGlzIGNhdGVnb3J5IGluY2x1ZGVzIGUuZy4gY29va2llcyByZWxhdGVkIHRvIGFkdmVydGlzaW5nICAqL1xuICBtYXJrZXRpbmc/OiBib29sZWFuIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luRXh0cmFMaW5rIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvbiB7XG4gIGNsYXNzPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jcyB7XG4gIC8qKiBIaWRlIGRlZmF1bHQgbGlua3MgdG8gZG9jdW1lbnRhdGlvbi4gKi9cbiAgbm9EZWZhdWx0OiBib29sZWFuO1xuICAvKiogTGlzdCBvZiByZWdleCBzdHJpbmdzLiBNYXRjaGluZyBkZWZhdWx0IGRvY3MgVVJMcyB3aWxsIGJlIGhpZGRlbi4gKi9cbiAgZXhjbHVkZURlZmF1bHQ6IHN0cmluZ1tdO1xuICAvKiogQWRkaXRpb25hbCBsaW5rcyB0byBiZSBkaXNwbGF5ZWQuICovXG4gIGxpbmtzOiBMaW5rc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtzIHtcbiAgLyoqIEljb24gY2xhc3NlcyB3aXRoIGBjOHktaWNvbmAsIGUuZy4gYGM4eS1pY29uIGM4eS1pY29uLWFkZC11c2VyYCBvciBgYzh5LWljb24gYzh5LWljb24tZGV2aWNlLWNvbm5lY3RgLiAqL1xuICBpY29uOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICB0eXBlOiAnZG9jJyB8ICdxdWlja2xpbmsnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5FeHRyYSB7XG4gIFtsYW5nQ29kZTogc3RyaW5nXTogSTE4bkV4dHJhTGFuZ0NvZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bkV4dHJhTGFuZ0NvZGUge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2VzIHtcbiAgW2xhbmdDb2RlOiBzdHJpbmddOiBMYW5ndWFnZXNMYW5nQ29kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZXNMYW5nQ29kZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbmF0aXZlTmFtZTogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCcmFuZGluZ0Nzc1ZhcnMge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG4iXX0=
@@ -180,6 +180,9 @@ export class AppStateService extends StateService {
180
180
  this.emitNewState();
181
181
  }
182
182
  showIncompatibleVersionsError() {
183
+ if (this.options.noVersionWarning) {
184
+ return;
185
+ }
183
186
  const uiVersion = this.state.versions.ui.ngx;
184
187
  const backendVersion = this.state.versions.backend;
185
188
  if (!satisfies(uiVersion, `<=${backendVersion} || ~${backendVersion}`)) {
@@ -200,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
200
203
  type: Injectable,
201
204
  args: [{ providedIn: 'root' }]
202
205
  }], ctorParameters: function () { return [{ type: i1.ApplicationService }, { type: i2.ApiService }, { type: i3.OptionsService }, { type: i1.FetchClient }, { type: i1.TenantLoginOptionsService }]; }, propDecorators: { refreshLoginOptions: [] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFDTCxXQUFXLEVBRVgseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUduQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFHbkMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQXFDL0MsWUFDVSxrQkFBc0MsRUFDdkMsVUFBc0IsRUFDckIsT0FBdUIsRUFDdkIsV0FBd0IsRUFDeEIseUJBQW9EO1FBRTVELEtBQUssRUFBRSxDQUFDO1FBTkEsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLFlBQU8sR0FBUCxPQUFP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LENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLGNBQWMsUUFBUSxjQUFjLEVBQUUsQ0FBQyxFQUFFO1lBQ3RFLE1BQU0sWUFBWSxHQUFHLDJCQUEyQixTQUFTLDBCQUEwQixjQUFjLGNBQWMsQ0FBQztZQUNoSCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxZQUFZLEVBQUUsaURBQWlELENBQUMsQ0FBQztTQUN0RjtJQUNILENBQUM7OzRHQXhPVSxlQUFlO2dIQUFmLGVBQWUsY0FERixNQUFNO0FBa0k5QjtJQURDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7Ozs7MERBSWxDOzJGQXBJVSxlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtpT0FrSTFCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRmV0Y2hDbGllbnQsXG4gIElBcHBsaWNhdGlvbixcbiAgVGVuYW50TG9naW5PcHRpb25zU2VydmljZSxcbiAgQXBwbGljYXRpb25TZXJ2aWNlLFxuICBJQ3VycmVudFRlbmFudCxcbiAgSVVzZXJcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsga2V5cywgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBzY2FuLFxuICBzd2l0Y2hNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzdGFydFdpdGgsXG4gIGRlYm91bmNlVGltZSxcbiAgdGFrZVxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXRlU2VydmljZSB9IGZyb20gJy4vc3RhdGUtc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hcGknO1xuaW1wb3J0IHsgQXBwbGljYXRpb25PcHRpb25zIH0gZnJvbSAnLi9BcHBsaWNhdGlvbk9wdGlvbnMnO1xuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tICcuL3Rocm90dGxlLmRlY29yYXRvcic7XG5pbXBvcnQgeyBzYXRpc2ZpZXMgfSBmcm9tICdzZW12ZXInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFwcFN0YXRlU2VydmljZSBleHRlbmRzIFN0YXRlU2VydmljZSB7XG4gIHN0YXRlJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe1xuICAgIGFwcDoge1xuICAgICAgbmFtZTogdGhpcy5vcHRpb25zLm5hbWUsXG4gICAgICBjb250ZXh0UGF0aDogdGhpcy5nZXRDdXJyZW50Q29udGV4dFBhdGgoKSB8fCB0aGlzLm9wdGlvbnMuY29udGV4dFBhdGhcbiAgICB9LFxuICAgIHN1cHBvcnRVcmw6IHRoaXMub3B0aW9ucy5zdXBwb3J0VXJsLFxuICAgIGxhbmc6IHRoaXMub3B0aW9ucy5nZXQoJ2RlZmF1bHRMYW5ndWFnZScsICdlbicpLFxuICAgIGxhbmdzOiB0aGlzLmdldExhbmdzKCksXG4gICAgbGFuZ3NEZXRhaWw6IHRoaXMub3B0aW9ucy5sYW5ndWFnZXMsXG4gICAgbG9naW5PcHRpb25zOiB0aGlzLm9wdGlvbnMubG9naW5PcHRpb25zLFxuICAgIGFjdGl2YXRlU3VwcG9ydFVzZXJBdmFpbGFibGU6IHVuZGVmaW5lZCxcbiAgICB2ZXJzaW9uczoge1xuICAgICAgYmFja2VuZDogdW5kZWZpbmVkLFxuICAgICAgdWk6IHRoaXMub3B0aW9ucy52ZXJzaW9ucyB8fCB7IG5neDogdW5kZWZpbmVkIH1cbiAgICB9LFxuICAgIGhpZGVQb3dlcmVkOiB0aGlzLm9wdGlvbnMuaGlkZVBvd2VyZWQsXG4gICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICBzaG93UmlnaHREcmF3ZXI6IHRoaXMub3B0aW9ucy5yaWdodERyYXdlcixcbiAgICBsb2dpbkV4dHJhTGluazogdGhpcy5vcHRpb25zLmdldCgnbG9naW5fZXh0cmFfbGluaycpLFxuICAgIG5ld3NsZXR0ZXI6IHRoaXMub3B0aW9ucy5uZXdzbGV0dGVyXG4gIH0pO1xuICBjdXJyZW50U3VwcG9ydFVzZXJOYW1lOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBjdXJyZW50VXNlcjogQmVoYXZpb3JTdWJqZWN0PElVc2VyIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBjdXJyZW50VGVuYW50OiBCZWhhdmlvclN1YmplY3Q8SUN1cnJlbnRUZW5hbnQgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIGN1cnJlbnRBcHBsaWNhdGlvbjogQmVoYXZpb3JTdWJqZWN0PElBcHBsaWNhdGlvbiB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgY3VycmVudEFwcGxpY2F0aW9uQ29uZmlnOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmN1cnJlbnRBcHBsaWNhdGlvbi5waXBlKFxuICAgIGZpbHRlcihhcHAgPT4gISFhcHApLFxuICAgIG1hcChhcHAgPT4gYXBwPy5jb25maWcgfHwgbnVsbClcbiAgKTtcbiAgLyoqXG4gICAqIEFuIE9ic2VydmFibGUgb2YgdGhlIGFwcGxpY2F0aW9ucyBhdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIFRoZSBPYnNlcnZhYmxlIGVtaXRzIGEgbmV3IGFycmF5IG9uIHVzZXIgY2hhbmdlcyBvciBpZiB0aGUgYXBwbGljYXRpb25cbiAgICogcGVyZm9ybXMgUE9TVCwgUFVUIG9yIERFTEVURSByZXF1ZXN0cyB0byB0aGUgYXBwbGljYXRpb24gQVBJLlxuICAgKi9cbiAgY3VycmVudEFwcHNPZlVzZXI6IE9ic2VydmFibGU8SUFwcGxpY2F0aW9uW10+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25TZXJ2aWNlOiBBcHBsaWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGZldGNoQ2xpZW50OiBGZXRjaENsaWVudCxcbiAgICBwcml2YXRlIHRlbmFudExvZ2luT3B0aW9uc1NlcnZpY2U6IFRlbmFudExvZ2luT3B0aW9uc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2FsbHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHsgdXJsIH0pID0+ICEvbm90aWZpY2F0aW9uXFwvcmVhbHRpbWUvLnRlc3QodXJsKSksXG4gICAgICAgIG1hcCgoeyBwaGFzZSB9KSA9PiAocGhhc2UgPT09ICdzdGFydCcgPyAxIDogLTEpKSxcbiAgICAgICAgc2NhbigoY291bnQsIGl0ZW0pID0+IGNvdW50ICsgaXRlbSwgMCksXG4gICAgICAgIG1hcChjb3VudCA9PiBjb3VudCA+IDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGlzTG9hZGluZyA9PiAodGhpcy5zdGF0ZS5pc0xvYWRpbmcgPSBpc0xvYWRpbmcpKTtcblxuICAgIHRoaXMuYXNzaWduQXBwbGljYXRpb25LZXlUb0RlZmF1bHRIZWFkZXJzKCk7XG4gICAgdGhpcy5jdXJyZW50QXBwc09mVXNlciA9IHRoaXMuY3VycmVudEFwcHNPZlVzZXIkKCk7XG4gIH1cblxuICBhc3NpZ25BcHBsaWNhdGlvbktleVRvRGVmYXVsdEhlYWRlcnMoKSB7XG4gICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgdGhpcy5mZXRjaENsaWVudC5kZWZhdWx0SGVhZGVycyA9IHtcbiAgICAgICAgLi4uKHRoaXMuZmV0Y2hDbGllbnQuZGVmYXVsdEhlYWRlcnMgfHwge30pLFxuICAgICAgICAnWC1DdW11bG9jaXR5LUFwcGxpY2F0aW9uLUtleSc6IHRoaXMub3B0aW9ucy5rZXlcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUuXG4gICAqL1xuICBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnZhbHVlO1xuICB9XG5cbiAgZ2V0TGFuZ3MoKSB7XG4gICAgY29uc3QgeyBsYW5ndWFnZXMgfSA9IHRoaXMub3B0aW9ucztcbiAgICByZXR1cm4gbGFuZ3VhZ2VzID8ga2V5cyhsYW5ndWFnZXMpLmZpbHRlcihrID0+IGxhbmd1YWdlc1trXSkgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb3JyZWN0IFVJIHZlcnNpb24uIEluIGh5YnJpZCBtb2RlIGZvciBhbmd1bGFyIGFuZCBuZ3guXG4gICAqL1xuICBnZXQgdWlWZXJzaW9uKCkge1xuICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLnN0YXRlLnZlcnNpb25zLnVpO1xuICAgIHJldHVybiB2ZXJzaW9uLm5neCB8fCB2ZXJzaW9uLm5nMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgYXBwIG1hbmlmZXN0LiBJZiBubyBhY2Nlc3MgLT4gdGhyb3cgYW4gZXJyb3IgdG8gdmVyaWZ5IGFwcCBhY2Nlc3MuXG4gICAqL1xuICBhc3luYyBsb2FkTWFuaWZlc3QoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogYXBwbGljYXRpb24gfSA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmdldE1hbmlmZXN0T2ZDb250ZXh0UGF0aChcbiAgICAgICAgdGhpcy5zdGF0ZS5hcHAuY29udGV4dFBhdGhcbiAgICAgICk7XG4gICAgICB0aGlzLnN0YXRlLmFwcC5tYW5pZmVzdCA9IGFwcGxpY2F0aW9uO1xuICAgICAgdGhpcy5zdGF0ZS5hcHAuaWQgPSBhcHBsaWNhdGlvbi5pZDtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZGV0YWlsKGFwcGxpY2F0aW9uLmlkKTtcbiAgICAgIHRoaXMuY3VycmVudEFwcGxpY2F0aW9uLm5leHQoZGF0YSk7XG4gICAgICBhd2FpdCB0aGlzLmxvYWREZWZhdWx0T3B0aW9ucygpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmN1cnJlbnRBcHBsaWNhdGlvbi5uZXh0KHt9KTtcbiAgICAgIHRocm93IGV4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEeW5hbWljIG9wdGlvbnMgYXJlIHN0b3JlZCBvbiB0aGUgQVBJIGluIGEgc3BlY2lmaWMgY29uZmlnOiB7fSBvYmplY3QuIFRoZXkgY2FuXG4gICAqIGJlIHVzZWQgdG8gY29uZmlndXJlIHRoZSBhcHAgZHluYW1pY2FsbHkuXG4gICAqXG4gICAqIE5vdGU6IFRvIGF2b2lkcyBjb25mbGljdHMgd2l0aCB0aGUgZGVmYXVsdCBDb25maWcsIGl0IGlzIHJlY29tbWVuZGVkXG4gICAqIHRvIHVzZSBhIGNlcnRhaW4gbmFtZXNwYWNlLlxuICAgKi9cbiAgYXN5bmMgdXBkYXRlQ3VycmVudEFwcGxpY2F0aW9uQ29uZmlnPFQgPSBBcHBsaWNhdGlvbk9wdGlvbnM+KGNvbmZpZzogVCk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGFwcFdpdGhVcGRhdGVkQ29uZmlnID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UudXBkYXRlQXBwbGljYXRpb25Db25maWcoXG4gICAgICB0aGlzLnN0YXRlLmFwcC5pZCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gICAgdGhpcy5jdXJyZW50QXBwbGljYXRpb24ubmV4dChhcHBXaXRoVXBkYXRlZENvbmZpZyk7XG4gICAgcmV0dXJuIGFwcFdpdGhVcGRhdGVkQ29uZmlnLmNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgZnVuY3Rpb24gY2FsbGVkLCBpdCByZWZyZXNoZXMgdGhlIHZhbHVlcyBvZiBsb2dpbk9wdGlvbnMgc3RvcmVkIHdpdGhpbiB1aSBzdGF0ZSBvYmplY3QuXG4gICAqIEZ1bmN0aW9uIGlzIHRocm90dGxlZCB0byBleGVjdXRlIHRoZSByZWZyZXNoIG9uY2UgaW4gYSB0aW1lIHNwZWNpZmllZCBieSBwYXJhbXMgb2YgQHRocm90dGxlZCBkZWNvcmF0b3IsXG4gICAqIGl0IHNob3VsZCBiZSBjYWxsZWQgb24gbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgKi9cbiAgQHRocm90dGxlKDYwMCwgeyB0cmFpbGluZzogZmFsc2UgfSlcbiAgYXN5bmMgcmVmcmVzaExvZ2luT3B0aW9ucygpIHtcbiAgICBjb25zdCBsb2dpbk9wdGlvbnMgPSAoYXdhaXQgdGhpcy50ZW5hbnRMb2dpbk9wdGlvbnNTZXJ2aWNlLmxpc3RGb3JDdXJyZW50VGVuYW50KCkpLmRhdGE7XG4gICAgdGhpcy5zdGF0ZSQubmV4dCh7IC4uLnRoaXMuc3RhdGUsIGxvZ2luT3B0aW9ucyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgY3VycmVudCB1c2VycyBhcHBsaWNhdGlvbiBsaXN0IGFuZCBtYXRjaGVzIGl0IGFnYWluc3QgZ2l2ZW4gYXBwbGljYXRpb24gbmFtZS5cbiAgICogUmV0dXJucyB0cnVlIGlmIGFwcGxpY2F0aW9uIGlzIGluIHRoZSBsaXN0LlxuICAgKiBAcGFyYW0gbmFtZSBhcHBsaWNhdGlvbiBuYW1lXG4gICAqL1xuICBhc3luYyBpc0FwcGxpY2F0aW9uQXZhaWxhYmxlKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGFwcHMgPSBhd2FpdCB0aGlzLmN1cnJlbnRBcHBzT2ZVc2VyLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gICAgcmV0dXJuIGFwcHMuc29tZShhcHAgPT4gYXBwLm5hbWUgPT09IG5hbWUgfHwgYXBwLmNvbnRleHRQYXRoID09PSBuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGN1cnJlbnQgdXNlciAoaW5jbHVkaW5nIHN1cHBvcnQgdXNlcikuXG4gICAqIEBwYXJhbSB1c2VySW5mbyBJbmZvIGFib3V0IGN1cnJlbnQgdXNlciBhbmQgc3VwcG9ydCB1c2VyIHRvIGJlIHNldC5cbiAgICovXG4gIHNldFVzZXIodXNlckluZm86IHsgdXNlcjogSVVzZXI7IHN1cHBvcnRVc2VyTmFtZTogc3RyaW5nIH0pIHtcbiAgICB0aGlzLmN1cnJlbnRTdXBwb3J0VXNlck5hbWUubmV4dCh1c2VySW5mby5zdXBwb3J0VXNlck5hbWUgfHwgbnVsbCk7XG4gICAgdGhpcy5jdXJyZW50VXNlci5uZXh0KHVzZXJJbmZvLnVzZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIGlzIG93bmVkIGJ5IHRoZSBjdXJyZW50IHRlbmFudC5cbiAgICogQHBhcmFtIGFwcCBUaGUgYXBwbGljYXRpb24gdG8gdmVyaWZ5LlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGl0IGJlbG9uZ3MgdG8gdGhlIGN1cnJlbnQgdGVuYW50LlxuICAgKi9cbiAgaXNPd25lck9mQXBwbGljYXRpb24oYXBwPzogSUFwcGxpY2F0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKCFhcHApIHtcbiAgICAgIGFwcCA9IHRoaXMuY3VycmVudEFwcGxpY2F0aW9uLnZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VGVuYW50OiBJQ3VycmVudFRlbmFudCA9IHRoaXMuY3VycmVudFRlbmFudC52YWx1ZTtcbiAgICBjb25zdCBhcHBPd25lciA9IGdldChhcHAsICdvd25lci50ZW5hbnQuaWQnKTtcbiAgICByZXR1cm4gY3VycmVudFRlbmFudC5uYW1lID09PSBhcHBPd25lcjtcbiAgfVxuXG4gIGdldEN1cnJlbnRDb250ZXh0UGF0aCgpIHtcbiAgICBjb25zdCBtYXRjaCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCgvXFwvYXBwc1xcLyhwdWJsaWNcXC8pezAsMX0oLis/KShcXC98XFw/fCN8JCkvKTtcbiAgICByZXR1cm4gbWF0Y2ggJiYgbWF0Y2hbMl07XG4gIH1cblxuICBwcm90ZWN0ZWQgY3VycmVudEFwcHNPZlVzZXIkKCk6IE9ic2VydmFibGU8SUFwcGxpY2F0aW9uW10+IHtcbiAgICBjb25zdCBhcHBDaGFuZ2VzJCA9IHRoaXMub25BcHBDaGFuZ2VzQ29tcGxldGlvbiQoKS5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQgYXMgdm9pZCkpO1xuICAgIGNvbnN0IHVzZXJDaGFuZ2VzJCA9IHRoaXMuY3VycmVudFVzZXIucGlwZShcbiAgICAgIG1hcCh1c2VyID0+IHVzZXI/LmlkKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt1c2VyQ2hhbmdlcyQsIGFwcENoYW5nZXMkXSkucGlwZShcbiAgICAgIGZpbHRlcigoW3VzZXJJZF0pID0+ICEhdXNlcklkKSxcbiAgICAgIHN3aXRjaE1hcCgoW3VzZXJJZF0pID0+XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmxpc3RCeVVzZXIodXNlcklkLCB7XG4gICAgICAgICAgZHJvcE92ZXJ3cml0dGVuQXBwczogdHJ1ZSxcbiAgICAgICAgICBub1BhZ2luZzogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyBvbmNlIGFsbCBQT1NULCBQVVQsIERFTEVURSByZXF1ZXN0cyB0byB0aGUgYXBwbGljYXRpb24gQVBJIGZpbmlzaGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb25BcHBDaGFuZ2VzQ29tcGxldGlvbiQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgbWV0aG9kcyA9IFsnUE9TVCcsICdQVVQnLCAnREVMRVRFJ107XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5jYWxscy5waXBlKFxuICAgICAgZmlsdGVyKFxuICAgICAgICAoeyBtZXRob2QsIHVybCB9KSA9PiBtZXRob2RzLmluY2x1ZGVzKG1ldGhvZCkgJiYgdXJsPy5pbmNsdWRlcygnYXBwbGljYXRpb24vYXBwbGljYXRpb25zJylcbiAgICAgICksXG4gICAgICBtYXAoKHsgcGhhc2UgfSkgPT4gKHBoYXNlID09PSAnc3RhcnQnID8gMSA6IC0xKSksXG4gICAgICBzY2FuKChjb3VudCwgaXRlbSkgPT4gY291bnQgKyBpdGVtLCAwKSxcbiAgICAgIG1hcChjb3VudCA9PiBjb3VudCA9PT0gMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICBmaWx0ZXIoY29tcGxldGVkID0+ICEhY29tcGxldGVkKSxcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZERlZmF1bHRPcHRpb25zKCkge1xuICAgIHRoaXMuc3RhdGUuc3VwcG9ydFVybCA9IGF3YWl0IHRoaXMub3B0aW9ucy5nZXRTdXBwb3J0VXJsKCk7XG4gICAgdGhpcy5zdGF0ZS5hY3RpdmF0ZVN1cHBvcnRVc2VyQXZhaWxhYmxlID0gYXdhaXQgdGhpcy5vcHRpb25zLmdldEFjdGl2YXRlU3VwcG9ydFVzZXIoKTtcbiAgICB0aGlzLnN0YXRlLnZlcnNpb25zLmJhY2tlbmQgPSBhd2FpdCB0aGlzLm9wdGlvbnMuZ2V0U3lzdGVtT3B0aW9uKCdzeXN0ZW0nLCAndmVyc2lvbicpO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnNob3dJbmNvbXBhdGlibGVWZXJzaW9uc0Vycm9yKCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8vIGlnbm9yZSB0aGlzXG4gICAgfVxuICAgIHRoaXMuZW1pdE5ld1N0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHNob3dJbmNvbXBhdGlibGVWZXJzaW9uc0Vycm9yKCkge1xuICAgIGNvbnN0IHVpVmVyc2lvbjogc3RyaW5nID0gdGhpcy5zdGF0ZS52ZXJzaW9ucy51aS5uZ3g7XG4gICAgY29uc3QgYmFja2VuZFZlcnNpb246IHN0cmluZyA9IHRoaXMuc3RhdGUudmVyc2lvbnMuYmFja2VuZDtcblxuICAgIGlmICghc2F0aXNmaWVzKHVpVmVyc2lvbiwgYDw9JHtiYWNrZW5kVmVyc2lvbn0gfHwgfiR7YmFja2VuZFZlcnNpb259YCkpIHtcbiAgICAgIGNvbnN0IGVycm9yQ29udGVudCA9IGBZb3UgYXJlIHJ1bm5pbmcgdmVyc2lvbiAke3VpVmVyc2lvbn0gb2YgdGhlIFVJIGFuZCB2ZXJzaW9uICR7YmFja2VuZFZlcnNpb259IG9mIGJhY2tlbmQhYDtcbiAgICAgIGNvbnNvbGUubG9nKCclYyAnICsgZXJyb3JDb250ZW50LCAnZm9udC13ZWlnaHQ6IGJvbGQ7IGZvbnQtc2l6ZTogMzBweDsgY29sb3I6IHJlZDsnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFDTCxXQUFXLEVBRVgseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUduQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFHbkMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQXFDL0MsWUFDVSxrQkFBc0MsRUFDdkMsVUFBc0IsRUFDckIsT0FBdUIsRUFDdkIsV0FBd0IsRUFDeEIseUJBQW9EO1FBRTVELEtBQUssRUFBRSxDQUFDO1FBTkEsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLFlBQU8sR0FBUCxPQUFP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QWMsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFFM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxjQUFjLFFBQVEsY0FBYyxFQUFFLENBQUMsRUFBRTtZQUN0RSxNQUFNLFlBQVksR0FBRywyQkFBMkIsU0FBUywwQkFBMEIsY0FBYyxjQUFjLENBQUM7WUFDaEgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsWUFBWSxFQUFFLGlEQUFpRCxDQUFDLENBQUM7U0FDdEY7SUFDSCxDQUFDOzs0R0EzT1UsZUFBZTtnSEFBZixlQUFlLGNBREYsTUFBTTtBQWtJOUI7SUFEQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDOzs7OzBEQUlsQzsyRkFwSVUsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7aU9Ba0kxQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZldGNoQ2xpZW50LFxuICBJQXBwbGljYXRpb24sXG4gIFRlbmFudExvZ2luT3B0aW9uc1NlcnZpY2UsXG4gIEFwcGxpY2F0aW9uU2VydmljZSxcbiAgSUN1cnJlbnRUZW5hbnQsXG4gIElVc2VyXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGtleXMsIGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2NhbixcbiAgc3dpdGNoTWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICBkZWJvdW5jZVRpbWUsXG4gIHRha2Vcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlLXNlcnZpY2UuYWJzdHJhY3QnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYXBpJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uT3B0aW9ucyB9IGZyb20gJy4vQXBwbGljYXRpb25PcHRpb25zJztcbmltcG9ydCB7IHRocm90dGxlIH0gZnJvbSAnLi90aHJvdHRsZS5kZWNvcmF0b3InO1xuaW1wb3J0IHsgc2F0aXNmaWVzIH0gZnJvbSAnc2VtdmVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBcHBTdGF0ZVNlcnZpY2UgZXh0ZW5kcyBTdGF0ZVNlcnZpY2Uge1xuICBzdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHtcbiAgICBhcHA6IHtcbiAgICAgIG5hbWU6IHRoaXMub3B0aW9ucy5uYW1lLFxuICAgICAgY29udGV4dFBhdGg6IHRoaXMuZ2V0Q3VycmVudENvbnRleHRQYXRoKCkgfHwgdGhpcy5vcHRpb25zLmNvbnRleHRQYXRoXG4gICAgfSxcbiAgICBzdXBwb3J0VXJsOiB0aGlzLm9wdGlvbnMuc3VwcG9ydFVybCxcbiAgICBsYW5nOiB0aGlzLm9wdGlvbnMuZ2V0KCdkZWZhdWx0TGFuZ3VhZ2UnLCAnZW4nKSxcbiAgICBsYW5nczogdGhpcy5nZXRMYW5ncygpLFxuICAgIGxhbmdzRGV0YWlsOiB0aGlzLm9wdGlvbnMubGFuZ3VhZ2VzLFxuICAgIGxvZ2luT3B0aW9uczogdGhpcy5vcHRpb25zLmxvZ2luT3B0aW9ucyxcbiAgICBhY3RpdmF0ZVN1cHBvcnRVc2VyQXZhaWxhYmxlOiB1bmRlZmluZWQsXG4gICAgdmVyc2lvbnM6IHtcbiAgICAgIGJhY2tlbmQ6IHVuZGVmaW5lZCxcbiAgICAgIHVpOiB0aGlzLm9wdGlvbnMudmVyc2lvbnMgfHwgeyBuZ3g6IHVuZGVmaW5lZCB9XG4gICAgfSxcbiAgICBoaWRlUG93ZXJlZDogdGhpcy5vcHRpb25zLmhpZGVQb3dlcmVkLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgc2hvd1JpZ2h0RHJhd2VyOiB0aGlzLm9wdGlvbnMucmlnaHREcmF3ZXIsXG4gICAgbG9naW5FeHRyYUxpbms6IHRoaXMub3B0aW9ucy5nZXQoJ2xvZ2luX2V4dHJhX2xpbmsnKSxcbiAgICBuZXdzbGV0dGVyOiB0aGlzLm9wdGlvbnMubmV3c2xldHRlclxuICB9KTtcbiAgY3VycmVudFN1cHBvcnRVc2VyTmFtZTogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgY3VycmVudFVzZXI6IEJlaGF2aW9yU3ViamVjdDxJVXNlciB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgY3VycmVudFRlbmFudDogQmVoYXZpb3JTdWJqZWN0PElDdXJyZW50VGVuYW50IHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBjdXJyZW50QXBwbGljYXRpb246IEJlaGF2aW9yU3ViamVjdDxJQXBwbGljYXRpb24gfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIGN1cnJlbnRBcHBsaWNhdGlvbkNvbmZpZzogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5jdXJyZW50QXBwbGljYXRpb24ucGlwZShcbiAgICBmaWx0ZXIoYXBwID0+ICEhYXBwKSxcbiAgICBtYXAoYXBwID0+IGFwcD8uY29uZmlnIHx8IG51bGwpXG4gICk7XG4gIC8qKlxuICAgKiBBbiBPYnNlcnZhYmxlIG9mIHRoZSBhcHBsaWNhdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgKiBUaGUgT2JzZXJ2YWJsZSBlbWl0cyBhIG5ldyBhcnJheSBvbiB1c2VyIGNoYW5nZXMgb3IgaWYgdGhlIGFwcGxpY2F0aW9uXG4gICAqIHBlcmZvcm1zIFBPU1QsIFBVVCBvciBERUxFVEUgcmVxdWVzdHMgdG8gdGhlIGFwcGxpY2F0aW9uIEFQSS5cbiAgICovXG4gIGN1cnJlbnRBcHBzT2ZVc2VyOiBPYnNlcnZhYmxlPElBcHBsaWNhdGlvbltdPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmZXRjaENsaWVudDogRmV0Y2hDbGllbnQsXG4gICAgcHJpdmF0ZSB0ZW5hbnRMb2dpbk9wdGlvbnNTZXJ2aWNlOiBUZW5hbnRMb2dpbk9wdGlvbnNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNhbGxzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCh7IHVybCB9KSA9PiAhL25vdGlmaWNhdGlvblxcL3JlYWx0aW1lLy50ZXN0KHVybCkpLFxuICAgICAgICBtYXAoKHsgcGhhc2UgfSkgPT4gKHBoYXNlID09PSAnc3RhcnQnID8gMSA6IC0xKSksXG4gICAgICAgIHNjYW4oKGNvdW50LCBpdGVtKSA9PiBjb3VudCArIGl0ZW0sIDApLFxuICAgICAgICBtYXAoY291bnQgPT4gY291bnQgPiAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShpc0xvYWRpbmcgPT4gKHRoaXMuc3RhdGUuaXNMb2FkaW5nID0gaXNMb2FkaW5nKSk7XG5cbiAgICB0aGlzLmFzc2lnbkFwcGxpY2F0aW9uS2V5VG9EZWZhdWx0SGVhZGVycygpO1xuICAgIHRoaXMuY3VycmVudEFwcHNPZlVzZXIgPSB0aGlzLmN1cnJlbnRBcHBzT2ZVc2VyJCgpO1xuICB9XG5cbiAgYXNzaWduQXBwbGljYXRpb25LZXlUb0RlZmF1bHRIZWFkZXJzKCkge1xuICAgIGlmICghaXNEZXZNb2RlKCkpIHtcbiAgICAgIHRoaXMuZmV0Y2hDbGllbnQuZGVmYXVsdEhlYWRlcnMgPSB7XG4gICAgICAgIC4uLih0aGlzLmZldGNoQ2xpZW50LmRlZmF1bHRIZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgJ1gtQ3VtdWxvY2l0eS1BcHBsaWNhdGlvbi1LZXknOiB0aGlzLm9wdGlvbnMua2V5XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGdldExhbmdzKCkge1xuICAgIGNvbnN0IHsgbGFuZ3VhZ2VzIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgcmV0dXJuIGxhbmd1YWdlcyA/IGtleXMobGFuZ3VhZ2VzKS5maWx0ZXIoayA9PiBsYW5ndWFnZXNba10pIDogW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29ycmVjdCBVSSB2ZXJzaW9uLiBJbiBoeWJyaWQgbW9kZSBmb3IgYW5ndWxhciBhbmQgbmd4LlxuICAgKi9cbiAgZ2V0IHVpVmVyc2lvbigpIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5zdGF0ZS52ZXJzaW9ucy51aTtcbiAgICByZXR1cm4gdmVyc2lvbi5uZ3ggfHwgdmVyc2lvbi5uZzE7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGFwcCBtYW5pZmVzdC4gSWYgbm8gYWNjZXNzIC0+IHRocm93IGFuIGVycm9yIHRvIHZlcmlmeSBhcHAgYWNjZXNzLlxuICAgKi9cbiAgYXN5bmMgbG9hZE1hbmlmZXN0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGFwcGxpY2F0aW9uIH0gPSBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5nZXRNYW5pZmVzdE9mQ29udGV4dFBhdGgoXG4gICAgICAgIHRoaXMuc3RhdGUuYXBwLmNvbnRleHRQYXRoXG4gICAgICApO1xuICAgICAgdGhpcy5zdGF0ZS5hcHAubWFuaWZlc3QgPSBhcHBsaWNhdGlvbjtcbiAgICAgIHRoaXMuc3RhdGUuYXBwLmlkID0gYXBwbGljYXRpb24uaWQ7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmRldGFpbChhcHBsaWNhdGlvbi5pZCk7XG4gICAgICB0aGlzLmN1cnJlbnRBcHBsaWNhdGlvbi5uZXh0KGRhdGEpO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkRGVmYXVsdE9wdGlvbnMoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgdGhpcy5jdXJyZW50QXBwbGljYXRpb24ubmV4dCh7fSk7XG4gICAgICB0aHJvdyBleDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRHluYW1pYyBvcHRpb25zIGFyZSBzdG9yZWQgb24gdGhlIEFQSSBpbiBhIHNwZWNpZmljIGNvbmZpZzoge30gb2JqZWN0LiBUaGV5IGNhblxuICAgKiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgYXBwIGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBOb3RlOiBUbyBhdm9pZHMgY29uZmxpY3RzIHdpdGggdGhlIGRlZmF1bHQgQ29uZmlnLCBpdCBpcyByZWNvbW1lbmRlZFxuICAgKiB0byB1c2UgYSBjZXJ0YWluIG5hbWVzcGFjZS5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZUN1cnJlbnRBcHBsaWNhdGlvbkNvbmZpZzxUID0gQXBwbGljYXRpb25PcHRpb25zPihjb25maWc6IFQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBhcHBXaXRoVXBkYXRlZENvbmZpZyA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLnVwZGF0ZUFwcGxpY2F0aW9uQ29uZmlnKFxuICAgICAgdGhpcy5zdGF0ZS5hcHAuaWQsXG4gICAgICBjb25maWdcbiAgICApO1xuICAgIHRoaXMuY3VycmVudEFwcGxpY2F0aW9uLm5leHQoYXBwV2l0aFVwZGF0ZWRDb25maWcpO1xuICAgIHJldHVybiBhcHBXaXRoVXBkYXRlZENvbmZpZy5jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGlzIGZ1bmN0aW9uIGNhbGxlZCwgaXQgcmVmcmVzaGVzIHRoZSB2YWx1ZXMgb2YgbG9naW5PcHRpb25zIHN0b3JlZCB3aXRoaW4gdWkgc3RhdGUgb2JqZWN0LlxuICAgKiBGdW5jdGlvbiBpcyB0aHJvdHRsZWQgdG8gZXhlY3V0ZSB0aGUgcmVmcmVzaCBvbmNlIGluIGEgdGltZSBzcGVjaWZpZWQgYnkgcGFyYW1zIG9mIEB0aHJvdHRsZWQgZGVjb3JhdG9yLFxuICAgKiBpdCBzaG91bGQgYmUgY2FsbGVkIG9uIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICovXG4gIEB0aHJvdHRsZSg2MDAsIHsgdHJhaWxpbmc6IGZhbHNlIH0pXG4gIGFzeW5jIHJlZnJlc2hMb2dpbk9wdGlvbnMoKSB7XG4gICAgY29uc3QgbG9naW5PcHRpb25zID0gKGF3YWl0IHRoaXMudGVuYW50TG9naW5PcHRpb25zU2VydmljZS5saXN0Rm9yQ3VycmVudFRlbmFudCgpKS5kYXRhO1xuICAgIHRoaXMuc3RhdGUkLm5leHQoeyAuLi50aGlzLnN0YXRlLCBsb2dpbk9wdGlvbnMgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGN1cnJlbnQgdXNlcnMgYXBwbGljYXRpb24gbGlzdCBhbmQgbWF0Y2hlcyBpdCBhZ2FpbnN0IGdpdmVuIGFwcGxpY2F0aW9uIG5hbWUuXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcHBsaWNhdGlvbiBpcyBpbiB0aGUgbGlzdC5cbiAgICogQHBhcmFtIG5hbWUgYXBwbGljYXRpb24gbmFtZVxuICAgKi9cbiAgYXN5bmMgaXNBcHBsaWNhdGlvbkF2YWlsYWJsZShuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhcHBzID0gYXdhaXQgdGhpcy5jdXJyZW50QXBwc09mVXNlci5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICAgIHJldHVybiBhcHBzLnNvbWUoYXBwID0+IGFwcC5uYW1lID09PSBuYW1lIHx8IGFwcC5jb250ZXh0UGF0aCA9PT0gbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjdXJyZW50IHVzZXIgKGluY2x1ZGluZyBzdXBwb3J0IHVzZXIpLlxuICAgKiBAcGFyYW0gdXNlckluZm8gSW5mbyBhYm91dCBjdXJyZW50IHVzZXIgYW5kIHN1cHBvcnQgdXNlciB0byBiZSBzZXQuXG4gICAqL1xuICBzZXRVc2VyKHVzZXJJbmZvOiB7IHVzZXI6IElVc2VyOyBzdXBwb3J0VXNlck5hbWU6IHN0cmluZyB9KSB7XG4gICAgdGhpcy5jdXJyZW50U3VwcG9ydFVzZXJOYW1lLm5leHQodXNlckluZm8uc3VwcG9ydFVzZXJOYW1lIHx8IG51bGwpO1xuICAgIHRoaXMuY3VycmVudFVzZXIubmV4dCh1c2VySW5mby51c2VyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBpcyBvd25lZCBieSB0aGUgY3VycmVudCB0ZW5hbnQuXG4gICAqIEBwYXJhbSBhcHAgVGhlIGFwcGxpY2F0aW9uIHRvIHZlcmlmeS5cbiAgICogQHJldHVybnMgdHJ1ZSBpZiBpdCBiZWxvbmdzIHRvIHRoZSBjdXJyZW50IHRlbmFudC5cbiAgICovXG4gIGlzT3duZXJPZkFwcGxpY2F0aW9uKGFwcD86IElBcHBsaWNhdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmICghYXBwKSB7XG4gICAgICBhcHAgPSB0aGlzLmN1cnJlbnRBcHBsaWNhdGlvbi52YWx1ZTtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudFRlbmFudDogSUN1cnJlbnRUZW5hbnQgPSB0aGlzLmN1cnJlbnRUZW5hbnQudmFsdWU7XG4gICAgY29uc3QgYXBwT3duZXIgPSBnZXQoYXBwLCAnb3duZXIudGVuYW50LmlkJyk7XG4gICAgcmV0dXJuIGN1cnJlbnRUZW5hbnQubmFtZSA9PT0gYXBwT3duZXI7XG4gIH1cblxuICBnZXRDdXJyZW50Q29udGV4dFBhdGgoKSB7XG4gICAgY29uc3QgbWF0Y2ggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL1xcL2FwcHNcXC8ocHVibGljXFwvKXswLDF9KC4rPykoXFwvfFxcP3wjfCQpLyk7XG4gICAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzJdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRBcHBzT2ZVc2VyJCgpOiBPYnNlcnZhYmxlPElBcHBsaWNhdGlvbltdPiB7XG4gICAgY29uc3QgYXBwQ2hhbmdlcyQgPSB0aGlzLm9uQXBwQ2hhbmdlc0NvbXBsZXRpb24kKCkucGlwZShzdGFydFdpdGgodW5kZWZpbmVkIGFzIHZvaWQpKTtcbiAgICBjb25zdCB1c2VyQ2hhbmdlcyQgPSB0aGlzLmN1cnJlbnRVc2VyLnBpcGUoXG4gICAgICBtYXAodXNlciA9PiB1c2VyPy5pZCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdXNlckNoYW5nZXMkLCBhcHBDaGFuZ2VzJF0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKFt1c2VySWRdKSA9PiAhIXVzZXJJZCksXG4gICAgICBzd2l0Y2hNYXAoKFt1c2VySWRdKSA9PlxuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0QnlVc2VyKHVzZXJJZCwge1xuICAgICAgICAgIGRyb3BPdmVyd3JpdHRlbkFwcHM6IHRydWUsXG4gICAgICAgICAgbm9QYWdpbmc6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgb25jZSBhbGwgUE9TVCwgUFVULCBERUxFVEUgcmVxdWVzdHMgdG8gdGhlIGFwcGxpY2F0aW9uIEFQSSBmaW5pc2hlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG9uQXBwQ2hhbmdlc0NvbXBsZXRpb24kKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IG1ldGhvZHMgPSBbJ1BPU1QnLCAnUFVUJywgJ0RFTEVURSddO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuY2FsbHMucGlwZShcbiAgICAgIGZpbHRlcihcbiAgICAgICAgKHsgbWV0aG9kLCB1cmwgfSkgPT4gbWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpICYmIHVybD8uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucycpXG4gICAgICApLFxuICAgICAgbWFwKCh7IHBoYXNlIH0pID0+IChwaGFzZSA9PT0gJ3N0YXJ0JyA/IDEgOiAtMSkpLFxuICAgICAgc2NhbigoY291bnQsIGl0ZW0pID0+IGNvdW50ICsgaXRlbSwgMCksXG4gICAgICBtYXAoY291bnQgPT4gY291bnQgPT09IDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgZmlsdGVyKGNvbXBsZXRlZCA9PiAhIWNvbXBsZXRlZCksXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm47XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWREZWZhdWx0T3B0aW9ucygpIHtcbiAgICB0aGlzLnN0YXRlLnN1cHBvcnRVcmwgPSBhd2FpdCB0aGlzLm9wdGlvbnMuZ2V0U3VwcG9ydFVybCgpO1xuICAgIHRoaXMuc3RhdGUuYWN0aXZhdGVTdXBwb3J0VXNlckF2YWlsYWJsZSA9IGF3YWl0IHRoaXMub3B0aW9ucy5nZXRBY3RpdmF0ZVN1cHBvcnRVc2VyKCk7XG4gICAgdGhpcy5zdGF0ZS52ZXJzaW9ucy5iYWNrZW5kID0gYXdhaXQgdGhpcy5vcHRpb25zLmdldFN5c3RlbU9wdGlvbignc3lzdGVtJywgJ3ZlcnNpb24nKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zaG93SW5jb21wYXRpYmxlVmVyc2lvbnNFcnJvcigpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBpZ25vcmUgdGhpc1xuICAgIH1cbiAgICB0aGlzLmVtaXROZXdTdGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93SW5jb21wYXRpYmxlVmVyc2lvbnNFcnJvcigpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLm5vVmVyc2lvbldhcm5pbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdWlWZXJzaW9uOiBzdHJpbmcgPSB0aGlzLnN0YXRlLnZlcnNpb25zLnVpLm5neDtcbiAgICBjb25zdCBiYWNrZW5kVmVyc2lvbjogc3RyaW5nID0gdGhpcy5zdGF0ZS52ZXJzaW9ucy5iYWNrZW5kO1xuXG4gICAgaWYgKCFzYXRpc2ZpZXModWlWZXJzaW9uLCBgPD0ke2JhY2tlbmRWZXJzaW9ufSB8fCB+JHtiYWNrZW5kVmVyc2lvbn1gKSkge1xuICAgICAgY29uc3QgZXJyb3JDb250ZW50ID0gYFlvdSBhcmUgcnVubmluZyB2ZXJzaW9uICR7dWlWZXJzaW9ufSBvZiB0aGUgVUkgYW5kIHZlcnNpb24gJHtiYWNrZW5kVmVyc2lvbn0gb2YgYmFja2VuZCFgO1xuICAgICAgY29uc29sZS5sb2coJyVjICcgKyBlcnJvckNvbnRlbnQsICdmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAzMHB4OyBjb2xvcjogcmVkOycpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -65,6 +65,11 @@ export class DatapointLibraryDetailsComponent {
65
65
  this.alertService.saveSuccess(gettext('Data point library entry'))();
66
66
  }
67
67
  else {
68
+ // during managedObject creation (POST) a fragment with the value null is actually being created and stored to the DB compared to an update (PUT) which would remove the fragment.
69
+ // as we don't want to have that fragment stored in DB (if set to null), we will just set it to undefined.
70
+ if (mo.c8y_Global === null) {
71
+ mo.c8y_Global = undefined;
72
+ }
68
73
  const res = await this.inventory.create(mo);
69
74
  this.datapointUpdate(res.data);
70
75
  this.alertService.createSuccess(gettext('Data point library entry'))();
@@ -253,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
253
258
  type: Inject,
254
259
  args: [DATAPOINT_LIBRARY_CONFIG]
255
260
  }] }]; } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWxpYnJhcnktZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kYXRhcG9pbnQtbGlicmFyeS9kZXRhaWxzL2RhdGFwb2ludC1saWJyYXJ5LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZGF0YXBvaW50LWxpYnJhcnkvZGV0YWlscy9kYXRhcG9pbnQtbGlicmFyeS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQWtCLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN2QixNQUFNLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0Qs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QUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekMsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNqQyxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQzs7NkhBM1FVLGdDQUFnQyx1U0F1QnJCLHdCQUF3QjtpSEF2Qm5DLGdDQUFnQyx5RkM1QjdDLDQxWkF3VkEsMkNEOVRZLFVBQVUsb3dGQUFFLFlBQVksOEJBQUUsYUFBYSw4VkFBRSxhQUFhLGtrQkFBRSx1QkFBdUI7MkZBRTlFLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSwrQkFBK0IsY0FFN0IsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixDQUFDOzswQkF5QnZGLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBEYXRhLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgQ29yZU1vZHVsZSwgZ2V0dGV4dCwgSHVtYW5pemVQaXBlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBnZXQsIGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBEYXRhcG9pbnRMaWJyYXJ5T3B0aW9ucyxcbiAgREFUQVBPSU5UX0xJQlJBUllfQ09ORklHLFxuICBwYXRoVG9EYXRhcG9pbnRMaWJyYXJ5XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGF0YXBvaW50LWxpYnJhcnkvbW9kZWwnO1xuaW1wb3J0IHsgQzh5VmFsaWRhdG9ycywgQ29sb3JTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQb3BvdmVyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3BvdmVyJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRGF0YXBvaW50UGFyc2VyU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGF0YXBvaW50LWxpYnJhcnkvc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50U2VsZWN0b3JNb2R1bGUsXG4gIERhdGFwb2ludFNlbGVjdG9yU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RhdGFwb2ludC1zZWxlY3Rvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtbGlicmFyeS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludC1saWJyYXJ5LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgUm91dGVyTW9kdWxlLCBQb3BvdmVyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBEYXRhcG9pbnRTZWxlY3Rvck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YXBvaW50TGlicmFyeURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHBhdGggPSBwYXRoVG9EYXRhcG9pbnRMaWJyYXJ5O1xuICBmb3JtR3JvdXA6IFJldHVyblR5cGU8RGF0YXBvaW50TGlicmFyeURldGFpbHNDb21wb25lbnRbJ2luaXRGb3JtJ10+O1xuICByYW5nZTogRm9ybUdyb3VwO1xuICByZWRSYW5nZTogRm9ybUdyb3VwO1xuICB5ZWxsb3dSYW5nZTogRm9ybUdyb3VwO1xuICBkYXRhcG9pbnQ6IElNYW5hZ2VkT2JqZWN0O1xuICBpc0xvYWRpbmcgPSB0cnVlO1xuXG4gIHJhbmdlQ29uZmlnID0ge307XG5cbiAgcm91dGVTdWI6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2xvclNlcnZpY2U6IENvbG9yU2VydmljZSxcbiAgICBwcml2YXRlIHBhcnNlcjogRGF0YXBvaW50UGFyc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFwb2ludFNlbGVjdG9yU2VydmljZTogRGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQVBPSU5UX0xJQlJBUllfQ09ORklHKSBwdWJsaWMgY29uZmlnOiBEYXRhcG9pbnRMaWJyYXJ5T3B0aW9uc1xuICApIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuaW5pdEZvcm0oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGVTdWIgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmVudC5kYXRhLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMubG9hZChkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlU3ViKSB7XG4gICAgICB0aGlzLnJvdXRlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZSh2YWx1ZSkge1xuICAgIGNvbnN0IGtwaVZhbHVlcyA9IHRoaXMuZXh0cmFjdEtwaVZhbHVlc0Zyb21Gb3JtVmFsdWUodmFsdWUpO1xuICAgIGNvbnN0IGtwaSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGF0YXBvaW50Py5jOHlfS3BpIHx8IHt9LCBrcGlWYWx1ZXMpO1xuICAgIGNvbnN0IGNsZWFuZWRVcEtwaSA9IHRoaXMucmVtb3ZlTnVsbFZhbHVlcyhrcGkpO1xuXG4gICAgY29uc3QgbW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+ID0ge1xuICAgICAgYzh5X0twaTogY2xlYW5lZFVwS3BpLFxuICAgICAgYzh5X0dsb2JhbDogdmFsdWUuYzh5X0dsb2JhbCA/IHt9IDogbnVsbFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmRhdGFwb2ludD8uaWQpIHtcbiAgICAgICAgbW8uaWQgPSB0aGlzLmRhdGFwb2ludC5pZDtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkudXBkYXRlKG1vKTtcbiAgICAgICAgdGhpcy5kYXRhcG9pbnRVcGRhdGUocmVzLmRhdGEpO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zYXZlU3VjY2VzcyhnZXR0ZXh0KCdEYXRhIHBvaW50IGxpYnJhcnkgZW50cnknKSkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuaW52ZW50b3J5LmNyZWF0ZShtbyk7XG4gICAgICAgIHRoaXMuZGF0YXBvaW50VXBkYXRlKHJlcy5kYXRhKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuY3JlYXRlU3VjY2VzcyhnZXR0ZXh0KCdEYXRhIHBvaW50IGxpYnJhcnkgZW50cnknKSkoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubmF2aWdhdGVCYWNrVG9MaXN0KCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlKTtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZUJhY2tUb0xpc3QoKTtcbiAgfVxuXG4gIGZvcm1DaGFuZ2UoKSB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmludmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qga3BpVmFsdWVzID0gdGhpcy5leHRyYWN0S3BpVmFsdWVzRnJvbUZvcm1WYWx1ZSh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XG4gICAgdGhpcy5yYW5nZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oeyBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIH0sIGtwaVZhbHVlcyk7XG4gIH1cblxuICBhc3luYyBwaWNrRGF0YXBvaW50KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhcG9pbnRzID0gYXdhaXQgdGhpcy5kYXRhcG9pbnRTZWxlY3RvclNlcnZpY2Uuc2VsZWN0RGF0YVBvaW50cyh7XG4gICAgICAgIGZpbmlzaFdpdGhGaXJzdFNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgICAgaWdub3JlRGF0YXBvaW50VGVtcGxhdGVzOiB0cnVlLFxuICAgICAgICBndWVzc0RhdGFwb2ludFVuaXQ6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIGlmIChkYXRhcG9pbnRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBkYXRhcG9pbnQgPSBkYXRhcG9pbnRzWzBdO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBmcmFnbWVudDogZGF0YXBvaW50LmZyYWdtZW50LFxuICAgICAgICAgIHNlcmllczogZGF0YXBvaW50LnNlcmllcyxcbiAgICAgICAgICBjb2xvcjogZGF0YXBvaW50LmNvbG9yLFxuICAgICAgICAgIGxhYmVsOiBkYXRhcG9pbnQubGFiZWxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLy8gbW9kYWwgY2xvc2VkXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZUJhY2tUb0xpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXRoVG9EYXRhcG9pbnRMaWJyYXJ5XSk7XG4gIH1cblxuICBwcml2YXRlIGRhdGFwb2ludFVwZGF0ZSh0bXBEYXRhcG9pbnQ6IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgY29uc3QgZGF0YXBvaW50ID0gdGhpcy5wYXJzZXIucGFyc2VEYXRhcG9pbnQodG1wRGF0YXBvaW50KTtcbiAgICB0aGlzLmRhdGFwb2ludCA9IGRhdGFwb2ludDtcbiAgICBjb25zdCB7XG4gICAgICBmcmFnbWVudCxcbiAgICAgIHNlcmllcyxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgdW5pdCxcbiAgICAgIHRhcmdldCxcbiAgICAgIGxhYmVsLFxuICAgICAgY29sb3IsXG4gICAgICB5ZWxsb3dSYW5nZU1pbixcbiAgICAgIHllbGxvd1JhbmdlTWF4LFxuICAgICAgcmVkUmFuZ2VNaW4sXG4gICAgICByZWRSYW5nZU1heCxcbiAgICAgIG1pbixcbiAgICAgIG1heFxuICAgIH0gPSBkYXRhcG9pbnQuYzh5X0twaTtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgIGZyYWdtZW50LFxuICAgICAgc2VyaWVzLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICB1bml0LFxuICAgICAgdGFyZ2V0LFxuICAgICAgbGFiZWwsXG4gICAgICBjb2xvcixcbiAgICAgIHJhbmdlOiB7IG1pbiwgbWF4IH0sXG4gICAgICB5ZWxsb3dSYW5nZTogeyBtaW46IHllbGxvd1JhbmdlTWluLCBtYXg6IHllbGxvd1JhbmdlTWF4IH0sXG4gICAgICByZWRSYW5nZTogeyBtaW46IHJlZFJhbmdlTWluLCBtYXg6IHJlZFJhbmdlTWF4IH0sXG4gICAgICBjOHlfR2xvYmFsOiAhIWRhdGFwb2ludC5jOHlfR2xvYmFsXG4gICAgfSk7XG4gICAgdGhpcy5mb3JtQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RLcGlWYWx1ZXNGcm9tRm9ybVZhbHVlKGZvcm1WYWx1ZTogYW55KSB7XG4gICAgY29uc3QgeyBmcmFnbWVudCwgc2VyaWVzLCBkZXNjcmlwdGlvbiwgdW5pdCwgdGFyZ2V0LCBsYWJlbCwgY29sb3IgfSA9IGZvcm1WYWx1ZTtcbiAgICByZXR1cm4ge1xuICAgICAgZnJhZ21lbnQsXG4gICAgICBzZXJpZXMsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIHVuaXQsXG4gICAgICB0YXJnZXQsXG4gICAgICBsYWJlbCxcbiAgICAgIGNvbG9yLFxuICAgICAgeWVsbG93UmFuZ2VNaW46IGdldChmb3JtVmFsdWUsICd5ZWxsb3dSYW5nZS5taW4nKSxcbiAgICAgIHllbGxvd1JhbmdlTWF4OiBnZXQoZm9ybVZhbHVlLCAneWVsbG93UmFuZ2UubWF4JyksXG4gICAgICByZWRSYW5nZU1pbjogZ2V0KGZvcm1WYWx1ZSwgJ3JlZFJhbmdlLm1pbicpLFxuICAgICAgcmVkUmFuZ2VNYXg6IGdldChmb3JtVmFsdWUsICdyZWRSYW5nZS5tYXgnKSxcbiAgICAgIG1pbjogZ2V0KGZvcm1WYWx1ZSwgJ3JhbmdlLm1pbicpLFxuICAgICAgbWF4OiBnZXQoZm9ybVZhbHVlLCAncmFuZ2UubWF4JylcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkKGRhdGE6IERhdGEpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICBjb25zdCB7IGZyYWdtZW50LCBzZXJpZXMgfSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XG4gICAgY29uc3QgaHVtYW5pemUgPSBuZXcgSHVtYW5pemVQaXBlKCk7XG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAgZnJhZ21lbnQgJiYgc2VyaWVzXG4gICAgICAgID8gaHVtYW5pemUudHJhbnNmb3JtKGAke2ZyYWdtZW50fSA9PiAke3Nlcmllc31gKVxuICAgICAgICA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZ2V0dGV4dCgnTmV3IGRhdGEgcG9pbnQgdGVtcGxhdGUnKSk7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgY29sb3IgPSBhd2FpdCB0aGlzLmNvbG9yU2VydmljZS5nZW5lcmF0ZUNvbG9yKGN1cnJlbnREYXRlKTtcblxuICAgIGNvbnN0IGNvbnRleHRGYWxsYmFjayA9IHtcbiAgICAgIGM4eV9LcGk6IHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIGZyYWdtZW50LFxuICAgICAgICBzZXJpZXMsXG4gICAgICAgIGNvbG9yXG4gICAgICB9LFxuICAgICAgYzh5X0dsb2JhbDogIXRoaXMuY29uZmlnPy5kb05vdEFkZEdsb2JhbEZyYWdtZW50QnlEZWZhdWx0ID8ge30gOiBudWxsXG4gICAgfTtcbiAgICBjb25zdCBjb250ZXh0RGF0YSA9IHRoaXMuaXNDb250ZXh0U2V0KGRhdGEpID8gZGF0YS5jb250ZXh0RGF0YSA6IGNvbnRleHRGYWxsYmFjaztcblxuICAgIGNvbnN0IHsgaWQgfSA9IGNvbnRleHREYXRhO1xuICAgIGlmIChpZCkge1xuICAgICAgdGhpcy5kYXRhcG9pbnRVcGRhdGUoKGF3YWl0IHRoaXMuaW52ZW50b3J5LmRldGFpbChpZCkpLmRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFwb2ludFVwZGF0ZShjb250ZXh0RGF0YSk7XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzQ29udGV4dFNldChkYXRhOiBEYXRhKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGEgJiYgIWlzRW1wdHkoZGF0YS5jb250ZXh0RGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRGb3JtKCkge1xuICAgIHRoaXMucmFuZ2UgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKFxuICAgICAge1xuICAgICAgICBtaW46IFt1bmRlZmluZWQsIFtdXSxcbiAgICAgICAgbWF4OiBbdW5kZWZpbmVkLCBbXV1cbiAgICAgIH0sXG4gICAgICB7IHZhbGlkYXRvcnM6IFtDOHlWYWxpZGF0b3JzLm1pbk1heFZhbGlkYXRvcigpLCBDOHlWYWxpZGF0b3JzLnJlcXVpcmVCb3RoTWluQW5kTWF4KCldIH1cbiAgICApO1xuICAgIHRoaXMucmVkUmFuZ2UgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKFxuICAgICAge1xuICAgICAgICBtaW46IFt1bmRlZmluZWQsIFtdXSxcbiAgICAgICAgbWF4OiBbdW5kZWZpbmVkLCBbXV1cbiAgICAgIH0sXG4gICAgICB7IHZhbGlkYXRvcnM6IFtDOHlWYWxpZGF0b3JzLm1pbk1heFZhbGlkYXRvcigpLCBDOHlWYWxpZGF0b3JzLnJlcXVpcmVCb3RoTWluQW5kTWF4KCldIH1cbiAgICApO1xuICAgIHRoaXMueWVsbG93UmFuZ2UgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKFxuICAgICAge1xuICAgICAgICBtaW46IFt1bmRlZmluZWQsIFtdXSxcbiAgICAgICAgbWF4OiBbdW5kZWZpbmVkLCBbXV1cbiAgICAgIH0sXG4gICAgICB7IHZhbGlkYXRvcnM6IFtDOHlWYWxpZGF0b3JzLm1pbk1heFZhbGlkYXRvcigpLCBDOHlWYWxpZGF0b3JzLnJlcXVpcmVCb3RoTWluQW5kTWF4KCldIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKFxuICAgICAge1xuICAgICAgICBjb2xvcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNCldXSxcbiAgICAgICAgbGFiZWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApXV0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBbJycsIFtdXSxcbiAgICAgICAgZnJhZ21lbnQ6IFtcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eW14uXSokLylcbiAgICAgICAgICBdXG4gICAgICAgIF0sXG4gICAgICAgIHNlcmllczogW1xuICAgICAgICAgICcnLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSxcbiAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCksXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL15bXi5dKiQvKVxuICAgICAgICAgIF1cbiAgICAgICAgXSxcbiAgICAgICAgcmFuZ2U6IHRoaXMucmFuZ2UsXG4gICAgICAgIHVuaXQ6IFt1bmRlZmluZWQsIFtdXSxcbiAgICAgICAgdGFyZ2V0OiBbdW5kZWZpbmVkLCBbXV0sXG4gICAgICAgIHJlZFJhbmdlOiB0aGlzLnJlZFJhbmdlLFxuICAgICAgICB5ZWxsb3dSYW5nZTogdGhpcy55ZWxsb3dSYW5nZSxcbiAgICAgICAgYzh5X0dsb2JhbDogWyF0aGlzLmNvbmZpZz8uZG9Ob3RBZGRHbG9iYWxGcmFnbWVudEJ5RGVmYXVsdCwgW11dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWxpZGF0b3JzOiBbXG4gICAgICAgICAgQzh5VmFsaWRhdG9ycy53aXRoaW5TY2FsZSgncmVkUmFuZ2UubWluJyksXG4gICAgICAgICAgQzh5VmFsaWRhdG9ycy53aXRoaW5TY2FsZSgncmVkUmFuZ2UubWF4JyksXG4gICAgICAgICAgQzh5VmFsaWRhdG9ycy53aXRoaW5TY2FsZSgneWVsbG93UmFuZ2UubWluJyksXG4gICAgICAgICAgQzh5VmFsaWRhdG9ycy53aXRoaW5TY2FsZSgneWVsbG93UmFuZ2UubWF4JyksXG4gICAgICAgICAgQzh5VmFsaWRhdG9ycy53aXRoaW5TY2FsZSgndGFyZ2V0JylcbiAgICAgICAgXVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU51bGxWYWx1ZXModmFsdWUpIHtcbiAgICAvLyByZW1vdmUgbnVsbCB2YWx1ZXMgYmVmb3JlIHNlbmRpbmcgZGF0YSB0byBiYWNrZW5kXG4gICAgY29uc3QgY2xlYW5lZHVwVmFsdWVzID0gT2JqZWN0LmFzc2lnbih7fSwgdmFsdWUpO1xuICAgIE9iamVjdC5rZXlzKGNsZWFuZWR1cFZhbHVlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGNsZWFuZWR1cFZhbHVlc1trZXldID09PSBudWxsKSB7XG4gICAgICAgIGRlbGV0ZSBjbGVhbmVkdXBWYWx1ZXNba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2xlYW5lZHVwVmFsdWVzO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICB7eyBmb3JtR3JvdXAudmFsdWU/LmxhYmVsIH19XG4gIDxzbWFsbCAqbmdJZj1cImZvcm1Hcm91cC52YWx1ZT8uZnJhZ21lbnQgJiYgZm9ybUdyb3VwLnZhbHVlPy5zZXJpZXNcIj5cbiAgICB7eyBmb3JtR3JvdXAudmFsdWU/LmZyYWdtZW50IH19IC8ge3sgZm9ybUdyb3VwLnZhbHVlPy5zZXJpZXMgfX1cbiAgPC9zbWFsbD5cbjwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS10b29scydcIlxuICAgIFtsYWJlbF09XCInQ29uZmlndXJhdGlvbicgfCB0cmFuc2xhdGVcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktZGF0YS1wb2ludHMnXCJcbiAgICBbbGFiZWxdPVwiJ0RhdGEgcG9pbnQgbGlicmFyeScgfCB0cmFuc2xhdGVcIlxuICAgIFtwYXRoXT1cInBhdGhcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktZGF0YS1wb2ludHMnXCJcbiAgICBbbGFiZWxdPVwiZm9ybUdyb3VwLnZhbHVlPy5sYWJlbFwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Zm9ybVxuICAobmdTdWJtaXQpPVwiZm9ybUdyb3VwLnZhbGlkICYmIHNhdmUoZm9ybUdyb3VwLnZhbHVlKVwiXG4gIChjaGFuZ2UpPVwiZm9ybUNoYW5nZSgpXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICBjbGFzcz1cImNhcmQgY29udGVudC1mdWxscGFnZSBjYXJkLS1ncmlkIGdyaWRfX2NvbC0tNi02LS1tZCBncmlkX19yb3ctLWZpdC1hdXRvXCJcbiAgbm92YWxpZGF0ZVxuPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbGFyZ2UtcGFkZGluZyBzZXBhcmF0b3IgZ3JpZF9fY29sLS1mdWxsc3BhblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XG4gICAgICB7eyBmb3JtR3JvdXAudmFsdWU/LmxhYmVsIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZ1wiIGNsYXNzPVwiZC1jb250ZW50c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGwgYmctbGV2ZWwtMCBmbGV4LWdyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIGxhcmdlLXBhZGRpbmdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+Q29sb3I8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGEtcG9pbnQtY29sb3IgZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjOHktY29sb3JwaWNrZXJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NvbG9yIHBpY2tlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJmb3JtR3JvdXAudmFsdWU/LmNvbG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwiZmxleC1ncm93IHAtbC04XCI+XG4gICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPkxhYmVsPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxhYmVsXCJcbiAgICAgICAgICAgICAgbmFtZT1cImxhYmVsXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIFRlbXBlcmF0dXJlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzXG4gICAgICAgICAgICAgIFtzaG93XT1cImZvcm1Hcm91cC5jb250cm9scz8ubGFiZWw/LnRvdWNoZWQgJiYgZm9ybUdyb3VwLmNvbnRyb2xzPy5sYWJlbD8uZXJyb3JzXCJcbiAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+RGVzY3JpcHRpb248L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiBBbWJpZW50IFRlbXBlcmF0dXJlIGluIENlbHNpdXMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHJvd3M9XCIzXCJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJmbGV4LWdyb3dcIj5cbiAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+RnJhZ21lbnQ8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgbmFtZT1cImZyYWdtZW50XCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZnJhZ21lbnRcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogJ2M4eV9UZW1wZXJhdHVyZScgfVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzXG4gICAgICAgICAgICAgIFtzaG93XT1cImZvcm1Hcm91cC5jb250cm9scz8uZnJhZ21lbnQ/LnRvdWNoZWQgJiYgZm9ybUdyb3VwLmNvbnRyb2xzPy5mcmFnbWVudD8uZXJyb3JzXCJcbiAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwiZmxleC1ncm93XCI+XG4gICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPlNlcmllczwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZXJpZXNcIlxuICAgICAgICAgICAgICBuYW1lPVwic2VyaWVzXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdUJyB9XCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxjOHktbWVzc2FnZXNcbiAgICAgICAgICAgICAgW3Nob3ddPVwiZm9ybUdyb3VwLmNvbnRyb2xzPy5zZXJpZXM/LnRvdWNoZWQgJiYgZm9ybUdyb3VwLmNvbnRyb2xzPy5zZXJpZXM/LmVycm9yc1wiXG4gICAgICAgICAgICA+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1uby1ncm93XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHAtbC04IHAtci04XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInBpY2tEYXRhcG9pbnQoKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbdG9vbHRpcF09XCInTG9hZCBmcmFnbWVudCBhbmQgc2VyaWVzIGZyb20gYW4gZXhpc3RpbmcgZGF0YSBwb2ludCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTG9hZCBmcmFnbWVudCBhbmQgc2VyaWVzIGZyb20gYW4gZXhpc3RpbmcgZGF0YSBwb2ludCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiZXllZHJvcHBlclwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJjb25maWc/LnNob3dDaGVja2JveEZvckdsb2JhbEZyYWdtZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XG4gICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImM4eS1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPVwiYzh5X0dsb2JhbFwiIGZvcm1Db250cm9sTmFtZT1cImM4eV9HbG9iYWxcIiB0eXBlPVwiY2hlY2tib3hcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+R2xvYmFsbHkgYXZhaWxhYmxlPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbcG9wb3Zlcl09XCJcbiAgICAgICAgICAgICAgICAgICAgJ1dpbGwgbWFrZSB0aGlzIGVudHJ5IGF2YWlsYWJsZSB0byBhbGwgdXNlcnMgb24gdGhlIHRlbmFudCBpZiBjaGVja2VkLidcbiAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5uZXItc2Nyb2xsIGJnLWxldmVsLTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIGxhcmdlLXBhZGRpbmdcIj5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0XCI+XG4gICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+UHJldmlldzwvbGVnZW5kPlxuICAgICAgICAgIDxjOHktcmFuZ2UtZGlzcGxheSBbY29uZmlnXT1cInJhbmdlQ29uZmlnXCIgY2xhc3M9XCJtLWItMTYgZC1ibG9ja1wiPjwvYzh5LXJhbmdlLWRpc3BsYXk+XG4gICAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0XCI+XG4gICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+UmFuZ2U8L2xlZ2VuZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgZm9ybUdyb3VwTmFtZT1cInJhbmdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaGFzLWVycm9yJzogcmFuZ2U/LnRvdWNoZWQgJiYgcmFuZ2U/LmNvbnRyb2xzPy5taW4/LmVycm9ycyB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+TWluPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pblwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6IDAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtzaG93XT1cInJhbmdlPy50b3VjaGVkICYmIHJhbmdlLmNvbnRyb2xzPy5taW4/LmVycm9yc1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaGFzLWVycm9yJzogcmFuZ2U/LnRvdWNoZWQgJiYgcmFuZ2U/LmNvbnRyb2xzPy5tYXg/LmVycm9ycyB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+TWF4PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6IDEwMCB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW3Nob3ddPVwicmFuZ2U/LnRvdWNoZWQgJiYgcmFuZ2UuY29udHJvbHM/Lm1heD8uZXJyb3JzXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+VW5pdDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwidW5pdFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1bml0XCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnwrpDJyB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXNcbiAgICAgICAgICAgICAgICAgIFtzaG93XT1cImZvcm1Hcm91cC5jb250cm9scz8udW5pdD8udG91Y2hlZCAmJiBmb3JtR3JvdXAuY29udHJvbHM/LnVuaXQ/LmVycm9yc1wiXG4gICAgICAgICAgICAgICAgPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXBcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnaGFzLWVycm9yJzpcbiAgICAgICAgICAgICAgICAgICAgKHJhbmdlPy50b3VjaGVkIHx8IGZvcm1Hcm91cC5jb250cm9scz8udGFyZ2V0Py50b3VjaGVkKSAmJlxuICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuY29udHJvbHM/LnRhcmdldD8uZXJyb3JzXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPlRhcmdldDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0YXJnZXRcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGFyZ2V0XCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAyNSB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXNcbiAgICAgICAgICAgICAgICAgIFtzaG93XT1cIlxuICAgICAgICAgICAgICAgICAgICAocmFuZ2U/LnRvdWNoZWQgfHwgZm9ybUdyb3VwLmNvbnRyb2xzPy50YXJnZXQ/LnRvdWNoZWQpICYmXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5jb250cm9scz8udGFyZ2V0Py5lcnJvcnNcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0XCIgZm9ybUdyb3VwTmFtZT1cInllbGxvd1JhbmdlXCI+XG4gICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+WWVsbG93IHJhbmdlPC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdoYXMtZXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAocmFuZ2U/LnRvdWNoZWQgfHwgeWVsbG93UmFuZ2U/LnRvdWNoZWQpICYmIHllbGxvd1JhbmdlPy5jb250cm9scz8ubWluPy5lcnJvcnNcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+TWluPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pblwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6IDUwIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlc1xuICAgICAgICAgICAgICAgICAgW3Nob3ddPVwiXG4gICAgICAgICAgICAgICAgICAgIChyYW5nZT8udG91Y2hlZCB8fCB5ZWxsb3dSYW5nZT8udG91Y2hlZCkgJiYgeWVsbG93UmFuZ2UuY29udHJvbHM/Lm1pbj8uZXJyb3JzXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ2hhcy1lcnJvcic6XG4gICAgICAgICAgICAgICAgICAgIChyYW5nZT8udG91Y2hlZCB8fCB5ZWxsb3dSYW5nZT8udG91Y2hlZCkgJiYgeWVsbG93UmFuZ2U/LmNvbnRyb2xzPy5tYXg/LmVycm9yc1xuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5NYXg8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWF4XCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogNzUgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzXG4gICAgICAgICAgICAgICAgICBbc2hvd109XCJcbiAgICAgICAgICAgICAgICAgICAgKHJhbmdlPy50b3VjaGVkIHx8IHllbGxvd1JhbmdlPy50b3VjaGVkKSAmJiB5ZWxsb3dSYW5nZS5jb250cm9scz8ubWF4Py5lcnJvcnNcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0XCIgZm9ybUdyb3VwTmFtZT1cInJlZFJhbmdlXCI+XG4gICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+UmVkIHJhbmdlPC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdoYXMtZXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAocmFuZ2U/LnRvdWNoZWQgfHwgcmVkUmFuZ2U/LnRvdWNoZWQpICYmIHJlZFJhbmdlPy5jb250cm9scz8ubWluPy5lcnJvcnNcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+TWluPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pblwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6IDc1IH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlc1xuICAgICAgICAgICAgICAgICAgW3Nob3ddPVwiKHJhbmdlPy50b3VjaGVkIHx8IHJlZFJhbmdlPy50b3VjaGVkKSAmJiByZWRSYW5nZS5jb250cm9scz8ubWluPy5lcnJvcnNcIlxuICAgICAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ2hhcy1lcnJvcic6XG4gICAgICAgICAgICAgICAgICAgIChyYW5nZT8udG91Y2hlZCB8fCByZWRSYW5nZT8udG91Y2hlZCkgJiYgcmVkUmFuZ2U/LmNvbnRyb2xzPy5tYXg/LmVycm9yc1xuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5NYXg8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWF4XCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogMTAwIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlc1xuICAgICAgICAgICAgICAgICAgW3Nob3ddPVwiKHJhbmdlPy50b3VjaGVkIHx8IHJlZFJhbmdlPy50b3VjaGVkKSAmJiByZWRSYW5nZS5jb250cm9scz8ubWF4Py5lcnJvcnNcIlxuICAgICAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgc2VwYXJhdG9yIGdyaWRfX2NvbC0tZnVsbHNwYW5cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCIgdHlwZT1cImJ1dHRvblwiIFt0aXRsZV09XCInQ2FuY2VsJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAge3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tZm9ybVwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIFt0aXRsZV09XCInU2F2ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgKmM4eUlmQWxsb3dlZD1cIlsnUk9MRV9JTlZFTlRPUllfQURNSU4nLCAnUk9MRV9JTlZFTlRPUllfVVBEQVRFJ107IGFsbG93QW55OiB0cnVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtR3JvdXAuaW52YWxpZCB8fCBmb3JtR3JvdXAucHJpc3RpbmVcIlxuICAgID5cbiAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LWxpYnJhcnktZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kYXRhcG9pbnQtbGlicmFyeS9kZXRhaWxzL2RhdGFwb2ludC1saWJyYXJ5LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZGF0YXBvaW50LWxpYnJhcnkvZGV0YWlscy9kYXRhcG9pbnQtbGlicmFyeS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQWtCLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN2QixNQUFNLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0Qs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LENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFLO1FBQzVCLG9EQUFvRDtRQUNwRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2pDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOzs2SEFoUlUsZ0NBQWdDLHVTQXVCckIsd0JBQXdCO2lIQXZCbkMsZ0NBQWdDLHlGQzVCN0MsNDFaQXdWQSwyQ0Q5VFksVUFBVSxvd0ZBQUUsWUFBWSw4QkFBRSxhQUFhLDhWQUFFLGFBQWEsa2tCQUFFLHVCQUF1QjsyRkFFOUUsZ0NBQWdDO2tCQU41QyxTQUFTOytCQUNFLCtCQUErQixjQUU3QixJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLENBQUM7OzBCQXlCdkYsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIERhdGEsIFJvdXRlciwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBDb3JlTW9kdWxlLCBnZXR0ZXh0LCBIdW1hbml6ZVBpcGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldCwgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERhdGFwb2ludExpYnJhcnlPcHRpb25zLFxuICBEQVRBUE9JTlRfTElCUkFSWV9DT05GSUcsXG4gIHBhdGhUb0RhdGFwb2ludExpYnJhcnlcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kYXRhcG9pbnQtbGlicmFyeS9tb2RlbCc7XG5pbXBvcnQgeyBDOHlWYWxpZGF0b3JzLCBDb2xvclNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBEYXRhcG9pbnRQYXJzZXJTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kYXRhcG9pbnQtbGlicmFyeS9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBEYXRhcG9pbnRTZWxlY3Rvck1vZHVsZSxcbiAgRGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGF0YXBvaW50LXNlbGVjdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhdGFwb2ludC1saWJyYXJ5LWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXBvaW50LWxpYnJhcnktZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIFBvcG92ZXJNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIERhdGFwb2ludFNlbGVjdG9yTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRMaWJyYXJ5RGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcGF0aCA9IHBhdGhUb0RhdGFwb2ludExpYnJhcnk7XG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxEYXRhcG9pbnRMaWJyYXJ5RGV0YWlsc0NvbXBvbmVudFsnaW5pdEZvcm0nXT47XG4gIHJhbmdlOiBGb3JtR3JvdXA7XG4gIHJlZFJhbmdlOiBGb3JtR3JvdXA7XG4gIHllbGxvd1JhbmdlOiBGb3JtR3JvdXA7XG4gIGRhdGFwb2ludDogSU1hbmFnZWRPYmplY3Q7XG4gIGlzTG9hZGluZyA9IHRydWU7XG5cbiAgcmFuZ2VDb25maWcgPSB7fTtcblxuICByb3V0ZVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbG9yU2VydmljZTogQ29sb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFyc2VyOiBEYXRhcG9pbnRQYXJzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlOiBEYXRhcG9pbnRTZWxlY3RvclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChEQVRBUE9JTlRfTElCUkFSWV9DT05GSUcpIHB1YmxpYyBjb25maWc6IERhdGFwb2ludExpYnJhcnlPcHRpb25zXG4gICkge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yb3V0ZVN1YiA9IHRoaXMuYWN0aXZhdGVkUm91dGUucGFyZW50LmRhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5sb2FkKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucm91dGVTdWIpIHtcbiAgICAgIHRoaXMucm91dGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzYXZlKHZhbHVlKSB7XG4gICAgY29uc3Qga3BpVmFsdWVzID0gdGhpcy5leHRyYWN0S3BpVmFsdWVzRnJvbUZvcm1WYWx1ZSh2YWx1ZSk7XG4gICAgY29uc3Qga3BpID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kYXRhcG9pbnQ/LmM4eV9LcGkgfHwge30sIGtwaVZhbHVlcyk7XG4gICAgY29uc3QgY2xlYW5lZFVwS3BpID0gdGhpcy5yZW1vdmVOdWxsVmFsdWVzKGtwaSk7XG5cbiAgICBjb25zdCBtbzogUGFydGlhbDxJTWFuYWdlZE9iamVjdD4gPSB7XG4gICAgICBjOHlfS3BpOiBjbGVhbmVkVXBLcGksXG4gICAgICBjOHlfR2xvYmFsOiB2YWx1ZS5jOHlfR2xvYmFsID8ge30gOiBudWxsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuZGF0YXBvaW50Py5pZCkge1xuICAgICAgICBtby5pZCA9IHRoaXMuZGF0YXBvaW50LmlkO1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmludmVudG9yeS51cGRhdGUobW8pO1xuICAgICAgICB0aGlzLmRhdGFwb2ludFVwZGF0ZShyZXMuZGF0YSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNhdmVTdWNjZXNzKGdldHRleHQoJ0RhdGEgcG9pbnQgbGlicmFyeSBlbnRyeScpKSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZHVyaW5nIG1hbmFnZWRPYmplY3QgY3JlYXRpb24gKFBPU1QpIGEgZnJhZ21lbnQgd2l0aCB0aGUgdmFsdWUgbnVsbCBpcyBhY3R1YWxseSBiZWluZyBjcmVhdGVkIGFuZCBzdG9yZWQgdG8gdGhlIERCIGNvbXBhcmVkIHRvIGFuIHVwZGF0ZSAoUFVUKSB3aGljaCB3b3VsZCByZW1vdmUgdGhlIGZyYWdtZW50LlxuICAgICAgICAvLyBhcyB3ZSBkb24ndCB3YW50IHRvIGhhdmUgdGhhdCBmcmFnbWVudCBzdG9yZWQgaW4gREIgKGlmIHNldCB0byBudWxsKSwgd2Ugd2lsbCBqdXN0IHNldCBpdCB0byB1bmRlZmluZWQuXG4gICAgICAgIGlmIChtby5jOHlfR2xvYmFsID09PSBudWxsKSB7XG4gICAgICAgICAgbW8uYzh5X0dsb2JhbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmludmVudG9yeS5jcmVhdGUobW8pO1xuICAgICAgICB0aGlzLmRhdGFwb2ludFVwZGF0ZShyZXMuZGF0YSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmNyZWF0ZVN1Y2Nlc3MoZ2V0dGV4dCgnRGF0YSBwb2ludCBsaWJyYXJ5IGVudHJ5JykpKCk7XG4gICAgICB9XG4gICAgICB0aGlzLm5hdmlnYXRlQmFja1RvTGlzdCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMubmF2aWdhdGVCYWNrVG9MaXN0KCk7XG4gIH1cblxuICBmb3JtQ2hhbmdlKCkge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGtwaVZhbHVlcyA9IHRoaXMuZXh0cmFjdEtwaVZhbHVlc0Zyb21Gb3JtVmFsdWUodGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgIHRoaXMucmFuZ2VDb25maWcgPSBPYmplY3QuYXNzaWduKHsgb3JpZW50YXRpb246ICdob3Jpem9udGFsJyB9LCBrcGlWYWx1ZXMpO1xuICB9XG5cbiAgYXN5bmMgcGlja0RhdGFwb2ludCgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YXBvaW50cyA9IGF3YWl0IHRoaXMuZGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlLnNlbGVjdERhdGFQb2ludHMoe1xuICAgICAgICBmaW5pc2hXaXRoRmlyc3RTZWxlY3Rpb246IHRydWUsXG4gICAgICAgIGlnbm9yZURhdGFwb2ludFRlbXBsYXRlczogdHJ1ZSxcbiAgICAgICAgZ3Vlc3NEYXRhcG9pbnRVbml0OiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBpZiAoZGF0YXBvaW50cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZGF0YXBvaW50ID0gZGF0YXBvaW50c1swXTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgZnJhZ21lbnQ6IGRhdGFwb2ludC5mcmFnbWVudCxcbiAgICAgICAgICBzZXJpZXM6IGRhdGFwb2ludC5zZXJpZXMsXG4gICAgICAgICAgY29sb3I6IGRhdGFwb2ludC5jb2xvcixcbiAgICAgICAgICBsYWJlbDogZGF0YXBvaW50LmxhYmVsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBc0RpcnR5KCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8vIG1vZGFsIGNsb3NlZFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVCYWNrVG9MaXN0KCkge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF0aFRvRGF0YXBvaW50TGlicmFyeV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRhcG9pbnRVcGRhdGUodG1wRGF0YXBvaW50OiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGNvbnN0IGRhdGFwb2ludCA9IHRoaXMucGFyc2VyLnBhcnNlRGF0YXBvaW50KHRtcERhdGFwb2ludCk7XG4gICAgdGhpcy5kYXRhcG9pbnQgPSBkYXRhcG9pbnQ7XG4gICAgY29uc3Qge1xuICAgICAgZnJhZ21lbnQsXG4gICAgICBzZXJpZXMsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIHVuaXQsXG4gICAgICB0YXJnZXQsXG4gICAgICBsYWJlbCxcbiAgICAgIGNvbG9yLFxuICAgICAgeWVsbG93UmFuZ2VNaW4sXG4gICAgICB5ZWxsb3dSYW5nZU1heCxcbiAgICAgIHJlZFJhbmdlTWluLFxuICAgICAgcmVkUmFuZ2VNYXgsXG4gICAgICBtaW4sXG4gICAgICBtYXhcbiAgICB9ID0gZGF0YXBvaW50LmM4eV9LcGk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICBmcmFnbWVudCxcbiAgICAgIHNlcmllcyxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgdW5pdCxcbiAgICAgIHRhcmdldCxcbiAgICAgIGxhYmVsLFxuICAgICAgY29sb3IsXG4gICAgICByYW5nZTogeyBtaW4sIG1heCB9LFxuICAgICAgeWVsbG93UmFuZ2U6IHsgbWluOiB5ZWxsb3dSYW5nZU1pbiwgbWF4OiB5ZWxsb3dSYW5nZU1heCB9LFxuICAgICAgcmVkUmFuZ2U6IHsgbWluOiByZWRSYW5nZU1pbiwgbWF4OiByZWRSYW5nZU1heCB9LFxuICAgICAgYzh5X0dsb2JhbDogISFkYXRhcG9pbnQuYzh5X0dsb2JhbFxuICAgIH0pO1xuICAgIHRoaXMuZm9ybUNoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0S3BpVmFsdWVzRnJvbUZvcm1WYWx1ZShmb3JtVmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHsgZnJhZ21lbnQsIHNlcmllcywgZGVzY3JpcHRpb24sIHVuaXQsIHRhcmdldCwgbGFiZWwsIGNvbG9yIH0gPSBmb3JtVmFsdWU7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyYWdtZW50LFxuICAgICAgc2VyaWVzLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICB1bml0LFxuICAgICAgdGFyZ2V0LFxuICAgICAgbGFiZWwsXG4gICAgICBjb2xvcixcbiAgICAgIHllbGxvd1JhbmdlTWluOiBnZXQoZm9ybVZhbHVlLCAneWVsbG93UmFuZ2UubWluJyksXG4gICAgICB5ZWxsb3dSYW5nZU1heDogZ2V0KGZvcm1WYWx1ZSwgJ3llbGxvd1JhbmdlLm1heCcpLFxuICAgICAgcmVkUmFuZ2VNaW46IGdldChmb3JtVmFsdWUsICdyZWRSYW5nZS5taW4nKSxcbiAgICAgIHJlZFJhbmdlTWF4OiBnZXQoZm9ybVZhbHVlLCAncmVkUmFuZ2UubWF4JyksXG4gICAgICBtaW46IGdldChmb3JtVmFsdWUsICdyYW5nZS5taW4nKSxcbiAgICAgIG1heDogZ2V0KGZvcm1WYWx1ZSwgJ3JhbmdlLm1heCcpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZChkYXRhOiBEYXRhKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgY29uc3QgeyBmcmFnbWVudCwgc2VyaWVzIH0gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xuICAgIGNvbnN0IGh1bWFuaXplID0gbmV3IEh1bWFuaXplUGlwZSgpO1xuICAgIGNvbnN0IGxhYmVsID1cbiAgICAgIGZyYWdtZW50ICYmIHNlcmllc1xuICAgICAgICA/IGh1bWFuaXplLnRyYW5zZm9ybShgJHtmcmFnbWVudH0gPT4gJHtzZXJpZXN9YClcbiAgICAgICAgOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGdldHRleHQoJ05ldyBkYXRhIHBvaW50IHRlbXBsYXRlJykpO1xuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGNvbG9yID0gYXdhaXQgdGhpcy5jb2xvclNlcnZpY2UuZ2VuZXJhdGVDb2xvcihjdXJyZW50RGF0ZSk7XG5cbiAgICBjb25zdCBjb250ZXh0RmFsbGJhY2sgPSB7XG4gICAgICBjOHlfS3BpOiB7XG4gICAgICAgIGxhYmVsLFxuICAgICAgICBmcmFnbWVudCxcbiAgICAgICAgc2VyaWVzLFxuICAgICAgICBjb2xvclxuICAgICAgfSxcbiAgICAgIGM4eV9HbG9iYWw6ICF0aGlzLmNvbmZpZz8uZG9Ob3RBZGRHbG9iYWxGcmFnbWVudEJ5RGVmYXVsdCA/IHt9IDogbnVsbFxuICAgIH07XG4gICAgY29uc3QgY29udGV4dERhdGEgPSB0aGlzLmlzQ29udGV4dFNldChkYXRhKSA/IGRhdGEuY29udGV4dERhdGEgOiBjb250ZXh0RmFsbGJhY2s7XG5cbiAgICBjb25zdCB7IGlkIH0gPSBjb250ZXh0RGF0YTtcbiAgICBpZiAoaWQpIHtcbiAgICAgIHRoaXMuZGF0YXBvaW50VXBkYXRlKChhd2FpdCB0aGlzLmludmVudG9yeS5kZXRhaWwoaWQpKS5kYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhcG9pbnRVcGRhdGUoY29udGV4dERhdGEpO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRleHRTZXQoZGF0YTogRGF0YSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRhICYmICFpc0VtcHR5KGRhdGEuY29udGV4dERhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Rm9ybSgpIHtcbiAgICB0aGlzLnJhbmdlID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cChcbiAgICAgIHtcbiAgICAgICAgbWluOiBbdW5kZWZpbmVkLCBbXV0sXG4gICAgICAgIG1heDogW3VuZGVmaW5lZCwgW11dXG4gICAgICB9LFxuICAgICAgeyB2YWxpZGF0b3JzOiBbQzh5VmFsaWRhdG9ycy5taW5NYXhWYWxpZGF0b3IoKSwgQzh5VmFsaWRhdG9ycy5yZXF1aXJlQm90aE1pbkFuZE1heCgpXSB9XG4gICAgKTtcbiAgICB0aGlzLnJlZFJhbmdlID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cChcbiAgICAgIHtcbiAgICAgICAgbWluOiBbdW5kZWZpbmVkLCBbXV0sXG4gICAgICAgIG1heDogW3VuZGVmaW5lZCwgW11dXG4gICAgICB9LFxuICAgICAgeyB2YWxpZGF0b3JzOiBbQzh5VmFsaWRhdG9ycy5taW5NYXhWYWxpZGF0b3IoKSwgQzh5VmFsaWRhdG9ycy5yZXF1aXJlQm90aE1pbkFuZE1heCgpXSB9XG4gICAgKTtcbiAgICB0aGlzLnllbGxvd1JhbmdlID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cChcbiAgICAgIHtcbiAgICAgICAgbWluOiBbdW5kZWZpbmVkLCBbXV0sXG4gICAgICAgIG1heDogW3VuZGVmaW5lZCwgW11dXG4gICAgICB9LFxuICAgICAgeyB2YWxpZGF0b3JzOiBbQzh5VmFsaWRhdG9ycy5taW5NYXhWYWxpZGF0b3IoKSwgQzh5VmFsaWRhdG9ycy5yZXF1aXJlQm90aE1pbkFuZE1heCgpXSB9XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cChcbiAgICAgIHtcbiAgICAgICAgY29sb3I6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDQpXV0sXG4gICAgICAgIGxhYmVsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV1dLFxuICAgICAgICBkZXNjcmlwdGlvbjogWycnLCBbXV0sXG4gICAgICAgIGZyYWdtZW50OiBbXG4gICAgICAgICAgJycsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKSxcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXlteLl0qJC8pXG4gICAgICAgICAgXVxuICAgICAgICBdLFxuICAgICAgICBzZXJpZXM6IFtcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eW14uXSokLylcbiAgICAgICAgICBdXG4gICAgICAgIF0sXG4gICAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxuICAgICAgICB1bml0OiBbdW5kZWZpbmVkLCBbXV0sXG4gICAgICAgIHRhcmdldDogW3VuZGVmaW5lZCwgW11dLFxuICAgICAgICByZWRSYW5nZTogdGhpcy5yZWRSYW5nZSxcbiAgICAgICAgeWVsbG93UmFuZ2U6IHRoaXMueWVsbG93UmFuZ2UsXG4gICAgICAgIGM4eV9HbG9iYWw6IFshdGhpcy5jb25maWc/LmRvTm90QWRkR2xvYmFsRnJhZ21lbnRCeURlZmF1bHQsIFtdXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdG9yczogW1xuICAgICAgICAgIEM4eVZhbGlkYXRvcnMud2l0aGluU2NhbGUoJ3JlZFJhbmdlLm1pbicpLFxuICAgICAgICAgIEM4eVZhbGlkYXRvcnMud2l0aGluU2NhbGUoJ3JlZFJhbmdlLm1heCcpLFxuICAgICAgICAgIEM4eVZhbGlkYXRvcnMud2l0aGluU2NhbGUoJ3llbGxvd1JhbmdlLm1pbicpLFxuICAgICAgICAgIEM4eVZhbGlkYXRvcnMud2l0aGluU2NhbGUoJ3llbGxvd1JhbmdlLm1heCcpLFxuICAgICAgICAgIEM4eVZhbGlkYXRvcnMud2l0aGluU2NhbGUoJ3RhcmdldCcpXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVOdWxsVmFsdWVzKHZhbHVlKSB7XG4gICAgLy8gcmVtb3ZlIG51bGwgdmFsdWVzIGJlZm9yZSBzZW5kaW5nIGRhdGEgdG8gYmFja2VuZFxuICAgIGNvbnN0IGNsZWFuZWR1cFZhbHVlcyA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlKTtcbiAgICBPYmplY3Qua2V5cyhjbGVhbmVkdXBWYWx1ZXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChjbGVhbmVkdXBWYWx1ZXNba2V5XSA9PT0gbnVsbCkge1xuICAgICAgICBkZWxldGUgY2xlYW5lZHVwVmFsdWVzW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNsZWFuZWR1cFZhbHVlcztcbiAgfVxufVxuIiwiPGM4eS10aXRsZSAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAge3sgZm9ybUdyb3VwLnZhbHVlPy5sYWJlbCB9fVxuICA8c21hbGwgKm5nSWY9XCJmb3JtR3JvdXAudmFsdWU/LmZyYWdtZW50ICYmIGZvcm1Hcm91cC52YWx1ZT8uc2VyaWVzXCI+XG4gICAge3sgZm9ybUdyb3VwLnZhbHVlPy5mcmFnbWVudCB9fSAvIHt7IGZvcm1Hcm91cC52YWx1ZT8uc2VyaWVzIH19XG4gIDwvc21hbGw+XG48L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktdG9vbHMnXCJcbiAgICBbbGFiZWxdPVwiJ0NvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWRhdGEtcG9pbnRzJ1wiXG4gICAgW2xhYmVsXT1cIidEYXRhIHBvaW50IGxpYnJhcnknIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCJwYXRoXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWRhdGEtcG9pbnRzJ1wiXG4gICAgW2xhYmVsXT1cImZvcm1Hcm91cC52YWx1ZT8ubGFiZWxcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGZvcm1cbiAgKG5nU3VibWl0KT1cImZvcm1Hcm91cC52YWxpZCAmJiBzYXZlKGZvcm1Hcm91cC52YWx1ZSlcIlxuICAoY2hhbmdlKT1cImZvcm1DaGFuZ2UoKVwiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgY2xhc3M9XCJjYXJkIGNvbnRlbnQtZnVsbHBhZ2UgY2FyZC0tZ3JpZCBncmlkX19jb2wtLTYtNi0tbWQgZ3JpZF9fcm93LS1maXQtYXV0b1wiXG4gIG5vdmFsaWRhdGVcbj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGxhcmdlLXBhZGRpbmcgc2VwYXJhdG9yIGdyaWRfX2NvbC0tZnVsbHNwYW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxuICAgICAge3sgZm9ybUdyb3VwLnZhbHVlPy5sYWJlbCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmdcIiBjbGFzcz1cImQtY29udGVudHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5uZXItc2Nyb2xsIGJnLWxldmVsLTAgZmxleC1ncm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBsYXJnZS1wYWRkaW5nXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPkNvbG9yPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhLXBvaW50LWNvbG9yIGZvcm0tY29udHJvbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LWNvbG9ycGlja2VyXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDb2xvciBwaWNrZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZm9ybUdyb3VwLnZhbHVlPy5jb2xvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cImZsZXgtZ3JvdyBwLWwtOFwiPlxuICAgICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5MYWJlbDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsYWJlbFwiXG4gICAgICAgICAgICAgIG5hbWU9XCJsYWJlbFwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiBUZW1wZXJhdHVyZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGM4eS1tZXNzYWdlc1xuICAgICAgICAgICAgICBbc2hvd109XCJmb3JtR3JvdXAuY29udHJvbHM/LmxhYmVsPy50b3VjaGVkICYmIGZvcm1Hcm91cC5jb250cm9scz8ubGFiZWw/LmVycm9yc1wiXG4gICAgICAgICAgICA+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPkRlc2NyaXB0aW9uPC9sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4gQW1iaWVudCBUZW1wZXJhdHVyZSBpbiBDZWxzaXVzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICByb3dzPVwiM1wiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIGdhcC04XCI+XG4gICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwiZmxleC1ncm93XCI+XG4gICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPkZyYWdtZW50PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG5hbWU9XCJmcmFnbWVudFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZyYWdtZW50XCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICdjOHlfVGVtcGVyYXR1cmUnIH1cIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGM4eS1tZXNzYWdlc1xuICAgICAgICAgICAgICBbc2hvd109XCJmb3JtR3JvdXAuY29udHJvbHM/LmZyYWdtZW50Py50b3VjaGVkICYmIGZvcm1Hcm91cC5jb250cm9scz8uZnJhZ21lbnQ/LmVycm9yc1wiXG4gICAgICAgICAgICA+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cImZsZXgtZ3Jvd1wiPlxuICAgICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5TZXJpZXM8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VyaWVzXCJcbiAgICAgICAgICAgICAgbmFtZT1cInNlcmllc1wiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnVCcgfVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzXG4gICAgICAgICAgICAgIFtzaG93XT1cImZvcm1Hcm91cC5jb250cm9scz8uc2VyaWVzPy50b3VjaGVkICYmIGZvcm1Hcm91cC5jb250cm9scz8uc2VyaWVzPy5lcnJvcnNcIlxuICAgICAgICAgICAgPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbm8tZ3Jvd1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBwLWwtOCBwLXItOFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJwaWNrRGF0YXBvaW50KClcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ0xvYWQgZnJhZ21lbnQgYW5kIHNlcmllcyBmcm9tIGFuIGV4aXN0aW5nIGRhdGEgcG9pbnQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0xvYWQgZnJhZ21lbnQgYW5kIHNlcmllcyBmcm9tIGFuIGV4aXN0aW5nIGRhdGEgcG9pbnQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImV5ZWRyb3BwZXJcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiY29uZmlnPy5zaG93Q2hlY2tib3hGb3JHbG9iYWxGcmFnbWVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjOHktY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT1cImM4eV9HbG9iYWxcIiBmb3JtQ29udHJvbE5hbWU9XCJjOHlfR2xvYmFsXCIgdHlwZT1cImNoZWNrYm94XCIgLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkdsb2JhbGx5IGF2YWlsYWJsZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgW3BvcG92ZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICdXaWxsIG1ha2UgdGhpcyBlbnRyeSBhdmFpbGFibGUgdG8gYWxsIHVzZXJzIG9uIHRoZSB0ZW5hbnQgaWYgY2hlY2tlZC4nXG4gICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlubmVyLXNjcm9sbCBiZy1sZXZlbC0xXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBsYXJnZS1wYWRkaW5nXCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldFwiPlxuICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPlByZXZpZXc8L2xlZ2VuZD5cbiAgICAgICAgICA8Yzh5LXJhbmdlLWRpc3BsYXkgW2NvbmZpZ109XCJyYW5nZUNvbmZpZ1wiIGNsYXNzPVwibS1iLTE2IGQtYmxvY2tcIj48L2M4eS1yYW5nZS1kaXNwbGF5PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuXG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldFwiPlxuICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPlJhbmdlPC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIGZvcm1Hcm91cE5hbWU9XCJyYW5nZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcic6IHJhbmdlPy50b3VjaGVkICYmIHJhbmdlPy5jb250cm9scz8ubWluPy5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPk1pbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWluXCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAwIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcyBbc2hvd109XCJyYW5nZT8udG91Y2hlZCAmJiByYW5nZS5jb250cm9scz8ubWluPy5lcnJvcnNcIj48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcic6IHJhbmdlPy50b3VjaGVkICYmIHJhbmdlPy5jb250cm9scz8ubWF4Py5lcnJvcnMgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPk1heDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWF4XCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAxMDAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtzaG93XT1cInJhbmdlPy50b3VjaGVkICYmIHJhbmdlLmNvbnRyb2xzPy5tYXg/LmVycm9yc1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPlVuaXQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInVuaXRcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidW5pdFwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogJ8K6QycgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzXG4gICAgICAgICAgICAgICAgICBbc2hvd109XCJmb3JtR3JvdXAuY29udHJvbHM/LnVuaXQ/LnRvdWNoZWQgJiYgZm9ybUdyb3VwLmNvbnRyb2xzPy51bml0Py5lcnJvcnNcIlxuICAgICAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ2hhcy1lcnJvcic6XG4gICAgICAgICAgICAgICAgICAgIChyYW5nZT8udG91Y2hlZCB8fCBmb3JtR3JvdXAuY29udHJvbHM/LnRhcmdldD8udG91Y2hlZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzPy50YXJnZXQ/LmVycm9yc1xuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5UYXJnZXQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwidGFyZ2V0XCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhcmdldFwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogMjUgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzXG4gICAgICAgICAgICAgICAgICBbc2hvd109XCJcbiAgICAgICAgICAgICAgICAgICAgKHJhbmdlPy50b3VjaGVkIHx8IGZvcm1Hcm91cC5jb250cm9scz8udGFyZ2V0Py50b3VjaGVkKSAmJlxuICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuY29udHJvbHM/LnRhcmdldD8uZXJyb3JzXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuXG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldFwiIGZvcm1Hcm91cE5hbWU9XCJ5ZWxsb3dSYW5nZVwiPlxuICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPlllbGxvdyByYW5nZTwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXBcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnaGFzLWVycm9yJzpcbiAgICAgICAgICAgICAgICAgICAgKHJhbmdlPy50b3VjaGVkIHx8IHllbGxvd1JhbmdlPy50b3VjaGVkKSAmJiB5ZWxsb3dSYW5nZT8uY29udHJvbHM/Lm1pbj8uZXJyb3JzXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPk1pbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWluXCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiA1MCB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXNcbiAgICAgICAgICAgICAgICAgIFtzaG93XT1cIlxuICAgICAgICAgICAgICAgICAgICAocmFuZ2U/LnRvdWNoZWQgfHwgeWVsbG93UmFuZ2U/LnRvdWNoZWQpICYmIHllbGxvd1JhbmdlLmNvbnRyb2xzPy5taW4/LmVycm9yc1xuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdoYXMtZXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAocmFuZ2U/LnRvdWNoZWQgfHwgeWVsbG93UmFuZ2U/LnRvdWNoZWQpICYmIHllbGxvd1JhbmdlPy5jb250cm9scz8ubWF4Py5lcnJvcnNcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+TWF4PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6IDc1IH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlc1xuICAgICAgICAgICAgICAgICAgW3Nob3ddPVwiXG4gICAgICAgICAgICAgICAgICAgIChyYW5nZT8udG91Y2hlZCB8fCB5ZWxsb3dSYW5nZT8udG91Y2hlZCkgJiYgeWVsbG93UmFuZ2UuY29udHJvbHM/Lm1heD8uZXJyb3JzXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuXG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldFwiIGZvcm1Hcm91cE5hbWU9XCJyZWRSYW5nZVwiPlxuICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPlJlZCByYW5nZTwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXBcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnaGFzLWVycm9yJzpcbiAgICAgICAgICAgICAgICAgICAgKHJhbmdlPy50b3VjaGVkIHx8IHJlZFJhbmdlPy50b3VjaGVkKSAmJiByZWRSYW5nZT8uY29udHJvbHM/Lm1pbj8uZXJyb3JzXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPk1pbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWluXCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiA3NSB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXNcbiAgICAgICAgICAgICAgICAgIFtzaG93XT1cIihyYW5nZT8udG91Y2hlZCB8fCByZWRSYW5nZT8udG91Y2hlZCkgJiYgcmVkUmFuZ2UuY29udHJvbHM/Lm1pbj8uZXJyb3JzXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdoYXMtZXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAocmFuZ2U/LnRvdWNoZWQgfHwgcmVkUmFuZ2U/LnRvdWNoZWQpICYmIHJlZFJhbmdlPy5jb250cm9scz8ubWF4Py5lcnJvcnNcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+TWF4PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6IDEwMCB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXNcbiAgICAgICAgICAgICAgICAgIFtzaG93XT1cIihyYW5nZT8udG91Y2hlZCB8fCByZWRSYW5nZT8udG91Y2hlZCkgJiYgcmVkUmFuZ2UuY29udHJvbHM/Lm1heD8uZXJyb3JzXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIHNlcGFyYXRvciBncmlkX19jb2wtLWZ1bGxzcGFuXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIHR5cGU9XCJidXR0b25cIiBbdGl0bGVdPVwiJ0NhbmNlbCcgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgIHt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWZvcm1cIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICBbdGl0bGVdPVwiJ1NhdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICpjOHlJZkFsbG93ZWQ9XCJbJ1JPTEVfSU5WRU5UT1JZX0FETUlOJywgJ1JPTEVfSU5WRU5UT1JZX1VQREFURSddOyBhbGxvd0FueTogdHJ1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybUdyb3VwLmludmFsaWQgfHwgZm9ybUdyb3VwLnByaXN0aW5lXCJcbiAgICA+XG4gICAgICB7eyAnU2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -65,6 +65,11 @@ class DatapointLibraryDetailsComponent {
65
65
  this.alertService.saveSuccess(gettext('Data point library entry'))();
66
66
  }
67
67
  else {
68
+ // during managedObject creation (POST) a fragment with the value null is actually being created and stored to the DB compared to an update (PUT) which would remove the fragment.
69
+ // as we don't want to have that fragment stored in DB (if set to null), we will just set it to undefined.
70
+ if (mo.c8y_Global === null) {
71
+ mo.c8y_Global = undefined;
72
+ }
68
73
  const res = yield this.inventory.create(mo);
69
74
  this.datapointUpdate(res.data);
70
75
  this.alertService.createSuccess(gettext('Data point library entry'))();