@alauda-fe/network 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm2022/index.mjs CHANGED
@@ -8,6 +8,8 @@ export * from './lib/types/k8s-exports';
8
8
  export { KUBE_OVN_GROUP, NETWORK_RESOURCE_DEFINITIONS, NETWORK_RESOURCE_TYPES, NetworkResourceDefinitions, } from './lib/types/resource-definition';
9
9
  export * from './lib/utils/cidr-exports';
10
10
  export * from './lib/utils/cluster-exports';
11
+ export * from './lib/utils/domain-exports';
11
12
  export * from './lib/utils/service-exports';
12
13
  export * from './lib/utils/subnet-exports';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCw0QkFBNEIsRUFDNUIsc0JBQXNCLEVBQ3RCLDBCQUEwQixHQUMzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDZXJ0aWZpY2F0ZVN0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2VydGlmaWNhdGUtc3RhdHVzL2NvbXBvbmVudCc7XG5leHBvcnQgeyBGaXhlZElwSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpeGVkLWlwL2NvbXBvbmVudCc7XG5leHBvcnQgeyBLOHNTZXJ2aWNlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VydmljZS1mb3JtL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3N1Ym5ldC12YWxpZGF0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NlcnRpZmljYXRlLWFwaS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25ldHdvcmstdXRpbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzL2s4cy1leHBvcnRzJztcbmV4cG9ydCB7XG4gIEtVQkVfT1ZOX0dST1VQLFxuICBORVRXT1JLX1JFU09VUkNFX0RFRklOSVRJT05TLFxuICBORVRXT1JLX1JFU09VUkNFX1RZUEVTLFxuICBOZXR3b3JrUmVzb3VyY2VEZWZpbml0aW9ucyxcbn0gZnJvbSAnLi9saWIvdHlwZXMvcmVzb3VyY2UtZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9jaWRyLWV4cG9ydHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY2x1c3Rlci1leHBvcnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NlcnZpY2UtZXhwb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9zdWJuZXQtZXhwb3J0cyc7XG4iXX0=
14
+ export * from './lib/utils/validators-exports';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCw0QkFBNEIsRUFDNUIsc0JBQXNCLEVBQ3RCLDBCQUEwQixHQUMzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2VydGlmaWNhdGVTdGF0dXNDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NlcnRpZmljYXRlLXN0YXR1cy9jb21wb25lbnQnO1xuZXhwb3J0IHsgRml4ZWRJcElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9maXhlZC1pcC9jb21wb25lbnQnO1xuZXhwb3J0IHsgSzhzU2VydmljZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlcnZpY2UtZm9ybS9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zdWJuZXQtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jZXJ0aWZpY2F0ZS1hcGkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9uZXR3b3JrLXV0aWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcy9rOHMtZXhwb3J0cyc7XG5leHBvcnQge1xuICBLVUJFX09WTl9HUk9VUCxcbiAgTkVUV09SS19SRVNPVVJDRV9ERUZJTklUSU9OUyxcbiAgTkVUV09SS19SRVNPVVJDRV9UWVBFUyxcbiAgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMsXG59IGZyb20gJy4vbGliL3R5cGVzL3Jlc291cmNlLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY2lkci1leHBvcnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2NsdXN0ZXItZXhwb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9kb21haW4tZXhwb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9zZXJ2aWNlLWV4cG9ydHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc3VibmV0LWV4cG9ydHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvdmFsaWRhdG9ycy1leHBvcnRzJztcbiJdfQ==
@@ -291,7 +291,7 @@ export class FixedIpInputComponent extends CommonFormControl {
291
291
  }
292
292
  isReservedIp(ip, excludeIps) {
293
293
  const Builder = getAddressBuilder(this.adaptIpMode(ip));
294
- return excludeIps.some(excludeIp => {
294
+ return excludeIps?.some(excludeIp => {
295
295
  if (excludeIp.includes('..')) {
296
296
  const [start, end] = excludeIp?.split('..');
297
297
  const _Builder = getAddressBuilder(this.adaptIpMode(start));
@@ -544,4 +544,4 @@ __decorate([
544
544
  type: Input
545
545
  }], errorsMapper$: [], isReservedIp: [], validate: [] }); })();
546
546
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FixedIpInputComponent, { className: "FixedIpInputComponent", filePath: "lib/components/fixed-ip/component.ts", lineNumber: 126 }); })();
547
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maXhlZC1pcC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpeGVkLWlwL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCx3QkFBd0IsRUFFeEIsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUVoQixvQkFBb0IsRUFDcEIsUUFBUSxHQUNULE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZUFBZSxFQUVmLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLE9BQU8sR0FFUixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FB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QVksTUFzQlosUUFBUTtrRkFyWkcscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlTW9kdWxlLFxuICBDb21tb25Gb3JtQ29udHJvbCxcbiAgRm9ybUl0ZW1XaWR0aCxcbiAgRm9ybU1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIFRhZ01vZHVsZSxcbiAgVGFnc0lucHV0Q29tcG9uZW50LFxuICBUb29sdGlwTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIEs4c0FwaVNlcnZpY2UsXG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIHB1Ymxpc2hSZWYsXG4gIHNraXBFcnJvcixcbiAgbWF0Y2hFeHByZXNzaW9uc1RvU3RyaW5nLFxuICBOYW1lc3BhY2UsXG4gIGJpbmQsXG4gIFRSQU5TTEFURV9NT0RVTEUsXG4gIFJFU09VUkNFX1RZUEVTLFxuICBFMmVBdHRyaWJ1dGVCaW5kaW5nRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBTdHJpbmdNYXAsXG4gIEVSUk9SU19NQVBQRVJfTU9EVUxFLFxuICBQdXJlUGlwZSxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19BU1lOQ19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdNb2RlbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdW5pcSwgdmFsdWVzIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgZmlyc3QsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgZm9ya0pvaW4sXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmV0d29ya1V0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmV0d29yay11dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VibmV0LCBTdWJuZXRJcCB9IGZyb20gJy4uLy4uL3R5cGVzL2s4cy1leHBvcnRzJztcbmltcG9ydCB7IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMgfSBmcm9tICcuLi8uLi90eXBlcy9yZXNvdXJjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7XG4gIElQTW9kZSxcbiAgTmV0d29ya01vZGUsXG4gIGFkYXB0SXBNb2RlLFxuICBhZGFwdFN1Ym5ldENpZHJzLFxuICBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMsXG4gIGlwQWRkcmVzc0VxdWFsLFxuICBpc0JlbG9uZ0NpZHIsXG4gIGlzQnJvYWRjYXN0QWRkcixcbiAgaXNJcEFkZHJlc3NWYWxpZCxcbiAgaXNOZXR3b3JrQWRkcixcbiAgZ2V0QWRkcmVzc0J1aWxkZXIsXG59IGZyb20gJy4uLy4uL3V0aWxzL2NpZHItZXhwb3J0cyc7XG5pbXBvcnQge1xuICBDbHVzdGVyTmV0d29ya1R5cGUsXG4gIEtVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYLFxufSBmcm9tICcuLi8uLi91dGlscy9zdWJuZXQtZXhwb3J0cyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2FjbC1maXhlZC1pcC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0Om5vdCg6bGFzdC1jaGlsZCkgYXVpLWZvcm0taXRlbSA6Om5nLWRlZXAgLmF1aS1mb3JtLWl0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpeGVkSXBJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaXhlZElwSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgUHVyZVBpcGUsXG4gICAgRTJlQXR0cmlidXRlQmluZGluZ0RpcmVjdGl2ZSxcbiAgICBFUlJPUlNfTUFQUEVSX01PRFVMRSxcbiAgICBGb3JtTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRhZ01vZHVsZSxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaXhlZElwSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBDb21tb25Gb3JtQ29udHJvbDxzdHJpbmcgfCBzdHJpbmdbXT5cbiAgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvclxue1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBjbHVzdGVyOiBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNsdXN0ZXIkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBuYW1lc3BhY2UkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIG5ldHdvcmtUeXBlOiBDbHVzdGVyTmV0d29ya1R5cGU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIG5ldHdvcmtUeXBlJCE6IE9ic2VydmFibGU8Q2x1c3Rlck5ldHdvcmtUeXBlPjtcblxuICBASW5wdXQoKVxuICBzdWJuZXQ6IFN1Ym5ldDtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc3VibmV0JCE6IE9ic2VydmFibGU8U3VibmV0PjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaGludDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGFkZG9uVGlwOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnaXBBZGRyZXNzJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGlwQWRkcmVzczogTmdNb2RlbDtcblxuICBAVmlld0NoaWxkKCd0YWdzSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgdGFnc0lucHV0OiBUYWdzSW5wdXRDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgZm9ybUl0ZW1XaWR0aDogRm9ybUl0ZW1XaWR0aCA9IEZvcm1JdGVtV2lkdGguTWVkaXVtO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB0YWdzSW5wdXQkITogT2JzZXJ2YWJsZTxUYWdzSW5wdXRDb21wb25lbnQ+O1xuXG4gIC8vIOiZmuaLn+acuuabtOaWsOaXtuaOkumZpOaOieiHqui6q1xuICBASW5wdXQoKVxuICBza2lwT2NjdXBpZWQgPSBmYWxzZTtcblxuICAvLyDnm67liY3lj4zmoIjlm7rlrpogSVAg5Y+q5pSv5oyBIElQdjRcbiAgQElucHV0KClcbiAgZW5hYmxlRml4SXBWNkZvckR1YWwgPSBmYWxzZTtcblxuICBASW5wdXQoKSBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnM7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBlcnJvcnMkITogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzPjtcblxuICBASW5wdXQoKSBlcnJvcnNNYXBwZXI6IFN0cmluZ01hcDtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGVycm9yc01hcHBlciQhOiBPYnNlcnZhYmxlPFN0cmluZ01hcD47XG5cbiAgdW5pcSA9IHVuaXE7XG4gIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGdldCBpc0NhbGljbygpIHtcbiAgICByZXR1cm4gdGhpcy5uZXR3b3JrVHlwZSA9PT0gQ2x1c3Rlck5ldHdvcmtUeXBlLkNBTElDTztcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlUmVzb3VyY2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jbHVzdGVyJCxcbiAgICB0aGlzLm5hbWVzcGFjZSQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbY2x1c3RlciwgbmFtZXNwYWNlXSkgPT4gISFjbHVzdGVyICYmICEhbmFtZXNwYWNlKSxcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCBuYW1lc3BhY2VdKSA9PlxuICAgICAgdGhpcy5rOHNBcGkuZ2V0UmVzb3VyY2U8TmFtZXNwYWNlPih7XG4gICAgICAgIHR5cGU6IFJFU09VUkNFX1RZUEVTLk5BTUVTUEFDRSxcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgbmFtZTogbmFtZXNwYWNlLFxuICAgICAgfSksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZXR3b3JrTW9kZSQgPSB0aGlzLmNsdXN0ZXIkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGNsdXN0ZXIgPT4gdGhpcy5uZXR3b3JrVXRpbFNlcnZpY2UuZ2V0TmV0d29ya01vZGUkKGNsdXN0ZXIpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcmVhZG9ubHkgJG5ldHdvcmtNb2RlID0gdG9TaWduYWwodGhpcy5uZXR3b3JrTW9kZSQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3VibmV0RGV0YWlscyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNsdXN0ZXIkLFxuICAgIHRoaXMubmV0d29ya1R5cGUkLFxuICAgIHRoaXMuc3VibmV0JCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtjbHVzdGVyLCBuZXR3b3JrVHlwZV0pID0+ICEhY2x1c3RlciAmJiAhIW5ldHdvcmtUeXBlKSxcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCBfbmV0d29ya1R5cGUsIHN1Ym5ldF0pID0+XG4gICAgICBzdWJuZXRcbiAgICAgICAgPyBvZih7XG4gICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgc3VibmV0czogW3N1Ym5ldF0sXG4gICAgICAgICAgICBzdWJuZXQsXG4gICAgICAgICAgICBnYXRld2F5OiBzdWJuZXQuc3BlYz8uZ2F0ZXdheSxcbiAgICAgICAgICAgIGV4Y2x1ZGVJcHM6IHN1Ym5ldC5zcGVjPy5leGNsdWRlSXBzLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogdGhpcy5pc0NhbGljb1xuICAgICAgICAgID8gdGhpcy5rOHNBcGlcbiAgICAgICAgICAgICAgLmdldFJlc291cmNlTGlzdDxTdWJuZXQ+KHtcbiAgICAgICAgICAgICAgICB0eXBlOiBORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzID0+IHJlcy5pdGVtcyksXG4gICAgICAgICAgICAgICAgc2tpcEVycm9yKFtdIGFzIFN1Ym5ldFtdKSxcbiAgICAgICAgICAgICAgICBtYXAoc3VibmV0cyA9PiAoe1xuICAgICAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgICAgIHN1Ym5ldHMsXG4gICAgICAgICAgICAgICAgICBzdWJuZXQ6IG51bGwgYXMgU3VibmV0LFxuICAgICAgICAgICAgICAgICAgZ2F0ZXdheTogJycsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlSXBzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICA6IG9mKHtcbiAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgc3VibmV0czogW10gYXMgU3VibmV0W10sXG4gICAgICAgICAgICAgIHN1Ym5ldDogbnVsbCBhcyBTdWJuZXQsXG4gICAgICAgICAgICAgIGdhdGV3YXk6ICcnLFxuICAgICAgICAgICAgICBleGNsdWRlSXBzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJuZXRJbmZvJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubmV0d29ya01vZGUkLFxuICAgIHRoaXMubmFtZXNwYWNlUmVzb3VyY2UkLnBpcGUoZmlsdGVyKEJvb2xlYW4pKSxcbiAgICB0aGlzLnN1Ym5ldERldGFpbHMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbXG4gICAgICAgIG5ldHdvcmtNb2RlLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIHsgY2x1c3Rlciwgc3VibmV0cywgc3VibmV0LCBnYXRld2F5LCBleGNsdWRlSXBzIH0sXG4gICAgICBdKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICBzdWJuZXRDaWRyczogdGhpcy5pc0NhbGljb1xuICAgICAgICAgICAgPyB0aGlzLm5ldHdvcmtVdGlsU2VydmljZS5nZXRDYWxpY29DaWRycyhcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgICAgICAgc3VibmV0cyxcbiAgICAgICAgICAgICAgICBuZXR3b3JrTW9kZSxcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGFkYXB0U3VibmV0Q2lkcnMoXG4gICAgICAgICAgICAgICAgc3VibmV0ID09IG51bGxcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5rOHNVdGlsLmdldEFubm90YXRpb24obmFtZXNwYWNlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NpZHInLFxuICAgICAgICAgICAgICAgICAgICAgIGJhc2VEb21haW46IEtVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgOiAoc3VibmV0LnNwZWM/LmNpZHJCbG9jayA/PyAnJyksXG4gICAgICAgICAgICAgICAgdGhpcy4kbmV0d29ya01vZGUoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgIHN1Ym5ldE5hbWU6XG4gICAgICAgICAgICBzdWJuZXQgPT0gbnVsbFxuICAgICAgICAgICAgICA/IHRoaXMuaXNDYWxpY29cbiAgICAgICAgICAgICAgICA/IHRoaXMubmV0d29ya1V0aWxTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5nZXRDYWxpY29TdWJuZXROYW1lcyhuYW1lc3BhY2UsIHRoaXMuJG5ldHdvcmtNb2RlKCkpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJylcbiAgICAgICAgICAgICAgICA6IHRoaXMuazhzVXRpbC5nZXRBbm5vdGF0aW9uKG5hbWVzcGFjZSwge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbG9naWNhbF9zd2l0Y2gnLFxuICAgICAgICAgICAgICAgICAgICBiYXNlRG9tYWluOiBLVUJFX09WTl9BTk5PVEFUSU9OX1BSRUZJWCxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogdGhpcy5rOHNVdGlsLmdldE5hbWUoc3VibmV0KSxcbiAgICAgICAgICBnYXRld2F5LFxuICAgICAgICAgIGV4Y2x1ZGVJcHM6IGV4Y2x1ZGVJcHMgfHwgKFtdIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgKSxcbiAgICBzd2l0Y2hNYXAoc3VibmV0SW5mbyA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubmV0d29ya1R5cGUgPT09IENsdXN0ZXJOZXR3b3JrVHlwZS5LVUJFX09WTiAmJlxuICAgICAgICAhc3VibmV0SW5mby5nYXRld2F5XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgICAgIHN1Ym5ldEluZm8uc3VibmV0TmFtZS5zcGxpdCgnLCcpLm1hcChzdWJuZXROYW1lID0+XG4gICAgICAgICAgICB0aGlzLms4c0FwaVxuICAgICAgICAgICAgICAuZ2V0UmVzb3VyY2U8U3VibmV0Pih7XG4gICAgICAgICAgICAgICAgdHlwZTogTkVUV09SS19SRVNPVVJDRV9UWVBFUy5TVUJORVRfS1VCRV9PVk4sXG4gICAgICAgICAgICAgICAgY2x1c3Rlcjogc3VibmV0SW5mby5jbHVzdGVyLFxuICAgICAgICAgICAgICAgIG5hbWU6IHN1Ym5ldE5hbWUsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5waXBlKHNraXBFcnJvcihudWxsIGFzIFN1Ym5ldCkpLFxuICAgICAgICAgICksXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBtYXAobGlzdCA9PiBsaXN0LmZpbHRlcihCb29sZWFuKSksXG4gICAgICAgICAgbWFwKHN1Ym5ldExpc3QgPT5cbiAgICAgICAgICAgIHN1Ym5ldExpc3QubGVuZ3RoXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgLi4uc3VibmV0SW5mbyxcbiAgICAgICAgICAgICAgICAgIGdhdGV3YXk6IHN1Ym5ldExpc3RcbiAgICAgICAgICAgICAgICAgICAgLm1hcChpdGVtID0+IGl0ZW0uc3BlYz8uZ2F0ZXdheSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCcpLFxuICAgICAgICAgICAgICAgICAgZXhjbHVkZUlwczogdW5pcShcbiAgICAgICAgICAgICAgICAgICAgc3VibmV0TGlzdC5mbGF0TWFwKGl0ZW0gPT4gaXRlbS5zcGVjPy5leGNsdWRlSXBzKSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHN1Ym5ldEluZm8sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvZihzdWJuZXRJbmZvKTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAoc3VibmV0SW5mbyA9PiB7XG4gICAgICBpZiAoc3VibmV0SW5mby5zdWJuZXRDaWRycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHN1Ym5ldEluZm8pO1xuICAgICAgfVxuXG4gICAgICAvLyBmYWxsYmFjayB0byBkZWZhdWx0IHN1Ym5ldFxuICAgICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAgIC5nZXRSZXNvdXJjZTxTdWJuZXQ+KHtcbiAgICAgICAgICB0eXBlOiBORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgICBjbHVzdGVyOiBzdWJuZXRJbmZvLmNsdXN0ZXIsXG4gICAgICAgICAgbmFtZTogdGhpcy5pc0NhbGljb1xuICAgICAgICAgICAgPyBgZGVmYXVsdC1pcCR7XG4gICAgICAgICAgICAgICAgdGhpcy4kbmV0d29ya01vZGUoKSA9PT0gJ2R1YWwnID8gJ3Y0JyA6IHRoaXMuJG5ldHdvcmtNb2RlKClcbiAgICAgICAgICAgICAgfS1pcHBvb2xgXG4gICAgICAgICAgICA6ICdvdm4tZGVmYXVsdCcsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChzdWJuZXQgPT4gKHtcbiAgICAgICAgICAgIC4uLnN1Ym5ldEluZm8sXG4gICAgICAgICAgICBzdWJuZXRDaWRyczogYWRhcHRTdWJuZXRDaWRycyhcbiAgICAgICAgICAgICAgc3VibmV0LnNwZWMuY2lkckJsb2NrLFxuICAgICAgICAgICAgICB0aGlzLiRuZXR3b3JrTW9kZSgpLFxuICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN1Ym5ldE5hbWU6IHRoaXMuazhzVXRpbC5nZXROYW1lKHN1Ym5ldCksXG4gICAgICAgICAgICBnYXRld2F5OiBzdWJuZXQuc3BlYy5nYXRld2F5LFxuICAgICAgICAgICAgZXhjbHVkZUlwczogc3VibmV0LnNwZWMuZXhjbHVkZUlwcyxcbiAgICAgICAgICB9KSksXG4gICAgICAgICk7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHJlYWRvbmx5ICRzdWJuZXRJbmZvID0gdG9TaWduYWwodGhpcy5zdWJuZXRJbmZvJCk7XG5cbiAgY2lkciQgPSB0aGlzLnN1Ym5ldEluZm8kLnBpcGUoXG4gICAgbWFwKHN1Ym5ldEluZm8gPT4gdW5pcShzdWJuZXRJbmZvPy5zdWJuZXRDaWRycykuam9pbign44CBJykpLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5uZXJFcnJvcnNNYXBwZXIkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jaWRyJCxcbiAgICB0aGlzLnRyYW5zbGF0ZS5sb2NhbGUkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2NpZHJdKSA9PiAoe1xuICAgICAgcGF0dGVybjogdGhpcy50cmFuc2xhdGUuZ2V0KCdmaXhlZF9pcF9wYXR0ZXJuX3RpcHMnLCB7XG4gICAgICAgIGlwTW9kZTogWydkdWFsJywgJ3Y0J10uaW5jbHVkZXModGhpcy4kbmV0d29ya01vZGUoKSkgPyAnSVB2NCcgOiAnSVB2NicsXG4gICAgICB9KSxcbiAgICAgIG9jY3VwaWVkOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ2ZpeGVkX2lwX29jY3VwaWVkX3RpcHMnLCB7XG4gICAgICAgIGNpZHIsXG4gICAgICB9KSxcbiAgICAgIG91dF9vZl9yYW5nZTogdGhpcy50cmFuc2xhdGUuZ2V0KCdmaXhlZF9pcF9vdXRfb2ZfcmFuZ2VfdGlwcycsIHtcbiAgICAgICAgY2lkcixcbiAgICAgIH0pLFxuICAgIH0pKSxcbiAgKTtcblxuICBjb21iaW5lZEVycm9yc01hcHBlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmlubmVyRXJyb3JzTWFwcGVyJCxcbiAgICB0aGlzLmVycm9yc01hcHBlciQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbaW5uZXJFcnJvcnNNYXBwZXIsIGVycm9yc01hcHBlcl0pID0+ICh7XG4gICAgICAuLi5pbm5lckVycm9yc01hcHBlcixcbiAgICAgIC4uLmVycm9yc01hcHBlcixcbiAgICB9KSksXG4gICk7XG5cbiAgaW5wdXRFcnJvcnMkID0gdGhpcy5lcnJvcnMkLnBpcGUoXG4gICAgdGFwKGVycm9ycyA9PiB7XG4gICAgICB0aGlzLnNldEVycm9ycyhlcnJvcnMpO1xuICAgICAgdGhpcy5pcEFkZHJlc3M/LmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2U/LigpO1xuICAgIH0pLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlZElwcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNsdXN0ZXIkLFxuICAgIHRoaXMuc3VibmV0SW5mbyQsXG4gICAgdGhpcy5tb2RlbCQucGlwZShmaXJzdCgpKSxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCB7IHN1Ym5ldE5hbWUsIGdhdGV3YXkgfSwgaXBdKSA9PlxuICAgICAgdGhpcy5rOHNBcGlcbiAgICAgICAgLmdldFJlc291cmNlTGlzdDxTdWJuZXRJcD4oe1xuICAgICAgICAgIHR5cGU6IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMuU1VCTkVUX0tVQkVfT1ZOX0lQLFxuICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgIGxhYmVsU2VsZWN0b3I6IG1hdGNoRXhwcmVzc2lvbnNUb1N0cmluZyhbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IGAke0tVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYfS9zdWJuZXRgLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAnaW4nLFxuICAgICAgICAgICAgICAgIHZhbHVlczogc3VibmV0TmFtZS5zcGxpdCgnLCcpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHJlcyA9PiByZXMuaXRlbXMpLFxuICAgICAgICAgIHNraXBFcnJvcihbXSBhcyBTdWJuZXRJcFtdKSxcbiAgICAgICAgICBtYXAoc3VibmV0SXBzID0+XG4gICAgICAgICAgICBzdWJuZXRJcHMucmVkdWNlPHN0cmluZ1tdPigodXNlZElwcywgeyBzcGVjOiB7IGlwQWRkcmVzcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgaXBBZGRyZXNzLnNwbGl0KCcsJykuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXAgIT09IGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgIHVzZWRJcHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gdXNlZElwcztcbiAgICAgICAgICAgIH0sIGdhdGV3YXkuc3BsaXQoJywnKSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5ICR1c2VkSXBzID0gdG9TaWduYWwodGhpcy51c2VkSXBzJCk7XG5cbiAgaXBBZGRyZXNzU3VnZ2VzdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5zdWJuZXRJbmZvJCxcbiAgICB0aGlzLnVzZWRJcHMkLFxuICAgIHRoaXMubmV0d29ya01vZGUkLFxuICAgIHRoaXMubW9kZWwkLFxuICAgIHRoaXMudGFnc0lucHV0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHRhZ3NJbnB1dCA9PlxuICAgICAgICB0YWdzSW5wdXRcbiAgICAgICAgICA/IG1lcmdlKFxuICAgICAgICAgICAgICBmcm9tRXZlbnQodGFnc0lucHV0LmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGV2ID0+IChldi50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB0YWdzSW5wdXQuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcyBhcyBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiAodGhpcy5tb2RlbCQgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+KSxcbiAgICAgICksXG4gICAgKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt7IHN1Ym5ldENpZHJzIH0sIHVzZWRJcHMsIG5ldHdvcmtNb2RlLCBhZGRlZElwcywgaW5wdXRWYWx1ZV0pID0+XG4gICAgICBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMoXG4gICAgICAgIHN1Ym5ldENpZHJzLFxuICAgICAgICBuZXR3b3JrTW9kZSxcbiAgICAgICAgW1xuICAgICAgICAgIC4uLnVzZWRJcHMsXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoYWRkZWRJcHMpID8gYWRkZWRJcHMgOiBbYWRkZWRJcHNdLmZpbHRlcihCb29sZWFuKSksXG4gICAgICAgIF0sXG4gICAgICAgIGlucHV0VmFsdWUsXG4gICAgICAgIHRoaXMuaXNDYWxpY28sXG4gICAgICApLFxuICAgICksXG4gICAgc3RhcnRXaXRoKFtdIGFzIHN0cmluZ1tdKSxcbiAgICBza2lwRXJyb3IoW10gYXMgc3RyaW5nW10pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c1V0aWw6IEs4c1V0aWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV0d29ya1V0aWxTZXJ2aWNlOiBOZXR3b3JrVXRpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGNkcik7XG4gIH1cblxuICBAYmluZFxuICBpc1Jlc2VydmVkSXAoaXA6IHN0cmluZywgZXhjbHVkZUlwczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIodGhpcy5hZGFwdElwTW9kZShpcCkpO1xuICAgIHJldHVybiBleGNsdWRlSXBzLnNvbWUoZXhjbHVkZUlwID0+IHtcbiAgICAgIGlmIChleGNsdWRlSXAuaW5jbHVkZXMoJy4uJykpIHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gZXhjbHVkZUlwPy5zcGxpdCgnLi4nKTtcbiAgICAgICAgY29uc3QgX0J1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcih0aGlzLmFkYXB0SXBNb2RlKHN0YXJ0KSk7XG4gICAgICAgIGNvbnN0IF9zdGFydEFkZHJlc3MgPSBuZXcgX0J1aWxkZXIoc3RhcnQpLmJpZ0ludGVnZXIoKTtcbiAgICAgICAgY29uc3QgX2VuZEFkZHJlc3MgPSBuZXcgX0J1aWxkZXIoZW5kKS5iaWdJbnRlZ2VyKCk7XG4gICAgICAgIGNvbnN0IF9pcCA9IG5ldyBCdWlsZGVyKGlwKS5iaWdJbnRlZ2VyKCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgX3N0YXJ0QWRkcmVzcy5jb21wYXJlVG8oX2lwKSA8PSAwICYmIF9pcC5jb21wYXJlVG8oX2VuZEFkZHJlc3MpIDw9IDBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleGNsdWRlSXAgPT09IGlwO1xuICAgIH0pO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIEBiaW5kXG4gIHZhbGlkYXRlKGN0cmw6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGNvbnN0IGlwQWRkcmVzczogc3RyaW5nIHwgc3RyaW5nW10gPSBjdHJsLnZhbHVlO1xuICAgIHJldHVybiBpcEFkZHJlc3MgJiYgIUFycmF5LmlzQXJyYXkoaXBBZGRyZXNzKVxuICAgICAgPyB0aGlzLnVzZWRJcHMkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5zZXRFcnJvcnModGhpcy52YWxpZGF0ZUZpeGVkSXAoaXBBZGRyZXNzKSkpLFxuICAgICAgICApXG4gICAgICA6IG9mKHRoaXMuc2V0RXJyb3JzKG51bGwpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RXJyb3JzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycykge1xuICAgIGNvbnN0IGNvbWJpbmVkRXJyb3JzID0gdGhpcy5tdWx0aXBsZVxuICAgICAgPyB7IC4uLnRoaXMuZXJyb3JzLCAuLi5lcnJvcnMgfSAvLyDlj6/og73lrZjlnKjkvKDlhaXnmoQgZXJyb3JzXG4gICAgICA6IGVycm9ycztcbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JzID0gdmFsdWVzKGNvbWJpbmVkRXJyb3JzKS5sZW5ndGhcbiAgICAgID8gY29tYmluZWRFcnJvcnNcbiAgICAgIDogbnVsbDtcbiAgICB0aGlzLmlwQWRkcmVzcz8uY29udHJvbC5zZXRFcnJvcnModmFsaWRhdGlvbkVycm9ycyk7XG4gICAgcmV0dXJuIHZhbGlkYXRpb25FcnJvcnM7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRml4ZWRJcChpcEFkZHJlc3M6IHN0cmluZykge1xuICAgIGNvbnN0IHsgc3VibmV0Q2lkcnMsIGdhdGV3YXkgfSA9IHRoaXMuJHN1Ym5ldEluZm8oKTtcblxuICAgIGNvbnN0IGlwTW9kZSA9IHRoaXMuYWRhcHRJcE1vZGUoaXBBZGRyZXNzKTtcbiAgICBjb25zdCBpc0lwVjQgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0O1xuXG4gICAgY29uc3QganVkZ2VDaWRycyA9IHN1Ym5ldENpZHJzLmZpbHRlcihjaWRyID0+IHtcbiAgICAgIGNvbnN0IGlzSXBWNiA9IGNpZHIuaW5jbHVkZXMoJzonKTtcbiAgICAgIHJldHVybiBpc0lwVjQgPyAhaXNJcFY2IDogaXNJcFY2O1xuICAgIH0pO1xuXG4gICAgaWYgKHN1Ym5ldENpZHJzLmxlbmd0aCAmJiAhanVkZ2VDaWRycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGludmFsaWQgaXAgcGF0dGVybiwgbm90IGJyb2FkY2FzdCBpcCwgbm90IG5ldHdvcmsgaXBcbiAgICBpZiAoXG4gICAgICAhaXNJcEFkZHJlc3NWYWxpZChpcEFkZHJlc3MsIGlwTW9kZSkgfHxcbiAgICAgIGp1ZGdlQ2lkcnMuc29tZShcbiAgICAgICAgY2FsaWNvQ2lkciA9PlxuICAgICAgICAgIGlzQnJvYWRjYXN0QWRkcihpcEFkZHJlc3MsIGNhbGljb0NpZHIsIGlwTW9kZSkgfHxcbiAgICAgICAgICBpc05ldHdvcmtBZGRyKGlwQWRkcmVzcywgY2FsaWNvQ2lkciwgaXBNb2RlKSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGxldCB2NEdhdGV3YXk6IHN0cmluZztcbiAgICBsZXQgdjZHYXRld2F5OiBzdHJpbmc7XG5cbiAgICBpZiAoZ2F0ZXdheSkge1xuICAgICAgY29uc3QgZ2F0ZXdheVBhcnRzID0gZ2F0ZXdheS5zcGxpdCgnLCcpO1xuICAgICAgdjRHYXRld2F5ID0gZ2F0ZXdheVBhcnRzWzBdO1xuICAgICAgdjZHYXRld2F5ID0gZ2F0ZXdheVBhcnRzWzFdO1xuICAgIH1cblxuICAgIGNvbnN0IGlwR2F0ZXdheSA9IGlzSXBWNCA/IHY0R2F0ZXdheSA6IHY2R2F0ZXdheTtcblxuICAgIGlmIChcbiAgICAgIC8vIGh0dHBzOi8vamlyYS5hbGF1ZGEuY24vYnJvd3NlL0FDUC0xMjEzNj9mb2N1c2VkQ29tbWVudElkPTIxNTQ2MCZwYWdlPWNvbS5hdGxhc3NpYW4uamlyYS5wbHVnaW4uc3lzdGVtLmlzc3VldGFicGFuZWxzJTNBY29tbWVudC10YWJwYW5lbCNjb21tZW50LTIxNTQ2MFxuICAgICAgKGlwR2F0ZXdheSAmJiBpcEFkZHJlc3NFcXVhbChpcEdhdGV3YXksIGlwQWRkcmVzcywgaXBNb2RlKSkgfHxcbiAgICAgICghdGhpcy5za2lwT2NjdXBpZWQgJiZcbiAgICAgICAgdGhpcy4kdXNlZElwcygpLnNvbWUodXNlZElwID0+XG4gICAgICAgICAgaXBBZGRyZXNzRXF1YWwodXNlZElwLCBpcEFkZHJlc3MsIGlwTW9kZSksXG4gICAgICAgICkpXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvY2N1cGllZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAganVkZ2VDaWRycy5sZW5ndGggJiZcbiAgICAgICFqdWRnZUNpZHJzLnNvbWUoY2lkciA9PiBjaWRyICYmIGlzQmVsb25nQ2lkcihjaWRyLCBpcEFkZHJlc3MsIGlwTW9kZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvdXRfb2ZfcmFuZ2U6IHRydWUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRhcHRJcE1vZGUoaXBBZGRyZXNzOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYWRhcHRJcE1vZGUoXG4gICAgICBpcEFkZHJlc3MsXG4gICAgICAhdGhpcy5lbmFibGVGaXhJcFY2Rm9yRHVhbCAmJiB0aGlzLiRuZXR3b3JrTW9kZSgpID09PSBOZXR3b3JrTW9kZS5EVUFMXG4gICAgICAgID8gTmV0d29ya01vZGUuSVBWNFxuICAgICAgICA6IHRoaXMuJG5ldHdvcmtNb2RlKCksXG4gICAgKTtcbiAgfVxufVxuIiwiPGF1aS1mb3JtLWl0ZW0gW3dpZHRoXT1cImZvcm1JdGVtV2lkdGhcIj5cbiAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3tcbiAgICBsYWJlbCB8fCAoJ25ldHdvcmsuaXBfYWRkcmVzcycgfCB0cmFuc2xhdGUpXG4gIH19PC9sYWJlbD5cbiAgPGlucHV0XG4gICAgKm5nSWY9XCIhbXVsdGlwbGVcIlxuICAgIGF1aS1pbnB1dFxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJlbWl0VmFsdWUoJGV2ZW50KVwiXG4gICAgI2lwQWRkcmVzcz1cIm5nTW9kZWxcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCAoJ2RoY3BfcGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlKVwiXG4gICAgW2F1aUF1dG9jb21wbGV0ZV09XCJzdWdnZXN0aW9uc1wiXG4gIC8+XG4gIDxhdWktdGFncy1pbnB1dFxuICAgICpuZ0lmPVwibXVsdGlwbGVcIlxuICAgIGNsYXNzPVwiZmxleC0xXCJcbiAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAjdGFnc0lucHV0XG4gICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRWYWx1ZSh1bmlxKCRldmVudCkpXCJcbiAgICAjaXBBZGRyZXNzPVwibmdNb2RlbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICgnZGhjcF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUpXCJcbiAgICBbYXVpQXV0b2NvbXBsZXRlXT1cInN1Z2dlc3Rpb25zXCJcbiAgICBbaW5wdXRBc3luY1ZhbGlkYXRvcl09XCJ2YWxpZGF0ZVwiXG4gID48L2F1aS10YWdzLWlucHV0PlxuICA8YXVpLWF1dG9jb21wbGV0ZSAjc3VnZ2VzdGlvbnM+XG4gICAgPGF1aS1zdWdnZXN0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgaXBBZGRyZXNzU3VnZ2VzdGlvbiBvZiBpcEFkZHJlc3NTdWdnZXN0aW9ucyQgfCBhc3luY1wiXG4gICAgICBbdmFsdWVdPVwiaXBBZGRyZXNzU3VnZ2VzdGlvblwiXG4gICAgPlxuICAgICAge3sgaXBBZGRyZXNzU3VnZ2VzdGlvbiB9fVxuICAgICAgPGF1aS10YWdcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBpcEFkZHJlc3NTdWdnZXN0aW9uIHwgcHVyZTogaXNSZXNlcnZlZElwIDogJHN1Ym5ldEluZm8oKS5leGNsdWRlSXBzXG4gICAgICAgIFwiXG4gICAgICAgIFtib3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaXplXT1cIidtaW5pJ1wiXG4gICAgICAgIHR5cGU9XCJpbmZvXCJcbiAgICAgID5cbiAgICAgICAge3sgJ25ldHdvcmsucmVzZXJ2ZWRfaXAnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2F1aS10YWc+XG4gICAgPC9hdWktc3VnZ2VzdGlvbj5cbiAgICA8YXVpLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlcj5cbiAgICAgIHt7XG4gICAgICAgICgoaXBBZGRyZXNzU3VnZ2VzdGlvbnMkIHwgYXN5bmMpXG4gICAgICAgICAgPyAnbmV0d29yay5ub19hdmFpbGFibGVfc3VnZ2VzdGlvbidcbiAgICAgICAgICA6ICdsb2FkaW5nJ1xuICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICB9fVxuICAgIDwvYXVpLWF1dG9jb21wbGV0ZS1wbGFjZWhvbGRlcj5cbiAgPC9hdWktYXV0b2NvbXBsZXRlPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJhZGRvblRpcCAhPSBudWxsXCJcbiAgICBhdWlGb3JtSXRlbUFkZG9uXG4gID5cbiAgICA8YXVpLWljb25cbiAgICAgICpuZ0lmPVwiYWRkb25UaXBcIlxuICAgICAgaWNvbj1cInF1ZXN0aW9uX2NpcmNsZVwiXG4gICAgICBjbGFzcz1cImljb24tLWhlbHBcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwiYWRkb25UaXBcIlxuICAgICAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgIGF1aUZvcm1JdGVtRXJyb3JcbiAgICBbZXJyb3JzXT1cIlxuICAgICAgaXBBZGRyZXNzPy5lcnJvcnM/LmlucHV0X2RhdGFfZXJyb3IgfHxcbiAgICAgIGlwQWRkcmVzcz8uZXJyb3JzIHx8XG4gICAgICAoaW5wdXRFcnJvcnMkIHwgYXN5bmMpXG4gICAgXCJcbiAgICBbZXJyb3JzTWFwcGVyXT1cImNvbWJpbmVkRXJyb3JzTWFwcGVyJCB8IGFzeW5jXCJcbiAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gIDxkaXZcbiAgICBhdWlGb3JtSXRlbUhpbnRcbiAgICAqbmdJZj1cImhpbnQgIT09IG51bGwgJiYgKGhpbnQgfHwgKGNpZHIkIHwgYXN5bmMpKVwiXG4gID5cbiAgICB7e1xuICAgICAgaGludCB8fFxuICAgICAgICAoJ25ldHdvcmsuZml4X2lwX3Nob3VsZF9iZWxvbmdfdGlwJ1xuICAgICAgICAgIHwgdHJhbnNsYXRlOiB7IGNpZHI6IChjaWRyJCB8IGFzeW5jKSB9KVxuICAgIH19XG4gIDwvZGl2PlxuPC9hdWktZm9ybS1pdGVtPlxuIl19
547
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maXhlZC1pcC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpeGVkLWlwL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCx3QkFBd0IsRUFFeEIsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUVoQixvQkFBb0IsRUFDcEIsUUFBUSxHQUNULE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZUFBZSxFQUVmLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLE9BQU8sR0FFUixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEVBQ0wsRUFBRSxFQUNGLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiwwQkFBMEIsR0FDM0IsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7SUM5RWxDLG9DQVNFOztJQUpBLHdNQUFpQix3QkFBaUIsS0FBQztJQUxyQyxpQkFTRTs7OztJQURBLEFBREEsQUFIQSxzQ0FBaUIsK0VBRzhDLG1DQUNoQzs7OztJQUVqQyw2Q0FXQzs7SUFMQywwTkFBaUIsaUJBQVUsbUJBQVksQ0FBQyxLQUFDO0lBSzFDLGlCQUFpQjs7OztJQURoQixBQURBLEFBREEsQUFIQSxzQ0FBaUIsK0VBRzhDLG1DQUNoQyx3Q0FDQzs7O0lBUTlCLG1DQU9DO0lBQ0MsWUFDRjs7SUFBQSxpQkFBVTs7SUFKUixBQURBLDZCQUFlLGdCQUNBO0lBR2YsY0FDRjtJQURFLDRFQUNGOzs7SUFkRiwwQ0FHQztJQUNDLFlBQ0E7SUFBQSxnR0FPQzs7SUFHSCxpQkFBaUI7Ozs7SUFiZiw4Q0FBNkI7SUFFN0IsY0FDQTtJQURBLHVEQUNBO0lBQ0csY0FHVDtJQUhTLHlIQUdUOzs7SUFvQkksK0JBTVk7OztJQUZWLDRDQUF1Qjs7O0lBUjNCLGlDQUdDO0lBQ0MsaUdBTUM7Ozs7SUFMRSxjQUFjO0lBQWQsc0NBQWM7OztJQWdCbkIsK0JBR0M7SUFDQyxZQUtGOzs7SUFBQSxpQkFBTTs7O0lBTEosY0FLRjtJQUxFLHdLQUtGOztBRDJDRixNQUFNLE9BQU8scUJBQ1gsU0FBUSxpQkFBb0M7SUF5RTVDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQztJQXdTRCxZQUMyQixHQUFzQixFQUM5QixPQUF1QixFQUN2QixNQUFxQixFQUNyQixrQkFBc0MsRUFDdEMsU0FBMkI7UUFFNUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBTmMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBdlU5QyxrQkFBYSxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO1FBS3BELGNBQWM7UUFFZCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixxQkFBcUI7UUFFckIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBVTdCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFPSyx1QkFBa0IsR0FBRyxhQUFhLENBQUM7WUFDbEQsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsVUFBVTtTQUNoQixDQUFDLENBQUMsSUFBSSxDQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFDMUQsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBWTtZQUNqQyxJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDOUIsT0FBTztZQUNQLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FDSCxFQUNELFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFZSxpQkFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoRCxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3RFLFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFTyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkMsbUJBQWMsR0FBRyxhQUFhLENBQUM7WUFDOUMsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsT0FBTztTQUNiLENBQUMsQ0FBQyxJQUFJLENBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUM5RCxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUM1QyxNQUFNO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDRCxPQUFPO2dCQUNQLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFDakIsTUFBTTtnQkFDTixPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPO2dCQUM3QixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVO2FBQ3BDLENBQUM7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ2IsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO3FCQUNSLGVBQWUsQ0FBUztvQkFDdkIsSUFBSSxFQUFFLHNCQUFzQixDQUFDLGVBQWU7b0JBQzVDLE9BQU87aUJBQ1IsQ0FBQztxQkFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUNyQixTQUFTLENBQUMsRUFBYyxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2QsT0FBTztvQkFDUCxPQUFPO29CQUNQLE1BQU0sRUFBRSxJQUFjO29CQUN0QixPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsRUFBYztpQkFDM0IsQ0FBQyxDQUFDLENBQ0o7Z0JBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDRCxPQUFPO29CQUNQLE9BQU8sRUFBRSxFQUFjO29CQUN2QixNQUFNLEVBQUUsSUFBYztvQkFDdEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLEVBQWM7aUJBQzNCLENBQUMsQ0FDVCxDQUNGLENBQUM7UUFFZSxnQkFBVyxHQUFHLGFBQWEsQ0FBQztZQUMzQyxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYztTQUNwQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQ0MsV0FBVyxFQUNYLFNBQVMsRUFDVCxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDbEQsRUFBRSxFQUFFO1lBQ0gsT0FBTztnQkFDTCxPQUFPO2dCQUNQLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQ3BDLFNBQVMsRUFDVCxPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FDMUI7b0JBQ0gsQ0FBQyxDQUFDLGdCQUFnQixDQUNkLE1BQU0sSUFBSSxJQUFJO3dCQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7NEJBQ3BDLElBQUksRUFBRSxNQUFNOzRCQUNaLFVBQVUsRUFBRSwwQkFBMEI7eUJBQ3ZDLENBQUM7d0JBQ0osQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLEVBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUMxQjtnQkFDTCxVQUFVLEVBQ1IsTUFBTSxJQUFJLElBQUk7b0JBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO3dCQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCOzZCQUNwQixvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOzZCQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDO3dCQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7NEJBQ3BDLElBQUksRUFBRSxnQkFBZ0I7NEJBQ3RCLFVBQVUsRUFBRSwwQkFBMEI7eUJBQ3ZDLENBQUM7b0JBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDbEMsT0FBTztnQkFDUCxVQUFVLEVBQUUsVUFBVSxJQUFLLEVBQWU7YUFDM0MsQ0FBQztRQUNKLENBQUMsQ0FDRixFQUNELFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQixJQUNFLElBQUksQ0FBQyxXQUFXLEtBQUssa0JBQWtCLENBQUMsUUFBUTtnQkFDaEQsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUNuQixDQUFDO2dCQUNELE9BQU8sUUFBUSxDQUNiLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNoRCxJQUFJLENBQUMsTUFBTTtxQkFDUixXQUFXLENBQVM7b0JBQ25CLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxlQUFlO29CQUM1QyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87b0JBQzNCLElBQUksRUFBRSxVQUFVO2lCQUNqQixDQUFDO3FCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBYyxDQUFDLENBQUMsQ0FDbkMsQ0FDRixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ2pDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNmLFVBQVUsQ0FBQyxNQUFNO29CQUNmLENBQUMsQ0FBQzt3QkFDRSxHQUFHLFVBQVU7d0JBQ2IsT0FBTyxFQUFFLFVBQVU7NkJBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDOzZCQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDOzZCQUNmLElBQUksQ0FBQyxHQUFHLENBQUM7d0JBQ1osVUFBVSxFQUFFLElBQUksQ0FDZCxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FDbEQ7cUJBQ0Y7b0JBQ0gsQ0FBQyxDQUFDLFVBQVUsQ0FDZixDQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JCLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUVELDZCQUE2QjtZQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNO2lCQUNmLFdBQVcsQ0FBUztnQkFDbkIsSUFBSSxFQUFFLHNCQUFzQixDQUFDLGVBQWU7Z0JBQzVDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUNqQixDQUFDLENBQUMsYUFDRSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQzNELFNBQVM7b0JBQ1gsQ0FBQyxDQUFDLGFBQWE7YUFDbEIsQ0FBQztpQkFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDYixHQUFHLFVBQVU7Z0JBQ2IsV0FBVyxFQUFFLGdCQUFnQixDQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQzFCO2dCQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVU7YUFDbkMsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFVBQVUsRUFBRSxDQUNiLENBQUM7UUFFTyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEQsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMzRCxDQUFDO1FBRWUsdUJBQWtCLEdBQUcsYUFBYSxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRTtnQkFDbkQsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO2FBQ3ZFLENBQUM7WUFDRixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ3JELElBQUk7YUFDTCxDQUFDO1lBQ0YsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFO2dCQUM3RCxJQUFJO2FBQ0wsQ0FBQztTQUNILENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRiwwQkFBcUIsR0FBRyxhQUFhLENBQUM7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQjtZQUN2QixJQUFJLENBQUMsYUFBYTtTQUNuQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsR0FBRyxpQkFBaUI7WUFDcEIsR0FBRyxZQUFZO1NBQ2hCLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRixpQkFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVlLGFBQVEsR0FBRyxhQUFhLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMxQixDQUFDLENBQUMsSUFBSSxDQUNMLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDbkQsSUFBSSxDQUFDLE1BQU07YUFDUixlQUFlLENBQVc7WUFDekIsSUFBSSxFQUFFLHNCQUFzQixDQUFDLGtCQUFrQjtZQUMvQyxPQUFPO1lBQ1AsV0FBVyxFQUFFO2dCQUNYLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQztvQkFDdEM7d0JBQ0UsR0FBRyxFQUFFLEdBQUcsMEJBQTBCLFNBQVM7d0JBQzNDLFFBQVEsRUFBRSxJQUFJO3dCQUNkLE1BQU0sRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztxQkFDOUI7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQ3JCLFNBQVMsQ0FBQyxFQUFnQixDQUFDLEVBQzNCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNkLFNBQVMsQ0FBQyxNQUFNLENBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDOUQsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN2QixDQUNGLENBQ0osRUFDRCxVQUFVLEVBQUUsQ0FDYixDQUFDO1FBRWUsYUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEQsMEJBQXFCLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxXQUFXO1lBQ2hCLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLE1BQU07WUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQ3BCLFNBQVM7Z0JBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FDSCxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN2RCxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBRSxFQUFFLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FDakQsRUFDRCxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQWtDLENBQzFEO2dCQUNILENBQUMsQ0FBRSxJQUFJLENBQUMsTUFBNkIsQ0FDeEMsQ0FDRjtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FDcEUsOEJBQThCLENBQzVCLFdBQVcsRUFDWCxXQUFXLEVBQ1g7WUFDRSxHQUFHLE9BQU87WUFDVixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyRSxFQUNELFVBQVUsRUFDVixJQUFJLENBQUMsUUFBUSxDQUNkLENBQ0YsRUFDRCxTQUFTLENBQUMsRUFBYyxDQUFDLEVBQ3pCLFNBQVMsQ0FBQyxFQUFjLENBQUMsRUFDekIsVUFBVSxFQUFFLENBQ2IsQ0FBQztJQVVGLENBQUM7SUFHRCxZQUFZLENBQUMsRUFBVSxFQUFFLFVBQW9CO1FBQzNDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLGFBQWEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN6QyxPQUFPLENBQ0wsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQ3JFLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxTQUFTLEtBQUssRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBR0QsUUFBUSxDQUFDLElBQXFCO1FBQzVCLE1BQU0sU0FBUyxHQUFzQixJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hELE9BQU8sU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDM0Q7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQXdCO1FBQ3hDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQ2xDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLGlCQUFpQjtZQUNqRCxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1gsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTTtZQUNwRCxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQWlCO1FBQ3ZDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFFdEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBQ0osQ0FBQztRQUVELHVEQUF1RDtRQUN2RCxJQUNFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztZQUNwQyxVQUFVLENBQUMsSUFBSSxDQUNiLFVBQVUsQ0FBQyxFQUFFLENBQ1gsZUFBZSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO2dCQUM5QyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FDL0MsRUFDRCxDQUFDO1lBQ0QsT0FBTztnQkFDTCxPQUFPLEVBQUUsSUFBSTthQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksU0FBaUIsQ0FBQztRQUV0QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakQ7UUFDRSx5SkFBeUo7UUFDekosQ0FBQyxTQUFTLElBQUksY0FBYyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzVCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUMxQyxDQUFDLEVBQ0osQ0FBQztZQUNELE9BQU87Z0JBQ0wsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsVUFBVSxDQUFDLE1BQU07WUFDakIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQ3ZFLENBQUM7WUFDRCxPQUFPO2dCQUNMLFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxTQUFpQjtRQUNuQyxPQUFPLFdBQVcsQ0FDaEIsU0FBUyxFQUNULENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxXQUFXLENBQUMsSUFBSTtZQUNwRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FDeEIsQ0FBQztJQUNKLENBQUM7c0ZBbGZVLHFCQUFxQjtvRUFBckIscUJBQXFCOzs7Ozs7O3dhQTdCckI7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtvQkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtZQzFHRCxBQURGLHdDQUF1QyxlQUNiO1lBQUEsWUFFdEI7O1lBQUEsaUJBQVE7WUFXVixBQVZBLDBFQVNFLCtFQVlEO1lBQ0QsaURBQStCO1lBQzdCLDRGQUdDOztZQWFELHFEQUE4QjtZQUM1QixhQU1GOzs7WUFDRixBQURFLGlCQUErQixFQUNkO1lBQ25CLDBGQUdDO1lBU0Qsd0NBUXFCOzs7WUFDckIseUVBR0M7O1lBT0gsaUJBQWdCOztZQW5GRCx5Q0FBdUI7WUFDWixlQUV0QjtZQUZzQiw4RUFFdEI7WUFFQyxlQUFlO1lBQWYsb0NBQWU7WUFVZixjQUFjO1lBQWQsbUNBQWM7WUFhbUIsZUFBZ0M7WUFBaEMsMEVBQWdDO1lBZ0JoRSxlQU1GO1lBTkUsMEpBTUY7WUFHQyxlQUFzQjtZQUF0QiwyQ0FBc0I7WUFhdkIsY0FJQztZQUNELEFBTEEsME9BSUMsbUVBQzZDO1lBSTdDLGVBQWdEO1lBQWhELDJGQUFnRDs0QkRrQ2pELGtCQUFrQixtSkFDbEIsU0FBUztZQUNULFFBQVE7WUFDUiw0QkFBNEIsNEJBRTVCLFVBQVUsZ0tBQ1YsSUFBSTtZQUNKLEtBQUs7WUFDTCxXQUFXLDRDQUNYLFVBQVUsb0JBQ1YsYUFBYSx1QkFDYixXQUFXLDJEQUNYLFNBQVM7O0FBWVg7SUFEQyxlQUFlLEVBQUU7OEJBQ1AsVUFBVTt1REFBUztBQU05QjtJQURDLGVBQWUsRUFBRTs4QkFDTCxVQUFVO3lEQUFTO0FBTWhDO0lBREMsZUFBZSxFQUFFOzhCQUNILFVBQVU7MkRBQXFCO0FBTTlDO0lBREMsZUFBZSxFQUFFOzhCQUNSLFVBQVU7c0RBQVM7QUEyQjdCO0lBREMsZUFBZSxFQUFFOzhCQUNMLFVBQVU7eURBQXFCO0FBWTVDO0lBREMsZUFBZSxFQUFFOzhCQUNSLFVBQVU7c0RBQW1CO0FBSXZDO0lBREMsZUFBZSxFQUFFOzhCQUNGLFVBQVU7NERBQVk7QUEwVHRDO0lBREMsSUFBSTs7Ozt5REFnQko7QUFPRDtJQURDLElBQUk7O3FDQUNVLGVBQWU7O3FEQVE3QjtpRkE3WlUscUJBQXFCO2NBekNqQyxTQUFTOzZCQUNJLElBQUksWUFDTixvQkFBb0IsbUJBU2IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQztvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjt3QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7d0JBQ3BELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGLFdBQ1E7b0JBQ1Asa0JBQWtCO29CQUNsQixTQUFTO29CQUNULFFBQVE7b0JBQ1IsNEJBQTRCO29CQUM1QixvQkFBb0I7b0JBQ3BCLFVBQVU7b0JBQ1YsSUFBSTtvQkFDSixLQUFLO29CQUNMLFdBQVc7b0JBQ1gsVUFBVTtvQkFDVixhQUFhO29CQUNiLFdBQVc7b0JBQ1gsU0FBUztvQkFDVCxnQkFBZ0I7aUJBQ2pCOzJLQU9ELE9BQU87a0JBRE4sS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsUUFBUSxNQUdSLFNBQVM7a0JBRFIsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsVUFBVSxNQUdWLFdBQVc7a0JBRFYsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsWUFBWSxNQUdaLE1BQU07a0JBREwsS0FBSztZQUlOLE9BQU8sTUFHUCxLQUFLO2tCQURKLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixJQUFJO2tCQURILEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixTQUFTO2tCQURSLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUl6QyxTQUFTO2tCQURSLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUl6QyxhQUFhO2tCQURaLEtBQUs7WUFJTixVQUFVLE1BSVYsWUFBWTtrQkFEWCxLQUFLO1lBS04sb0JBQW9CO2tCQURuQixLQUFLO1lBR0csTUFBTTtrQkFBZCxLQUFLO1lBRU4sT0FBTyxNQUVFLFlBQVk7a0JBQXBCLEtBQUs7WUFFTixhQUFhLE1BMFRiLFlBQVksTUFzQlosUUFBUTtrRkFyWkcscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlTW9kdWxlLFxuICBDb21tb25Gb3JtQ29udHJvbCxcbiAgRm9ybUl0ZW1XaWR0aCxcbiAgRm9ybU1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIFRhZ01vZHVsZSxcbiAgVGFnc0lucHV0Q29tcG9uZW50LFxuICBUb29sdGlwTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIEs4c0FwaVNlcnZpY2UsXG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIHB1Ymxpc2hSZWYsXG4gIHNraXBFcnJvcixcbiAgbWF0Y2hFeHByZXNzaW9uc1RvU3RyaW5nLFxuICBOYW1lc3BhY2UsXG4gIGJpbmQsXG4gIFRSQU5TTEFURV9NT0RVTEUsXG4gIFJFU09VUkNFX1RZUEVTLFxuICBFMmVBdHRyaWJ1dGVCaW5kaW5nRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBTdHJpbmdNYXAsXG4gIEVSUk9SU19NQVBQRVJfTU9EVUxFLFxuICBQdXJlUGlwZSxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19BU1lOQ19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdNb2RlbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdW5pcSwgdmFsdWVzIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgZmlyc3QsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgZm9ya0pvaW4sXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmV0d29ya1V0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmV0d29yay11dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VibmV0LCBTdWJuZXRJcCB9IGZyb20gJy4uLy4uL3R5cGVzL2s4cy1leHBvcnRzJztcbmltcG9ydCB7IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMgfSBmcm9tICcuLi8uLi90eXBlcy9yZXNvdXJjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7XG4gIElQTW9kZSxcbiAgTmV0d29ya01vZGUsXG4gIGFkYXB0SXBNb2RlLFxuICBhZGFwdFN1Ym5ldENpZHJzLFxuICBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMsXG4gIGlwQWRkcmVzc0VxdWFsLFxuICBpc0JlbG9uZ0NpZHIsXG4gIGlzQnJvYWRjYXN0QWRkcixcbiAgaXNJcEFkZHJlc3NWYWxpZCxcbiAgaXNOZXR3b3JrQWRkcixcbiAgZ2V0QWRkcmVzc0J1aWxkZXIsXG59IGZyb20gJy4uLy4uL3V0aWxzL2NpZHItZXhwb3J0cyc7XG5pbXBvcnQge1xuICBDbHVzdGVyTmV0d29ya1R5cGUsXG4gIEtVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYLFxufSBmcm9tICcuLi8uLi91dGlscy9zdWJuZXQtZXhwb3J0cyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2FjbC1maXhlZC1pcC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0Om5vdCg6bGFzdC1jaGlsZCkgYXVpLWZvcm0taXRlbSA6Om5nLWRlZXAgLmF1aS1mb3JtLWl0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpeGVkSXBJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaXhlZElwSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgUHVyZVBpcGUsXG4gICAgRTJlQXR0cmlidXRlQmluZGluZ0RpcmVjdGl2ZSxcbiAgICBFUlJPUlNfTUFQUEVSX01PRFVMRSxcbiAgICBGb3JtTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRhZ01vZHVsZSxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaXhlZElwSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBDb21tb25Gb3JtQ29udHJvbDxzdHJpbmcgfCBzdHJpbmdbXT5cbiAgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvclxue1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBjbHVzdGVyOiBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNsdXN0ZXIkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBuYW1lc3BhY2UkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIG5ldHdvcmtUeXBlOiBDbHVzdGVyTmV0d29ya1R5cGU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIG5ldHdvcmtUeXBlJCE6IE9ic2VydmFibGU8Q2x1c3Rlck5ldHdvcmtUeXBlPjtcblxuICBASW5wdXQoKVxuICBzdWJuZXQ6IFN1Ym5ldDtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc3VibmV0JCE6IE9ic2VydmFibGU8U3VibmV0PjtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaGludDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGFkZG9uVGlwOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnaXBBZGRyZXNzJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGlwQWRkcmVzczogTmdNb2RlbDtcblxuICBAVmlld0NoaWxkKCd0YWdzSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgdGFnc0lucHV0OiBUYWdzSW5wdXRDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgZm9ybUl0ZW1XaWR0aDogRm9ybUl0ZW1XaWR0aCA9IEZvcm1JdGVtV2lkdGguTWVkaXVtO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB0YWdzSW5wdXQkITogT2JzZXJ2YWJsZTxUYWdzSW5wdXRDb21wb25lbnQ+O1xuXG4gIC8vIOiZmuaLn+acuuabtOaWsOaXtuaOkumZpOaOieiHqui6q1xuICBASW5wdXQoKVxuICBza2lwT2NjdXBpZWQgPSBmYWxzZTtcblxuICAvLyDnm67liY3lj4zmoIjlm7rlrpogSVAg5Y+q5pSv5oyBIElQdjRcbiAgQElucHV0KClcbiAgZW5hYmxlRml4SXBWNkZvckR1YWwgPSBmYWxzZTtcblxuICBASW5wdXQoKSBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnM7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBlcnJvcnMkITogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzPjtcblxuICBASW5wdXQoKSBlcnJvcnNNYXBwZXI6IFN0cmluZ01hcDtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGVycm9yc01hcHBlciQhOiBPYnNlcnZhYmxlPFN0cmluZ01hcD47XG5cbiAgdW5pcSA9IHVuaXE7XG4gIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIGdldCBpc0NhbGljbygpIHtcbiAgICByZXR1cm4gdGhpcy5uZXR3b3JrVHlwZSA9PT0gQ2x1c3Rlck5ldHdvcmtUeXBlLkNBTElDTztcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlUmVzb3VyY2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jbHVzdGVyJCxcbiAgICB0aGlzLm5hbWVzcGFjZSQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbY2x1c3RlciwgbmFtZXNwYWNlXSkgPT4gISFjbHVzdGVyICYmICEhbmFtZXNwYWNlKSxcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCBuYW1lc3BhY2VdKSA9PlxuICAgICAgdGhpcy5rOHNBcGkuZ2V0UmVzb3VyY2U8TmFtZXNwYWNlPih7XG4gICAgICAgIHR5cGU6IFJFU09VUkNFX1RZUEVTLk5BTUVTUEFDRSxcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgbmFtZTogbmFtZXNwYWNlLFxuICAgICAgfSksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZXR3b3JrTW9kZSQgPSB0aGlzLmNsdXN0ZXIkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGNsdXN0ZXIgPT4gdGhpcy5uZXR3b3JrVXRpbFNlcnZpY2UuZ2V0TmV0d29ya01vZGUkKGNsdXN0ZXIpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcmVhZG9ubHkgJG5ldHdvcmtNb2RlID0gdG9TaWduYWwodGhpcy5uZXR3b3JrTW9kZSQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3VibmV0RGV0YWlscyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNsdXN0ZXIkLFxuICAgIHRoaXMubmV0d29ya1R5cGUkLFxuICAgIHRoaXMuc3VibmV0JCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtjbHVzdGVyLCBuZXR3b3JrVHlwZV0pID0+ICEhY2x1c3RlciAmJiAhIW5ldHdvcmtUeXBlKSxcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCBfbmV0d29ya1R5cGUsIHN1Ym5ldF0pID0+XG4gICAgICBzdWJuZXRcbiAgICAgICAgPyBvZih7XG4gICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgc3VibmV0czogW3N1Ym5ldF0sXG4gICAgICAgICAgICBzdWJuZXQsXG4gICAgICAgICAgICBnYXRld2F5OiBzdWJuZXQuc3BlYz8uZ2F0ZXdheSxcbiAgICAgICAgICAgIGV4Y2x1ZGVJcHM6IHN1Ym5ldC5zcGVjPy5leGNsdWRlSXBzLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogdGhpcy5pc0NhbGljb1xuICAgICAgICAgID8gdGhpcy5rOHNBcGlcbiAgICAgICAgICAgICAgLmdldFJlc291cmNlTGlzdDxTdWJuZXQ+KHtcbiAgICAgICAgICAgICAgICB0eXBlOiBORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgICAgICAgICBjbHVzdGVyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzID0+IHJlcy5pdGVtcyksXG4gICAgICAgICAgICAgICAgc2tpcEVycm9yKFtdIGFzIFN1Ym5ldFtdKSxcbiAgICAgICAgICAgICAgICBtYXAoc3VibmV0cyA9PiAoe1xuICAgICAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgICAgIHN1Ym5ldHMsXG4gICAgICAgICAgICAgICAgICBzdWJuZXQ6IG51bGwgYXMgU3VibmV0LFxuICAgICAgICAgICAgICAgICAgZ2F0ZXdheTogJycsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlSXBzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICA6IG9mKHtcbiAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgc3VibmV0czogW10gYXMgU3VibmV0W10sXG4gICAgICAgICAgICAgIHN1Ym5ldDogbnVsbCBhcyBTdWJuZXQsXG4gICAgICAgICAgICAgIGdhdGV3YXk6ICcnLFxuICAgICAgICAgICAgICBleGNsdWRlSXBzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJuZXRJbmZvJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubmV0d29ya01vZGUkLFxuICAgIHRoaXMubmFtZXNwYWNlUmVzb3VyY2UkLnBpcGUoZmlsdGVyKEJvb2xlYW4pKSxcbiAgICB0aGlzLnN1Ym5ldERldGFpbHMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbXG4gICAgICAgIG5ldHdvcmtNb2RlLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIHsgY2x1c3Rlciwgc3VibmV0cywgc3VibmV0LCBnYXRld2F5LCBleGNsdWRlSXBzIH0sXG4gICAgICBdKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICBzdWJuZXRDaWRyczogdGhpcy5pc0NhbGljb1xuICAgICAgICAgICAgPyB0aGlzLm5ldHdvcmtVdGlsU2VydmljZS5nZXRDYWxpY29DaWRycyhcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgICAgICAgc3VibmV0cyxcbiAgICAgICAgICAgICAgICBuZXR3b3JrTW9kZSxcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGFkYXB0U3VibmV0Q2lkcnMoXG4gICAgICAgICAgICAgICAgc3VibmV0ID09IG51bGxcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5rOHNVdGlsLmdldEFubm90YXRpb24obmFtZXNwYWNlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NpZHInLFxuICAgICAgICAgICAgICAgICAgICAgIGJhc2VEb21haW46IEtVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgOiAoc3VibmV0LnNwZWM/LmNpZHJCbG9jayA/PyAnJyksXG4gICAgICAgICAgICAgICAgdGhpcy4kbmV0d29ya01vZGUoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgIHN1Ym5ldE5hbWU6XG4gICAgICAgICAgICBzdWJuZXQgPT0gbnVsbFxuICAgICAgICAgICAgICA/IHRoaXMuaXNDYWxpY29cbiAgICAgICAgICAgICAgICA/IHRoaXMubmV0d29ya1V0aWxTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5nZXRDYWxpY29TdWJuZXROYW1lcyhuYW1lc3BhY2UsIHRoaXMuJG5ldHdvcmtNb2RlKCkpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJylcbiAgICAgICAgICAgICAgICA6IHRoaXMuazhzVXRpbC5nZXRBbm5vdGF0aW9uKG5hbWVzcGFjZSwge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbG9naWNhbF9zd2l0Y2gnLFxuICAgICAgICAgICAgICAgICAgICBiYXNlRG9tYWluOiBLVUJFX09WTl9BTk5PVEFUSU9OX1BSRUZJWCxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogdGhpcy5rOHNVdGlsLmdldE5hbWUoc3VibmV0KSxcbiAgICAgICAgICBnYXRld2F5LFxuICAgICAgICAgIGV4Y2x1ZGVJcHM6IGV4Y2x1ZGVJcHMgfHwgKFtdIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgKSxcbiAgICBzd2l0Y2hNYXAoc3VibmV0SW5mbyA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubmV0d29ya1R5cGUgPT09IENsdXN0ZXJOZXR3b3JrVHlwZS5LVUJFX09WTiAmJlxuICAgICAgICAhc3VibmV0SW5mby5nYXRld2F5XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgICAgIHN1Ym5ldEluZm8uc3VibmV0TmFtZS5zcGxpdCgnLCcpLm1hcChzdWJuZXROYW1lID0+XG4gICAgICAgICAgICB0aGlzLms4c0FwaVxuICAgICAgICAgICAgICAuZ2V0UmVzb3VyY2U8U3VibmV0Pih7XG4gICAgICAgICAgICAgICAgdHlwZTogTkVUV09SS19SRVNPVVJDRV9UWVBFUy5TVUJORVRfS1VCRV9PVk4sXG4gICAgICAgICAgICAgICAgY2x1c3Rlcjogc3VibmV0SW5mby5jbHVzdGVyLFxuICAgICAgICAgICAgICAgIG5hbWU6IHN1Ym5ldE5hbWUsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5waXBlKHNraXBFcnJvcihudWxsIGFzIFN1Ym5ldCkpLFxuICAgICAgICAgICksXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBtYXAobGlzdCA9PiBsaXN0LmZpbHRlcihCb29sZWFuKSksXG4gICAgICAgICAgbWFwKHN1Ym5ldExpc3QgPT5cbiAgICAgICAgICAgIHN1Ym5ldExpc3QubGVuZ3RoXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgLi4uc3VibmV0SW5mbyxcbiAgICAgICAgICAgICAgICAgIGdhdGV3YXk6IHN1Ym5ldExpc3RcbiAgICAgICAgICAgICAgICAgICAgLm1hcChpdGVtID0+IGl0ZW0uc3BlYz8uZ2F0ZXdheSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCcpLFxuICAgICAgICAgICAgICAgICAgZXhjbHVkZUlwczogdW5pcShcbiAgICAgICAgICAgICAgICAgICAgc3VibmV0TGlzdC5mbGF0TWFwKGl0ZW0gPT4gaXRlbS5zcGVjPy5leGNsdWRlSXBzKSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHN1Ym5ldEluZm8sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvZihzdWJuZXRJbmZvKTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAoc3VibmV0SW5mbyA9PiB7XG4gICAgICBpZiAoc3VibmV0SW5mby5zdWJuZXRDaWRycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHN1Ym5ldEluZm8pO1xuICAgICAgfVxuXG4gICAgICAvLyBmYWxsYmFjayB0byBkZWZhdWx0IHN1Ym5ldFxuICAgICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAgIC5nZXRSZXNvdXJjZTxTdWJuZXQ+KHtcbiAgICAgICAgICB0eXBlOiBORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgICBjbHVzdGVyOiBzdWJuZXRJbmZvLmNsdXN0ZXIsXG4gICAgICAgICAgbmFtZTogdGhpcy5pc0NhbGljb1xuICAgICAgICAgICAgPyBgZGVmYXVsdC1pcCR7XG4gICAgICAgICAgICAgICAgdGhpcy4kbmV0d29ya01vZGUoKSA9PT0gJ2R1YWwnID8gJ3Y0JyA6IHRoaXMuJG5ldHdvcmtNb2RlKClcbiAgICAgICAgICAgICAgfS1pcHBvb2xgXG4gICAgICAgICAgICA6ICdvdm4tZGVmYXVsdCcsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChzdWJuZXQgPT4gKHtcbiAgICAgICAgICAgIC4uLnN1Ym5ldEluZm8sXG4gICAgICAgICAgICBzdWJuZXRDaWRyczogYWRhcHRTdWJuZXRDaWRycyhcbiAgICAgICAgICAgICAgc3VibmV0LnNwZWMuY2lkckJsb2NrLFxuICAgICAgICAgICAgICB0aGlzLiRuZXR3b3JrTW9kZSgpLFxuICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZpeElwVjZGb3JEdWFsLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN1Ym5ldE5hbWU6IHRoaXMuazhzVXRpbC5nZXROYW1lKHN1Ym5ldCksXG4gICAgICAgICAgICBnYXRld2F5OiBzdWJuZXQuc3BlYy5nYXRld2F5LFxuICAgICAgICAgICAgZXhjbHVkZUlwczogc3VibmV0LnNwZWMuZXhjbHVkZUlwcyxcbiAgICAgICAgICB9KSksXG4gICAgICAgICk7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHJlYWRvbmx5ICRzdWJuZXRJbmZvID0gdG9TaWduYWwodGhpcy5zdWJuZXRJbmZvJCk7XG5cbiAgY2lkciQgPSB0aGlzLnN1Ym5ldEluZm8kLnBpcGUoXG4gICAgbWFwKHN1Ym5ldEluZm8gPT4gdW5pcShzdWJuZXRJbmZvPy5zdWJuZXRDaWRycykuam9pbign44CBJykpLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5uZXJFcnJvcnNNYXBwZXIkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jaWRyJCxcbiAgICB0aGlzLnRyYW5zbGF0ZS5sb2NhbGUkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2NpZHJdKSA9PiAoe1xuICAgICAgcGF0dGVybjogdGhpcy50cmFuc2xhdGUuZ2V0KCdmaXhlZF9pcF9wYXR0ZXJuX3RpcHMnLCB7XG4gICAgICAgIGlwTW9kZTogWydkdWFsJywgJ3Y0J10uaW5jbHVkZXModGhpcy4kbmV0d29ya01vZGUoKSkgPyAnSVB2NCcgOiAnSVB2NicsXG4gICAgICB9KSxcbiAgICAgIG9jY3VwaWVkOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ2ZpeGVkX2lwX29jY3VwaWVkX3RpcHMnLCB7XG4gICAgICAgIGNpZHIsXG4gICAgICB9KSxcbiAgICAgIG91dF9vZl9yYW5nZTogdGhpcy50cmFuc2xhdGUuZ2V0KCdmaXhlZF9pcF9vdXRfb2ZfcmFuZ2VfdGlwcycsIHtcbiAgICAgICAgY2lkcixcbiAgICAgIH0pLFxuICAgIH0pKSxcbiAgKTtcblxuICBjb21iaW5lZEVycm9yc01hcHBlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmlubmVyRXJyb3JzTWFwcGVyJCxcbiAgICB0aGlzLmVycm9yc01hcHBlciQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbaW5uZXJFcnJvcnNNYXBwZXIsIGVycm9yc01hcHBlcl0pID0+ICh7XG4gICAgICAuLi5pbm5lckVycm9yc01hcHBlcixcbiAgICAgIC4uLmVycm9yc01hcHBlcixcbiAgICB9KSksXG4gICk7XG5cbiAgaW5wdXRFcnJvcnMkID0gdGhpcy5lcnJvcnMkLnBpcGUoXG4gICAgdGFwKGVycm9ycyA9PiB7XG4gICAgICB0aGlzLnNldEVycm9ycyhlcnJvcnMpO1xuICAgICAgdGhpcy5pcEFkZHJlc3M/LmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2U/LigpO1xuICAgIH0pLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlZElwcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNsdXN0ZXIkLFxuICAgIHRoaXMuc3VibmV0SW5mbyQsXG4gICAgdGhpcy5tb2RlbCQucGlwZShmaXJzdCgpKSxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtjbHVzdGVyLCB7IHN1Ym5ldE5hbWUsIGdhdGV3YXkgfSwgaXBdKSA9PlxuICAgICAgdGhpcy5rOHNBcGlcbiAgICAgICAgLmdldFJlc291cmNlTGlzdDxTdWJuZXRJcD4oe1xuICAgICAgICAgIHR5cGU6IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMuU1VCTkVUX0tVQkVfT1ZOX0lQLFxuICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgIGxhYmVsU2VsZWN0b3I6IG1hdGNoRXhwcmVzc2lvbnNUb1N0cmluZyhbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IGAke0tVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYfS9zdWJuZXRgLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAnaW4nLFxuICAgICAgICAgICAgICAgIHZhbHVlczogc3VibmV0TmFtZS5zcGxpdCgnLCcpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHJlcyA9PiByZXMuaXRlbXMpLFxuICAgICAgICAgIHNraXBFcnJvcihbXSBhcyBTdWJuZXRJcFtdKSxcbiAgICAgICAgICBtYXAoc3VibmV0SXBzID0+XG4gICAgICAgICAgICBzdWJuZXRJcHMucmVkdWNlPHN0cmluZ1tdPigodXNlZElwcywgeyBzcGVjOiB7IGlwQWRkcmVzcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgaXBBZGRyZXNzLnNwbGl0KCcsJykuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXAgIT09IGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgIHVzZWRJcHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gdXNlZElwcztcbiAgICAgICAgICAgIH0sIGdhdGV3YXkuc3BsaXQoJywnKSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5ICR1c2VkSXBzID0gdG9TaWduYWwodGhpcy51c2VkSXBzJCk7XG5cbiAgaXBBZGRyZXNzU3VnZ2VzdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5zdWJuZXRJbmZvJCxcbiAgICB0aGlzLnVzZWRJcHMkLFxuICAgIHRoaXMubmV0d29ya01vZGUkLFxuICAgIHRoaXMubW9kZWwkLFxuICAgIHRoaXMudGFnc0lucHV0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHRhZ3NJbnB1dCA9PlxuICAgICAgICB0YWdzSW5wdXRcbiAgICAgICAgICA/IG1lcmdlKFxuICAgICAgICAgICAgICBmcm9tRXZlbnQodGFnc0lucHV0LmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGV2ID0+IChldi50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB0YWdzSW5wdXQuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcyBhcyBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiAodGhpcy5tb2RlbCQgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+KSxcbiAgICAgICksXG4gICAgKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt7IHN1Ym5ldENpZHJzIH0sIHVzZWRJcHMsIG5ldHdvcmtNb2RlLCBhZGRlZElwcywgaW5wdXRWYWx1ZV0pID0+XG4gICAgICBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMoXG4gICAgICAgIHN1Ym5ldENpZHJzLFxuICAgICAgICBuZXR3b3JrTW9kZSxcbiAgICAgICAgW1xuICAgICAgICAgIC4uLnVzZWRJcHMsXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoYWRkZWRJcHMpID8gYWRkZWRJcHMgOiBbYWRkZWRJcHNdLmZpbHRlcihCb29sZWFuKSksXG4gICAgICAgIF0sXG4gICAgICAgIGlucHV0VmFsdWUsXG4gICAgICAgIHRoaXMuaXNDYWxpY28sXG4gICAgICApLFxuICAgICksXG4gICAgc3RhcnRXaXRoKFtdIGFzIHN0cmluZ1tdKSxcbiAgICBza2lwRXJyb3IoW10gYXMgc3RyaW5nW10pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c1V0aWw6IEs4c1V0aWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV0d29ya1V0aWxTZXJ2aWNlOiBOZXR3b3JrVXRpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGNkcik7XG4gIH1cblxuICBAYmluZFxuICBpc1Jlc2VydmVkSXAoaXA6IHN0cmluZywgZXhjbHVkZUlwczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIodGhpcy5hZGFwdElwTW9kZShpcCkpO1xuICAgIHJldHVybiBleGNsdWRlSXBzPy5zb21lKGV4Y2x1ZGVJcCA9PiB7XG4gICAgICBpZiAoZXhjbHVkZUlwLmluY2x1ZGVzKCcuLicpKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IGV4Y2x1ZGVJcD8uc3BsaXQoJy4uJyk7XG4gICAgICAgIGNvbnN0IF9CdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIodGhpcy5hZGFwdElwTW9kZShzdGFydCkpO1xuICAgICAgICBjb25zdCBfc3RhcnRBZGRyZXNzID0gbmV3IF9CdWlsZGVyKHN0YXJ0KS5iaWdJbnRlZ2VyKCk7XG4gICAgICAgIGNvbnN0IF9lbmRBZGRyZXNzID0gbmV3IF9CdWlsZGVyKGVuZCkuYmlnSW50ZWdlcigpO1xuICAgICAgICBjb25zdCBfaXAgPSBuZXcgQnVpbGRlcihpcCkuYmlnSW50ZWdlcigpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIF9zdGFydEFkZHJlc3MuY29tcGFyZVRvKF9pcCkgPD0gMCAmJiBfaXAuY29tcGFyZVRvKF9lbmRBZGRyZXNzKSA8PSAwXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXhjbHVkZUlwID09PSBpcDtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICBAYmluZFxuICB2YWxpZGF0ZShjdHJsOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBjb25zdCBpcEFkZHJlc3M6IHN0cmluZyB8IHN0cmluZ1tdID0gY3RybC52YWx1ZTtcbiAgICByZXR1cm4gaXBBZGRyZXNzICYmICFBcnJheS5pc0FycmF5KGlwQWRkcmVzcylcbiAgICAgID8gdGhpcy51c2VkSXBzJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgbWFwKCgpID0+IHRoaXMuc2V0RXJyb3JzKHRoaXMudmFsaWRhdGVGaXhlZElwKGlwQWRkcmVzcykpKSxcbiAgICAgICAgKVxuICAgICAgOiBvZih0aGlzLnNldEVycm9ycyhudWxsKSk7XG4gIH1cblxuICBwcml2YXRlIHNldEVycm9ycyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICBjb25zdCBjb21iaW5lZEVycm9ycyA9IHRoaXMubXVsdGlwbGVcbiAgICAgID8geyAuLi50aGlzLmVycm9ycywgLi4uZXJyb3JzIH0gLy8g5Y+v6IO95a2Y5Zyo5Lyg5YWl55qEIGVycm9yc1xuICAgICAgOiBlcnJvcnM7XG4gICAgY29uc3QgdmFsaWRhdGlvbkVycm9ycyA9IHZhbHVlcyhjb21iaW5lZEVycm9ycykubGVuZ3RoXG4gICAgICA/IGNvbWJpbmVkRXJyb3JzXG4gICAgICA6IG51bGw7XG4gICAgdGhpcy5pcEFkZHJlc3M/LmNvbnRyb2wuc2V0RXJyb3JzKHZhbGlkYXRpb25FcnJvcnMpO1xuICAgIHJldHVybiB2YWxpZGF0aW9uRXJyb3JzO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpeGVkSXAoaXBBZGRyZXNzOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHN1Ym5ldENpZHJzLCBnYXRld2F5IH0gPSB0aGlzLiRzdWJuZXRJbmZvKCk7XG5cbiAgICBjb25zdCBpcE1vZGUgPSB0aGlzLmFkYXB0SXBNb2RlKGlwQWRkcmVzcyk7XG4gICAgY29uc3QgaXNJcFY0ID0gaXBNb2RlID09PSBJUE1vZGUuSVBWNDtcblxuICAgIGNvbnN0IGp1ZGdlQ2lkcnMgPSBzdWJuZXRDaWRycy5maWx0ZXIoY2lkciA9PiB7XG4gICAgICBjb25zdCBpc0lwVjYgPSBjaWRyLmluY2x1ZGVzKCc6Jyk7XG4gICAgICByZXR1cm4gaXNJcFY0ID8gIWlzSXBWNiA6IGlzSXBWNjtcbiAgICB9KTtcblxuICAgIGlmIChzdWJuZXRDaWRycy5sZW5ndGggJiYgIWp1ZGdlQ2lkcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXR0ZXJuOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBpbnZhbGlkIGlwIHBhdHRlcm4sIG5vdCBicm9hZGNhc3QgaXAsIG5vdCBuZXR3b3JrIGlwXG4gICAgaWYgKFxuICAgICAgIWlzSXBBZGRyZXNzVmFsaWQoaXBBZGRyZXNzLCBpcE1vZGUpIHx8XG4gICAgICBqdWRnZUNpZHJzLnNvbWUoXG4gICAgICAgIGNhbGljb0NpZHIgPT5cbiAgICAgICAgICBpc0Jyb2FkY2FzdEFkZHIoaXBBZGRyZXNzLCBjYWxpY29DaWRyLCBpcE1vZGUpIHx8XG4gICAgICAgICAgaXNOZXR3b3JrQWRkcihpcEFkZHJlc3MsIGNhbGljb0NpZHIsIGlwTW9kZSksXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXR0ZXJuOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgdjRHYXRld2F5OiBzdHJpbmc7XG4gICAgbGV0IHY2R2F0ZXdheTogc3RyaW5nO1xuXG4gICAgaWYgKGdhdGV3YXkpIHtcbiAgICAgIGNvbnN0IGdhdGV3YXlQYXJ0cyA9IGdhdGV3YXkuc3BsaXQoJywnKTtcbiAgICAgIHY0R2F0ZXdheSA9IGdhdGV3YXlQYXJ0c1swXTtcbiAgICAgIHY2R2F0ZXdheSA9IGdhdGV3YXlQYXJ0c1sxXTtcbiAgICB9XG5cbiAgICBjb25zdCBpcEdhdGV3YXkgPSBpc0lwVjQgPyB2NEdhdGV3YXkgOiB2NkdhdGV3YXk7XG5cbiAgICBpZiAoXG4gICAgICAvLyBodHRwczovL2ppcmEuYWxhdWRhLmNuL2Jyb3dzZS9BQ1AtMTIxMzY/Zm9jdXNlZENvbW1lbnRJZD0yMTU0NjAmcGFnZT1jb20uYXRsYXNzaWFuLmppcmEucGx1Z2luLnN5c3RlbS5pc3N1ZXRhYnBhbmVscyUzQWNvbW1lbnQtdGFicGFuZWwjY29tbWVudC0yMTU0NjBcbiAgICAgIChpcEdhdGV3YXkgJiYgaXBBZGRyZXNzRXF1YWwoaXBHYXRld2F5LCBpcEFkZHJlc3MsIGlwTW9kZSkpIHx8XG4gICAgICAoIXRoaXMuc2tpcE9jY3VwaWVkICYmXG4gICAgICAgIHRoaXMuJHVzZWRJcHMoKS5zb21lKHVzZWRJcCA9PlxuICAgICAgICAgIGlwQWRkcmVzc0VxdWFsKHVzZWRJcCwgaXBBZGRyZXNzLCBpcE1vZGUpLFxuICAgICAgICApKVxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb2NjdXBpZWQ6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGp1ZGdlQ2lkcnMubGVuZ3RoICYmXG4gICAgICAhanVkZ2VDaWRycy5zb21lKGNpZHIgPT4gY2lkciAmJiBpc0JlbG9uZ0NpZHIoY2lkciwgaXBBZGRyZXNzLCBpcE1vZGUpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3V0X29mX3JhbmdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkYXB0SXBNb2RlKGlwQWRkcmVzczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGFkYXB0SXBNb2RlKFxuICAgICAgaXBBZGRyZXNzLFxuICAgICAgIXRoaXMuZW5hYmxlRml4SXBWNkZvckR1YWwgJiYgdGhpcy4kbmV0d29ya01vZGUoKSA9PT0gTmV0d29ya01vZGUuRFVBTFxuICAgICAgICA/IE5ldHdvcmtNb2RlLklQVjRcbiAgICAgICAgOiB0aGlzLiRuZXR3b3JrTW9kZSgpLFxuICAgICk7XG4gIH1cbn1cbiIsIjxhdWktZm9ybS1pdGVtIFt3aWR0aF09XCJmb3JtSXRlbVdpZHRoXCI+XG4gIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPnt7XG4gICAgbGFiZWwgfHwgKCduZXR3b3JrLmlwX2FkZHJlc3MnIHwgdHJhbnNsYXRlKVxuICB9fTwvbGFiZWw+XG4gIDxpbnB1dFxuICAgICpuZ0lmPVwiIW11bHRpcGxlXCJcbiAgICBhdWktaW5wdXRcbiAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW1pdFZhbHVlKCRldmVudClcIlxuICAgICNpcEFkZHJlc3M9XCJuZ01vZGVsXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgKCdkaGNwX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSlcIlxuICAgIFthdWlBdXRvY29tcGxldGVdPVwic3VnZ2VzdGlvbnNcIlxuICAvPlxuICA8YXVpLXRhZ3MtaW5wdXRcbiAgICAqbmdJZj1cIm11bHRpcGxlXCJcbiAgICBjbGFzcz1cImZsZXgtMVwiXG4gICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgI3RhZ3NJbnB1dFxuICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJlbWl0VmFsdWUodW5pcSgkZXZlbnQpKVwiXG4gICAgI2lwQWRkcmVzcz1cIm5nTW9kZWxcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCAoJ2RoY3BfcGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlKVwiXG4gICAgW2F1aUF1dG9jb21wbGV0ZV09XCJzdWdnZXN0aW9uc1wiXG4gICAgW2lucHV0QXN5bmNWYWxpZGF0b3JdPVwidmFsaWRhdGVcIlxuICA+PC9hdWktdGFncy1pbnB1dD5cbiAgPGF1aS1hdXRvY29tcGxldGUgI3N1Z2dlc3Rpb25zPlxuICAgIDxhdWktc3VnZ2VzdGlvblxuICAgICAgKm5nRm9yPVwibGV0IGlwQWRkcmVzc1N1Z2dlc3Rpb24gb2YgaXBBZGRyZXNzU3VnZ2VzdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgW3ZhbHVlXT1cImlwQWRkcmVzc1N1Z2dlc3Rpb25cIlxuICAgID5cbiAgICAgIHt7IGlwQWRkcmVzc1N1Z2dlc3Rpb24gfX1cbiAgICAgIDxhdWktdGFnXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgaXBBZGRyZXNzU3VnZ2VzdGlvbiB8IHB1cmU6IGlzUmVzZXJ2ZWRJcCA6ICRzdWJuZXRJbmZvKCkuZXhjbHVkZUlwc1xuICAgICAgICBcIlxuICAgICAgICBbYm9yZGVyXT1cInRydWVcIlxuICAgICAgICBbc2l6ZV09XCInbWluaSdcIlxuICAgICAgICB0eXBlPVwiaW5mb1wiXG4gICAgICA+XG4gICAgICAgIHt7ICduZXR3b3JrLnJlc2VydmVkX2lwJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9hdWktdGFnPlxuICAgIDwvYXVpLXN1Z2dlc3Rpb24+XG4gICAgPGF1aS1hdXRvY29tcGxldGUtcGxhY2Vob2xkZXI+XG4gICAgICB7e1xuICAgICAgICAoKGlwQWRkcmVzc1N1Z2dlc3Rpb25zJCB8IGFzeW5jKVxuICAgICAgICAgID8gJ25ldHdvcmsubm9fYXZhaWxhYmxlX3N1Z2dlc3Rpb24nXG4gICAgICAgICAgOiAnbG9hZGluZydcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgfX1cbiAgICA8L2F1aS1hdXRvY29tcGxldGUtcGxhY2Vob2xkZXI+XG4gIDwvYXVpLWF1dG9jb21wbGV0ZT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiYWRkb25UaXAgIT0gbnVsbFwiXG4gICAgYXVpRm9ybUl0ZW1BZGRvblxuICA+XG4gICAgPGF1aS1pY29uXG4gICAgICAqbmdJZj1cImFkZG9uVGlwXCJcbiAgICAgIGljb249XCJxdWVzdGlvbl9jaXJjbGVcIlxuICAgICAgY2xhc3M9XCJpY29uLS1oZWxwXCJcbiAgICAgIFthdWlUb29sdGlwXT1cImFkZG9uVGlwXCJcbiAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImVuZFwiXG4gICAgPjwvYXVpLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuICA8YWNsLWVycm9ycy1tYXBwZXJcbiAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgW2Vycm9yc109XCJcbiAgICAgIGlwQWRkcmVzcz8uZXJyb3JzPy5pbnB1dF9kYXRhX2Vycm9yIHx8XG4gICAgICBpcEFkZHJlc3M/LmVycm9ycyB8fFxuICAgICAgKGlucHV0RXJyb3JzJCB8IGFzeW5jKVxuICAgIFwiXG4gICAgW2Vycm9yc01hcHBlcl09XCJjb21iaW5lZEVycm9yc01hcHBlciQgfCBhc3luY1wiXG4gID48L2FjbC1lcnJvcnMtbWFwcGVyPlxuICA8ZGl2XG4gICAgYXVpRm9ybUl0ZW1IaW50XG4gICAgKm5nSWY9XCJoaW50ICE9PSBudWxsICYmIChoaW50IHx8IChjaWRyJCB8IGFzeW5jKSlcIlxuICA+XG4gICAge3tcbiAgICAgIGhpbnQgfHxcbiAgICAgICAgKCduZXR3b3JrLmZpeF9pcF9zaG91bGRfYmVsb25nX3RpcCdcbiAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBjaWRyOiAoY2lkciQgfCBhc3luYykgfSlcbiAgICB9fVxuICA8L2Rpdj5cbjwvYXVpLWZvcm0taXRlbT5cbiJdfQ==
@@ -33,4 +33,9 @@ export var RuleType;
33
33
  RuleType["COOKIE"] = "COOKIE";
34
34
  RuleType["PARAM"] = "PARAM";
35
35
  })(RuleType || (RuleType = {}));
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi90eXBlcy9rOHMtZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzdCLG9DQUFhLENBQUE7SUFDYixzQ0FBZSxDQUFBO0lBQ2Ysc0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsb0NBQWlCLENBQUE7SUFDakIsK0NBQTRCLENBQUE7SUFDNUIsa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUF5TEQsb0VBQW9FO0FBQ3BFLHNCQUFzQjtBQUV0QixNQUFNLENBQU4sSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCw0QkFBZSxDQUFBO0lBQ2Ysc0JBQVMsQ0FBQTtJQUNULHNCQUFTLENBQUE7SUFDVCxzQkFBUyxDQUFBO0lBQ1QsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZix3Q0FBMkIsQ0FBQTtJQUMzQixvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBVlcsU0FBUyxLQUFULFNBQVMsUUFVcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2xCLHlCQUFhLENBQUE7SUFDYix1QkFBVyxDQUFBO0lBQ1gsNkJBQWlCLENBQUE7SUFDakIsNkJBQWlCLENBQUE7SUFDakIsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbGJQcm90b2NvbCxcbiAgQ2VydGlmaWNhdGUsXG4gIENvbmRpdGlvbixcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBMYWJlbFNlbGVjdG9yLFxuICBTZXJ2aWNlR3JvdXAsXG4gIFN0cmluZ01hcCxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5leHBvcnQgZW51bSBFbmNhcHN1bGF0ZVByb3RvY29sIHtcbiAgSVBJUCA9ICdJUElQJyxcbiAgVlhMQU4gPSAnVlhMQU4nLFxuICBORVZFUiA9ICdORVZFUicsXG59XG5cbmV4cG9ydCBlbnVtIEVuY2Fwc3VsYXRlTW9kZSB7XG4gIEFMV0FZUyA9ICdBbHdheXMnLFxuICBDUk9TU19TVUJORVQgPSAnQ3Jvc3NTdWJuZXQnLFxuICBORVZFUiA9ICdOZXZlcicsXG59XG5cbi8vIFN1Ym5ldFxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRTdGF0dXMge1xuICB1c2luZ0lQcz86IG51bWJlcjtcbiAgYXZhaWxhYmxlSVBzPzogbnVtYmVyO1xuICB2NHVzaW5nSVBzPzogbnVtYmVyO1xuICB2NGF2YWlsYWJsZUlQcz86IG51bWJlcjtcbiAgdjZ1c2luZ0lQcz86IG51bWJlcjtcbiAgdjZhdmFpbGFibGVJUHM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0U3BlYyB7XG4gIGRlZmF1bHQ6IGJvb2xlYW47IC8vIHdoZXRoZXIgZGVmYXVsdFxuICBwcm90b2NvbDogJ0lQdjQnIHwgJ0lQdjYnIHwgJ0R1YWwnO1xuICBuYW1lc3BhY2VzPzogc3RyaW5nW107XG4gIGNpZHJCbG9jazogc3RyaW5nOyAvLyBzZWdtZW50XG4gIG5hdE91dGdvaW5nPzogYm9vbGVhbjtcbiAgLy8gZm9yIGNhbGljb1xuICBpcGlwTW9kZT86IEVuY2Fwc3VsYXRlTW9kZTtcbiAgdnhsYW5Nb2RlPzogRW5jYXBzdWxhdGVNb2RlO1xuICBibG9ja1NpemU/OiBudW1iZXI7XG4gIHY0YmxvY2tTaXplPzogbnVtYmVyO1xuICB2NmJsb2NrU2l6ZT86IG51bWJlcjtcblxuICAvLyBmb3Iga3ViLW92blxuICBnYXRld2F5OiBzdHJpbmc7IC8vIGRlZmF1bHQsY2lkcl9ibG9jaydzIGZpcnN0IGF2YWlsYWJsZVxuICBleGNsdWRlSXBzOiBzdHJpbmdbXTtcbiAgZ2F0ZXdheVR5cGU6IHN0cmluZztcbiAgZ2F0ZXdheU5vZGU/OiBzdHJpbmc7IC8vIHJlcXVpcmVkIHdoZW4gZ2F0ZXdheV90eXBlIGlzIENlbnRyYWxpemVkXG4gIHByaXZhdGU/OiBib29sZWFuOyAvLyBwcml2YXRlIG5ldHdvcmssZGVmYXVsdCBmYWxzZVxuICBhbGxvd1N1Ym5ldHM/OiBzdHJpbmdbXTsgLy8gZW5hYmxlIHdoZW4gcHJpdmF0ZSBpcyB0cnVlXG4gIGVuYWJsZUVjbXA/OiBib29sZWFuOyAvLyByZXF1aXJlZCB3aGVuIGdhdGV3YXlfdHlwZSBpcyBDZW50cmFsaXplZC4gaHR0cHM6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTE2MzA3MTA0MlxuXG4gIG5hbWVzcGFjZVNlbGVjdG9ycz86IExhYmVsU2VsZWN0b3JbXTtcbiAgLy8gdW5kZXJsYXlcbiAgdmxhbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogU3VibmV0U3BlYztcbiAgc3RhdHVzPzogU3VibmV0U3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1Ym5ldElwU3BlYyB7XG4gIHBvZE5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHN1Ym5ldDogc3RyaW5nO1xuICBub2RlTmFtZTogc3RyaW5nO1xuICBpcEFkZHJlc3M/OiBzdHJpbmc7XG4gIG1hY0FkZHJlc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRJcCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBTdWJuZXRJcFNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJDb25uZWN0aW9uU3VibmV0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzogSW50ZXJDb25uZWN0aW9uU3VibmV0U3BlYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlckNvbm5lY3Rpb25TdWJuZXRTcGVjIHtcbiAgc3VibmV0czogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjaWRyOiBzdHJpbmc7XG4gIH0+O1xufVxuXG4vLyBMb2FkQmFsYW5jZXJcbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAga2luZDogJ0FMQjInO1xuICBzcGVjPzogTG9hZEJhbGFuY2VyU3BlYztcbiAgc3RhdHVzPzogTG9hZEJhbGFuY2VyU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlclN0YXR1cyB7XG4gIHByb2JlVGltZTogc3RyaW5nO1xuICByZWFzb246IHN0cmluZztcbiAgc3RhdGU6ICdyZWFkeScgfCAnd2FybmluZyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyU3BlYyB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYmluZF9hZGRyZXNzOiBzdHJpbmc7XG4gIGRvbWFpbnM6IHN0cmluZ1tdO1xuICBpYWFzX2lkOiBzdHJpbmc7XG4gIHR5cGU6ICduZ2lueCc7XG59XG5cbi8vIEFMQjJcbmV4cG9ydCBpbnRlcmZhY2UgQUxCMlN0YXR1cyBleHRlbmRzIENvbmRpdGlvbiB7XG4gIGRldGFpbD86IHtcbiAgICBhZGRyZXNzOiB7XG4gICAgICBob3N0OiBzdHJpbmdbXTtcbiAgICAgIGlwdjQ6IHN0cmluZ1tdO1xuICAgICAgaXB2Njogc3RyaW5nW107XG4gICAgICBtc2c/OiBzdHJpbmc7XG4gICAgICBvaz86IGJvb2xlYW47XG4gICAgfTtcbiAgICBhbGI/OiBTdHJpbmdNYXA7XG4gICAgdmVyc2lvbj86IHtcbiAgICAgIGltYWdlUGF0Y2g6IHN0cmluZztcbiAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFMQjJTcGVjIHtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgY29uZmlnOiB7XG4gICAgZW5hYmxlQWxiPzogYm9vbGVhbjtcbiAgICB2aXA/OiB7XG4gICAgICBlbmFibGVMYlN2YzogYm9vbGVhbjtcbiAgICAgIGxiU3ZjQW5ub3RhdGlvbnM/OiBTdHJpbmdNYXA7XG4gICAgfTtcbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgICBuZXR3b3JrTW9kZTogJ2hvc3QnIHwgJ2NvbnRhaW5lcic7XG4gICAgZW5hYmxlUG9ydFByb2plY3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgIEFycmF5PHtcbiAgICAgIHBvcnQ6IHN0cmluZztcbiAgICAgIHByb2plY3RzOiBzdHJpbmdbXTtcbiAgICB9PlxuICAgICovXG4gICAgcG9ydFByb2plY3RzPzogc3RyaW5nO1xuICAgIG5vZGVTZWxlY3Rvcj86IFN0cmluZ01hcDtcbiAgICBwcm9qZWN0cz86IHN0cmluZ1tdO1xuICAgIHJlcGxpY2FzPzogbnVtYmVyO1xuICAgIHJlc291cmNlcz86IHtcbiAgICAgIGxpbWl0cz86IHtcbiAgICAgICAgY3B1OiBzdHJpbmc7XG4gICAgICAgIG1lbW9yeTogc3RyaW5nO1xuICAgICAgfTtcbiAgICAgIHJlcXVlc3RzPzoge1xuICAgICAgICBjcHU6IHN0cmluZztcbiAgICAgICAgbWVtb3J5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgZ2F0ZXdheT86IHtcbiAgICAgIG1vZGU6ICdzdGFuZGFsb25lJyB8ICdzaGFyZSc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgdHlwZTogJ25naW54Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWbGFuU3BlYyB7XG4gIGlkOiBudW1iZXI7XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmxhbiBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IFZsYW5TcGVjO1xufVxuXG4vLyBodHRwczovL2NvbmZsdWVuY2UuYWxhdWRhLmNuL3BhZ2VzL3ZpZXdwYWdlLmFjdGlvbj9wYWdlSWQ9MTMzMDczNTY2XG5leHBvcnQgaW50ZXJmYWNlIEFMQjIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBraW5kOiAnQUxCMic7XG4gIHNwZWM6IEFMQjJTcGVjO1xuICBzdGF0dXM/OiBBTEIyU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZyb250ZW5kU3BlYyB7XG4gIHBvcnQ/OiBudW1iZXIgfCAnJztcbiAgcHJvdG9jb2w/OiBBbGJQcm90b2NvbDtcbiAgc291cmNlPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gIH07XG4gIGJhY2tlbmRQcm90b2NvbD86ICdIVFRQJyB8ICdIVFRQUycgfCAnZ1JQQyc7XG4gIHNlcnZpY2VHcm91cD86IFNlcnZpY2VHcm91cDtcbiAgY2VydGlmaWNhdGVfbmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9udGVuZFN0YXR1cyB7XG4gIGluc3RhbmNlczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB7XG4gICAgICBjb25mbGljdDogYm9vbGVhbjtcbiAgICAgIHByb2JlX3RpbWU6IHN0cmluZztcbiAgICB9XG4gID47XG59XG5cbi8vIGh0dHA6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTI3MTc3NTY3XG4vLyDlkI7nq6/lr7nkuo4gRnJvbnRlbmQg55qE6LWE5rqQ5a6a5LmJXG5cbmV4cG9ydCBlbnVtIE1hdGNoVHlwZSB7XG4gIEFORCA9ICdBTkQnLFxuICBFWElTVCA9ICdFWElTVCcsXG4gIEVRID0gJ0VRJyxcbiAgSU4gPSAnSU4nLFxuICBPUiA9ICdPUicsXG4gIFJBTkdFID0gJ1JBTkdFJyxcbiAgUkVHRVggPSAnUkVHRVgnLFxuICBTVEFSVFNfV0lUSCA9ICdTVEFSVFNfV0lUSCcsXG4gIEVORFNfV0lUSCA9ICdFTkRTX1dJVEgnLFxufVxuXG5leHBvcnQgZW51bSBSdWxlVHlwZSB7XG4gIEhPU1QgPSAnSE9TVCcsXG4gIFVSTCA9ICdVUkwnLFxuICBTUkNfSVAgPSAnU1JDX0lQJyxcbiAgSEVBREVSID0gJ0hFQURFUicsXG4gIENPT0tJRSA9ICdDT09LSUUnLFxuICBQQVJBTSA9ICdQQVJBTScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogRnJvbnRlbmRTcGVjO1xuICBzdGF0dXM/OiBGcm9udGVuZFN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFJ1bGVTcGVjO1xufVxuXG5leHBvcnQgdHlwZSBSdWxlSW5kaWNhdG9yVmFsdWVzID0gQXJyYXk8W01hdGNoVHlwZSwgLi4uc3RyaW5nW11dPjtcblxuZXhwb3J0IGludGVyZmFjZSBSdWxlSW5kaWNhdG9yIHtcbiAgdHlwZTogUnVsZVR5cGU7XG4gIHZhbHVlczogUnVsZUluZGljYXRvclZhbHVlcztcbiAga2V5OiBzdHJpbmc7XG4gIGNlcnRpZmljYXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVTcGVjIHtcbiAgZG9tYWluPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIGRzbD86IHN0cmluZztcbiAgZHNseD86IFJ1bGVJbmRpY2F0b3JbXTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNlcnRpZmljYXRlX25hbWU/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICB9O1xuICBzZXJ2aWNlR3JvdXA/OiBTZXJ2aWNlR3JvdXA7XG4gIHJld3JpdGVfYmFzZT86IHN0cmluZztcbiAgcmV3cml0ZV90YXJnZXQ/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGJhY2tlbmRQcm90b2NvbD86ICdIVFRQJyB8ICdIVFRQUycgfCAnZ1JQQyc7XG4gIHJlZGlyZWN0Q29kZT86IDMwMSB8IDMwMiB8IDMwNztcbiAgcmVkaXJlY3RVUkw/OiBzdHJpbmc7XG4gIGVuYWJsZUNPUlM/OiBib29sZWFuO1xuICBjb3JzQWxsb3dPcmlnaW4/OiBzdHJpbmc7XG4gIGNvcnNBbGxvd0hlYWRlcnM/OiBzdHJpbmc7XG4gIHByaW9yaXR5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmRBbmRSdWxlcyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGZyb250ZW5kOiBGcm9udGVuZDtcbiAgcnVsZXM6IFJ1bGVbXTtcbiAgZmlsdGVyZWRSdWxlcz86IFJ1bGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUEJsb2NrIHtcbiAgY2lkcjogc3RyaW5nO1xuICBleGNlcHQ6IHN0cmluZ1tdO1xufVxuXG4vLyBOZXR3b3JrUG9saWN5XG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtQb2xpY3lQb3J0IHtcbiAgcG9ydDogbnVtYmVyIHwgc3RyaW5nO1xuICBwcm90b2NvbDogc3RyaW5nO1xuICBlbmRQb3J0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtQb2xpY3lQZWVyIHtcbiAgaXBCbG9jaz86IElQQmxvY2s7XG4gIG5hbWVzcGFjZVNlbGVjdG9yPzogTGFiZWxTZWxlY3RvcjtcbiAgcG9kU2VsZWN0b3I/OiBMYWJlbFNlbGVjdG9yO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtQb2xpY3lFZ3Jlc3NSdWxlIHtcbiAgcG9ydHM/OiBOZXR3b3JrUG9saWN5UG9ydFtdO1xuICB0bz86IE5ldHdvcmtQb2xpY3lQZWVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1BvbGljeUluZ3Jlc3NSdWxlIHtcbiAgZnJvbT86IE5ldHdvcmtQb2xpY3lQZWVyW107XG4gIHBvcnRzPzogTmV0d29ya1BvbGljeVBvcnRbXTtcbn1cblxuZXhwb3J0IHR5cGUgUG9saWN5VHlwZSA9ICdJbmdyZXNzJyB8ICdFZ3Jlc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtQb2xpY3lTcGVjIHtcbiAgZWdyZXNzPzogTmV0d29ya1BvbGljeUVncmVzc1J1bGVbXTtcbiAgaW5ncmVzcz86IE5ldHdvcmtQb2xpY3lJbmdyZXNzUnVsZVtdO1xuICBwb2RTZWxlY3Rvcj86IExhYmVsU2VsZWN0b3I7XG4gIHBvbGljeVR5cGVzPzogUG9saWN5VHlwZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtQb2xpY3kgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogTmV0d29ya1BvbGljeVNwZWM7XG59XG5cbi8vIERvbWFpblxuZXhwb3J0IGludGVyZmFjZSBEb21haW5TcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBraW5kOiAnZnVsbCcgfCAnZXh0ZW5zaXZlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb21haW4gZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogRG9tYWluU3BlYztcbiAgLy8gZm9yIFVJIHVzYWdlXG4gIF9jZXJ0aWZpY2F0ZT86IENlcnRpZmljYXRlO1xufVxuXG4vLyBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbWV0YWxsYi9tZXRhbGxiL21haW4vY29uZmlnL2NyZC9iYXNlcy9tZXRhbGxiLmlvX2JncHBlZXJzLnlhbWxcbmV4cG9ydCBpbnRlcmZhY2UgQkdQUGVlclNwZWMge1xuICBteUFTTjogbnVtYmVyO1xuICBwZWVyQVNOOiBudW1iZXI7XG4gIHBlZXJBZGRyZXNzOiBzdHJpbmc7XG4gIGJmZFByb2ZpbGU/OiBzdHJpbmc7XG4gIGViZ3BNdWx0aUhvcD86IGJvb2xlYW47XG4gIGhvbGRUaW1lPzogc3RyaW5nO1xuICBrZWVwYWxpdmVUaW1lPzogc3RyaW5nO1xuICBub2RlU2VsZWN0b3JzPzogTGFiZWxTZWxlY3RvcltdO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgcGVlclBvcnQ/OiBudW1iZXI7XG4gIHJvdXRlcklEPzogc3RyaW5nO1xuICBzb3VyY2VBZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJHUFBlZXIgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBraW5kOiAnQkdQUGVlcic7XG4gIHNwZWM6IEJHUFBlZXJTcGVjO1xufVxuXG4vLyBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbWV0YWxsYi9tZXRhbGxiL21haW4vY29uZmlnL2NyZC9iYXNlcy9tZXRhbGxiLmlvX2JncGFkdmVydGlzZW1lbnRzLnlhbWxcbmV4cG9ydCBpbnRlcmZhY2UgQkdQQWR2ZXJ0aXNlbWVudCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdCR1BBZHZlcnRpc2VtZW50JztcbiAgc3BlYzoge1xuICAgIGFnZ3JlZ2F0aW9uTGVuZ3RoPzogbnVtYmVyO1xuICAgIGFnZ3JlZ2F0aW9uTGVuZ3RoVjY/OiBudW1iZXI7XG4gICAgY29tbXVuaXRpZXM/OiBzdHJpbmdbXTtcbiAgICBpcEFkZHJlc3NQb29sU2VsZWN0b3JzPzogTGFiZWxTZWxlY3RvcjtcbiAgICBpcEFkZHJlc3NQb29scz86IHN0cmluZ1tdO1xuICAgIGxvY2FsUHJlZj86IG51bWJlcjtcbiAgICBub2RlU2VsZWN0b3JzPzogTGFiZWxTZWxlY3RvcltdO1xuICAgIHBlZXJzOiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUEFkZHJlc3NQb29sIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAga2luZDogJ0lQQWRkcmVzc1Bvb2wnO1xuICBzcGVjOiB7XG4gICAgYWRkcmVzc2VzOiBzdHJpbmdbXTtcbiAgICBhdXRvQXNzaWduPzogYm9vbGVhbjtcbiAgICBhdm9pZEJ1Z2d5SVBzPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMMkFkdmVydGlzZW1lbnQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBraW5kOiAnTDJBZHZlcnRpc2VtZW50JztcbiAgc3BlYzoge1xuICAgIGlwQWRkcmVzc1Bvb2xzOiBbc3RyaW5nXTtcbiAgICBub2RlU2VsZWN0b3JzOiBMYWJlbFNlbGVjdG9yW107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXBQb29sVXNlZElwIHtcbiAgaXA6IHN0cmluZztcbiAgbm9kZUlwOiBzdHJpbmc7XG4gIHNlcnZpY2VzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJcFBvb2xVc2FnZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGFwaVZlcnNpb246ICdtZXRhbGxiLmlvL3YxYmV0YTEnO1xuICBraW5kOiAnSVBBZGRyZXNzUG9vbFVzYWdlJztcbiAgc3RhdHVzOiB7XG4gICAgdXNlZDogbnVtYmVyO1xuICAgIGF2YWlsYWJsZTogbnVtYmVyO1xuICAgIHVzZWRJcHM6IElwUG9vbFVzZWRJcFtdO1xuICAgIC8vIGh0dHBzOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0xNjEzOTQ0MzkjaGVhZGluZy0zMTYxR0VUYWNwdjFtZXRhbGxiY2x1c3Rlcm5hbWVzcGFjZXNtZXRhbGxiLXN5c3RlbWlwYWRkcmVzc3Bvb2x1c2FnZWlwcG9vbG5hbWVcbiAgICBpcHY0YXZhaWxhYmxlOiBudW1iZXI7XG4gICAgaXB2NHVzZWQ6IG51bWJlcjtcbiAgICBpcHY2dXNlZDogbnVtYmVyO1xuICAgIGlwdjZhdmFpbGFibGU6IG51bWJlcjtcbiAgfTtcbn1cbiJdfQ==
36
+ export const NetworkPolicyRuleAction = {
37
+ Allow: 'Allow',
38
+ Deny: 'Deny',
39
+ Pass: 'Pass',
40
+ };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi90eXBlcy9rOHMtZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzdCLG9DQUFhLENBQUE7SUFDYixzQ0FBZSxDQUFBO0lBQ2Ysc0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsb0NBQWlCLENBQUE7SUFDakIsK0NBQTRCLENBQUE7SUFDNUIsa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUEwTEQsb0VBQW9FO0FBQ3BFLHNCQUFzQjtBQUV0QixNQUFNLENBQU4sSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCw0QkFBZSxDQUFBO0lBQ2Ysc0JBQVMsQ0FBQTtJQUNULHNCQUFTLENBQUE7SUFDVCxzQkFBUyxDQUFBO0lBQ1QsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZix3Q0FBMkIsQ0FBQTtJQUMzQixvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBVlcsU0FBUyxLQUFULFNBQVMsUUFVcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2xCLHlCQUFhLENBQUE7SUFDYix1QkFBVyxDQUFBO0lBQ1gsNkJBQWlCLENBQUE7SUFDakIsNkJBQWlCLENBQUE7SUFDakIsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkI7QUF1R0QsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFsYlByb3RvY29sLFxuICBDZXJ0aWZpY2F0ZSxcbiAgQ29uZGl0aW9uLFxuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIExhYmVsU2VsZWN0b3IsXG4gIFNlcnZpY2VHcm91cCxcbiAgU3RyaW5nTWFwLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbmV4cG9ydCBlbnVtIEVuY2Fwc3VsYXRlUHJvdG9jb2wge1xuICBJUElQID0gJ0lQSVAnLFxuICBWWExBTiA9ICdWWExBTicsXG4gIE5FVkVSID0gJ05FVkVSJyxcbn1cblxuZXhwb3J0IGVudW0gRW5jYXBzdWxhdGVNb2RlIHtcbiAgQUxXQVlTID0gJ0Fsd2F5cycsXG4gIENST1NTX1NVQk5FVCA9ICdDcm9zc1N1Ym5ldCcsXG4gIE5FVkVSID0gJ05ldmVyJyxcbn1cblxuLy8gU3VibmV0XG5leHBvcnQgaW50ZXJmYWNlIFN1Ym5ldFN0YXR1cyB7XG4gIHVzaW5nSVBzPzogbnVtYmVyO1xuICBhdmFpbGFibGVJUHM/OiBudW1iZXI7XG4gIHY0dXNpbmdJUHM/OiBudW1iZXI7XG4gIHY0YXZhaWxhYmxlSVBzPzogbnVtYmVyO1xuICB2NnVzaW5nSVBzPzogbnVtYmVyO1xuICB2NmF2YWlsYWJsZUlQcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRTcGVjIHtcbiAgZGVmYXVsdDogYm9vbGVhbjsgLy8gd2hldGhlciBkZWZhdWx0XG4gIHByb3RvY29sOiAnSVB2NCcgfCAnSVB2NicgfCAnRHVhbCc7XG4gIG5hbWVzcGFjZXM/OiBzdHJpbmdbXTtcbiAgY2lkckJsb2NrOiBzdHJpbmc7IC8vIHNlZ21lbnRcbiAgbmF0T3V0Z29pbmc/OiBib29sZWFuO1xuICBlbmFibGVFeHRlcm5hbExCQWRkcmVzcz86IGJvb2xlYW47XG4gIC8vIGZvciBjYWxpY29cbiAgaXBpcE1vZGU/OiBFbmNhcHN1bGF0ZU1vZGU7XG4gIHZ4bGFuTW9kZT86IEVuY2Fwc3VsYXRlTW9kZTtcbiAgYmxvY2tTaXplPzogbnVtYmVyO1xuICB2NGJsb2NrU2l6ZT86IG51bWJlcjtcbiAgdjZibG9ja1NpemU/OiBudW1iZXI7XG5cbiAgLy8gZm9yIGt1Yi1vdm5cbiAgZ2F0ZXdheTogc3RyaW5nOyAvLyBkZWZhdWx0LGNpZHJfYmxvY2sncyBmaXJzdCBhdmFpbGFibGVcbiAgZXhjbHVkZUlwczogc3RyaW5nW107XG4gIGdhdGV3YXlUeXBlOiBzdHJpbmc7XG4gIGdhdGV3YXlOb2RlPzogc3RyaW5nOyAvLyByZXF1aXJlZCB3aGVuIGdhdGV3YXlfdHlwZSBpcyBDZW50cmFsaXplZFxuICBwcml2YXRlPzogYm9vbGVhbjsgLy8gcHJpdmF0ZSBuZXR3b3JrLGRlZmF1bHQgZmFsc2VcbiAgYWxsb3dTdWJuZXRzPzogc3RyaW5nW107IC8vIGVuYWJsZSB3aGVuIHByaXZhdGUgaXMgdHJ1ZVxuICBlbmFibGVFY21wPzogYm9vbGVhbjsgLy8gcmVxdWlyZWQgd2hlbiBnYXRld2F5X3R5cGUgaXMgQ2VudHJhbGl6ZWQuIGh0dHBzOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0xNjMwNzEwNDJcblxuICBuYW1lc3BhY2VTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yW107XG4gIC8vIHVuZGVybGF5XG4gIHZsYW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFN1Ym5ldFNwZWM7XG4gIHN0YXR1cz86IFN1Ym5ldFN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRJcFNwZWMge1xuICBwb2ROYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzdWJuZXQ6IHN0cmluZztcbiAgbm9kZU5hbWU6IHN0cmluZztcbiAgaXBBZGRyZXNzPzogc3RyaW5nO1xuICBtYWNBZGRyZXNzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0SXAgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogU3VibmV0SXBTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyQ29ubmVjdGlvblN1Ym5ldCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IEludGVyQ29ubmVjdGlvblN1Ym5ldFNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJDb25uZWN0aW9uU3VibmV0U3BlYyB7XG4gIHN1Ym5ldHM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY2lkcjogc3RyaW5nO1xuICB9Pjtcbn1cblxuLy8gTG9hZEJhbGFuY2VyXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdBTEIyJztcbiAgc3BlYz86IExvYWRCYWxhbmNlclNwZWM7XG4gIHN0YXR1cz86IExvYWRCYWxhbmNlclN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2FkQmFsYW5jZXJTdGF0dXMge1xuICBwcm9iZVRpbWU6IHN0cmluZztcbiAgcmVhc29uOiBzdHJpbmc7XG4gIHN0YXRlOiAncmVhZHknIHwgJ3dhcm5pbmcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlclNwZWMge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGJpbmRfYWRkcmVzczogc3RyaW5nO1xuICBkb21haW5zOiBzdHJpbmdbXTtcbiAgaWFhc19pZDogc3RyaW5nO1xuICB0eXBlOiAnbmdpbngnO1xufVxuXG4vLyBBTEIyXG5leHBvcnQgaW50ZXJmYWNlIEFMQjJTdGF0dXMgZXh0ZW5kcyBDb25kaXRpb24ge1xuICBkZXRhaWw/OiB7XG4gICAgYWRkcmVzczoge1xuICAgICAgaG9zdDogc3RyaW5nW107XG4gICAgICBpcHY0OiBzdHJpbmdbXTtcbiAgICAgIGlwdjY6IHN0cmluZ1tdO1xuICAgICAgbXNnPzogc3RyaW5nO1xuICAgICAgb2s/OiBib29sZWFuO1xuICAgIH07XG4gICAgYWxiPzogU3RyaW5nTWFwO1xuICAgIHZlcnNpb24/OiB7XG4gICAgICBpbWFnZVBhdGNoOiBzdHJpbmc7XG4gICAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBTEIyU3BlYyB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNvbmZpZzoge1xuICAgIGVuYWJsZUFsYj86IGJvb2xlYW47XG4gICAgdmlwPzoge1xuICAgICAgZW5hYmxlTGJTdmM6IGJvb2xlYW47XG4gICAgICBsYlN2Y0Fubm90YXRpb25zPzogU3RyaW5nTWFwO1xuICAgIH07XG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgbmV0d29ya01vZGU6ICdob3N0JyB8ICdjb250YWluZXInO1xuICAgIGVuYWJsZVBvcnRQcm9qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICBBcnJheTx7XG4gICAgICBwb3J0OiBzdHJpbmc7XG4gICAgICBwcm9qZWN0czogc3RyaW5nW107XG4gICAgfT5cbiAgICAqL1xuICAgIHBvcnRQcm9qZWN0cz86IHN0cmluZztcbiAgICBub2RlU2VsZWN0b3I/OiBTdHJpbmdNYXA7XG4gICAgcHJvamVjdHM/OiBzdHJpbmdbXTtcbiAgICByZXBsaWNhcz86IG51bWJlcjtcbiAgICByZXNvdXJjZXM/OiB7XG4gICAgICBsaW1pdHM/OiB7XG4gICAgICAgIGNwdTogc3RyaW5nO1xuICAgICAgICBtZW1vcnk6IHN0cmluZztcbiAgICAgIH07XG4gICAgICByZXF1ZXN0cz86IHtcbiAgICAgICAgY3B1OiBzdHJpbmc7XG4gICAgICAgIG1lbW9yeTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGdhdGV3YXk/OiB7XG4gICAgICBtb2RlOiAnc3RhbmRhbG9uZScgfCAnc2hhcmUnO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHR5cGU6ICduZ2lueCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmxhblNwZWMge1xuICBpZDogbnVtYmVyO1xuICBwcm92aWRlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZsYW4gZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBWbGFuU3BlYztcbn1cblxuLy8gaHR0cHM6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTEzMzA3MzU2NlxuZXhwb3J0IGludGVyZmFjZSBBTEIyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAga2luZDogJ0FMQjInO1xuICBzcGVjOiBBTEIyU3BlYztcbiAgc3RhdHVzPzogQUxCMlN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9udGVuZFNwZWMge1xuICBwb3J0PzogbnVtYmVyIHwgJyc7XG4gIHByb3RvY29sPzogQWxiUHJvdG9jb2w7XG4gIHNvdXJjZT86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICB9O1xuICBiYWNrZW5kUHJvdG9jb2w/OiAnSFRUUCcgfCAnSFRUUFMnIHwgJ2dSUEMnO1xuICBzZXJ2aWNlR3JvdXA/OiBTZXJ2aWNlR3JvdXA7XG4gIGNlcnRpZmljYXRlX25hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmRTdGF0dXMge1xuICBpbnN0YW5jZXM6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgY29uZmxpY3Q6IGJvb2xlYW47XG4gICAgICBwcm9iZV90aW1lOiBzdHJpbmc7XG4gICAgfVxuICA+O1xufVxuXG4vLyBodHRwOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0yNzE3NzU2N1xuLy8g5ZCO56uv5a+55LqOIEZyb250ZW5kIOeahOi1hOa6kOWumuS5iVxuXG5leHBvcnQgZW51bSBNYXRjaFR5cGUge1xuICBBTkQgPSAnQU5EJyxcbiAgRVhJU1QgPSAnRVhJU1QnLFxuICBFUSA9ICdFUScsXG4gIElOID0gJ0lOJyxcbiAgT1IgPSAnT1InLFxuICBSQU5HRSA9ICdSQU5HRScsXG4gIFJFR0VYID0gJ1JFR0VYJyxcbiAgU1RBUlRTX1dJVEggPSAnU1RBUlRTX1dJVEgnLFxuICBFTkRTX1dJVEggPSAnRU5EU19XSVRIJyxcbn1cblxuZXhwb3J0IGVudW0gUnVsZVR5cGUge1xuICBIT1NUID0gJ0hPU1QnLFxuICBVUkwgPSAnVVJMJyxcbiAgU1JDX0lQID0gJ1NSQ19JUCcsXG4gIEhFQURFUiA9ICdIRUFERVInLFxuICBDT09LSUUgPSAnQ09PS0lFJyxcbiAgUEFSQU0gPSAnUEFSQU0nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZyb250ZW5kIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IEZyb250ZW5kU3BlYztcbiAgc3RhdHVzPzogRnJvbnRlbmRTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZSBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBSdWxlU3BlYztcbn1cblxuZXhwb3J0IHR5cGUgUnVsZUluZGljYXRvclZhbHVlcyA9IEFycmF5PFtNYXRjaFR5cGUsIC4uLnN0cmluZ1tdXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUluZGljYXRvciB7XG4gIHR5cGU6IFJ1bGVUeXBlO1xuICB2YWx1ZXM6IFJ1bGVJbmRpY2F0b3JWYWx1ZXM7XG4gIGtleTogc3RyaW5nO1xuICBjZXJ0aWZpY2F0ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlU3BlYyB7XG4gIGRvbWFpbj86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICBkc2w/OiBzdHJpbmc7XG4gIGRzbHg/OiBSdWxlSW5kaWNhdG9yW107XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjZXJ0aWZpY2F0ZV9uYW1lPzogc3RyaW5nO1xuICBzb3VyY2U/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgfTtcbiAgc2VydmljZUdyb3VwPzogU2VydmljZUdyb3VwO1xuICByZXdyaXRlX2Jhc2U/OiBzdHJpbmc7XG4gIHJld3JpdGVfdGFyZ2V0Pzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBiYWNrZW5kUHJvdG9jb2w/OiAnSFRUUCcgfCAnSFRUUFMnIHwgJ2dSUEMnO1xuICByZWRpcmVjdENvZGU/OiAzMDEgfCAzMDIgfCAzMDc7XG4gIHJlZGlyZWN0VVJMPzogc3RyaW5nO1xuICBlbmFibGVDT1JTPzogYm9vbGVhbjtcbiAgY29yc0FsbG93T3JpZ2luPzogc3RyaW5nO1xuICBjb3JzQWxsb3dIZWFkZXJzPzogc3RyaW5nO1xuICBwcmlvcml0eTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZyb250ZW5kQW5kUnVsZXMgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBmcm9udGVuZDogRnJvbnRlbmQ7XG4gIHJ1bGVzOiBSdWxlW107XG4gIGZpbHRlcmVkUnVsZXM/OiBSdWxlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBCbG9jayB7XG4gIGNpZHI6IHN0cmluZztcbiAgZXhjZXB0OiBzdHJpbmdbXTtcbn1cblxuLy8gTmV0d29ya1BvbGljeVxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5UG9ydCB7XG4gIHBvcnQ6IG51bWJlciB8IHN0cmluZztcbiAgcHJvdG9jb2w6IHN0cmluZztcbiAgZW5kUG9ydD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5UGVlciB7XG4gIGlwQmxvY2s/OiBJUEJsb2NrO1xuICBuYW1lc3BhY2VTZWxlY3Rvcj86IExhYmVsU2VsZWN0b3I7XG4gIHBvZFNlbGVjdG9yPzogTGFiZWxTZWxlY3Rvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5RWdyZXNzUnVsZSB7XG4gIHBvcnRzPzogTmV0d29ya1BvbGljeVBvcnRbXTtcbiAgdG8/OiBOZXR3b3JrUG9saWN5UGVlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtQb2xpY3lJbmdyZXNzUnVsZSB7XG4gIGZyb20/OiBOZXR3b3JrUG9saWN5UGVlcltdO1xuICBwb3J0cz86IE5ldHdvcmtQb2xpY3lQb3J0W107XG59XG5cbmV4cG9ydCB0eXBlIFBvbGljeVR5cGUgPSAnSW5ncmVzcycgfCAnRWdyZXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5U3BlYyB7XG4gIGVncmVzcz86IE5ldHdvcmtQb2xpY3lFZ3Jlc3NSdWxlW107XG4gIGluZ3Jlc3M/OiBOZXR3b3JrUG9saWN5SW5ncmVzc1J1bGVbXTtcbiAgcG9kU2VsZWN0b3I/OiBMYWJlbFNlbGVjdG9yO1xuICBwb2xpY3lUeXBlcz86IFBvbGljeVR5cGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IE5ldHdvcmtQb2xpY3lTcGVjO1xufVxuXG4vLyBBTlAgKEFkbWluTmV0d29ya1BvbGljeSlcbmV4cG9ydCBpbnRlcmZhY2UgTmFtZXNwYWNlZFBvZCB7XG4gIG5hbWVzcGFjZVNlbGVjdG9yOiBMYWJlbFNlbGVjdG9yO1xuICBwb2RTZWxlY3RvcjogTGFiZWxTZWxlY3Rvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbk5ldHdvcmtQb2xpY3lTdWJqZWN0IHtcbiAgbmFtZXNwYWNlcz86IExhYmVsU2VsZWN0b3I7XG4gIHBvZHM/OiBOYW1lc3BhY2VkUG9kO1xufVxuXG5leHBvcnQgY29uc3QgTmV0d29ya1BvbGljeVJ1bGVBY3Rpb24gPSB7XG4gIEFsbG93OiAnQWxsb3cnLFxuICBEZW55OiAnRGVueScsXG4gIFBhc3M6ICdQYXNzJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE5ldHdvcmtQb2xpY3lSdWxlQWN0aW9uID1cbiAgKHR5cGVvZiBOZXR3b3JrUG9saWN5UnVsZUFjdGlvbilba2V5b2YgdHlwZW9mIE5ldHdvcmtQb2xpY3lSdWxlQWN0aW9uXTtcblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbk5ldHdvcmtQb2xpY3lJbmdyZXNzUGVlciB7XG4gIG5hbWVzcGFjZXM/OiBMYWJlbFNlbGVjdG9yO1xuICBwb2RzPzogTmFtZXNwYWNlZFBvZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3J0UmFuZ2Uge1xuICBwcm90b2NvbDogc3RyaW5nOyAvLyBUQ1AsIFVEUCwgU0NUUFxuICBzdGFydDogbnVtYmVyO1xuICBlbmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbk5ldHdvcmtQb2xpY3lQb3J0IHtcbiAgcG9ydE51bWJlcj86IHtcbiAgICBwcm90b2NvbDogc3RyaW5nOyAvLyBUQ1AsIFVEUCwgU0NUUFxuICAgIHBvcnQ6IG51bWJlcjtcbiAgfTtcbiAgbmFtZWRQb3J0Pzogc3RyaW5nOyAvLyBub3Qgc3VwcG9ydGVkIHlldFxuICBwb3J0UmFuZ2U/OiBQb3J0UmFuZ2U7XG59XG5cbmV4cG9ydCB0eXBlIENJRFIgPSBzdHJpbmcgJiB7IHJlYWRvbmx5IF9jaWRyOiB1bmlxdWUgc3ltYm9sIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRtaW5OZXR3b3JrUG9saWN5RWdyZXNzUGVlciB7XG4gIG5hbWVzcGFjZXM/OiBMYWJlbFNlbGVjdG9yO1xuICBwb2RzPzogTmFtZXNwYWNlZFBvZDtcbiAgbm9kZXM/OiBMYWJlbFNlbGVjdG9yO1xuICBuZXR3b3Jrcz86IENJRFJbXTtcbiAgZG9tYWluTmFtZXM/OiBzdHJpbmdbXTsgLy8gbm90IHN1cHBvcnRlZCB5ZXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbk5ldHdvcmtQb2xpY3lJbmdyZXNzUnVsZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGFjdGlvbjogTmV0d29ya1BvbGljeVJ1bGVBY3Rpb247XG4gIGZyb206IEFkbWluTmV0d29ya1BvbGljeUluZ3Jlc3NQZWVyW107XG4gIHBvcnRzPzogQWRtaW5OZXR3b3JrUG9saWN5UG9ydFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkbWluTmV0d29ya1BvbGljeUVncmVzc1J1bGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBhY3Rpb246IE5ldHdvcmtQb2xpY3lSdWxlQWN0aW9uO1xuICB0bzogQWRtaW5OZXR3b3JrUG9saWN5RWdyZXNzUGVlcltdO1xuICBwb3J0cz86IEFkbWluTmV0d29ya1BvbGljeVBvcnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbk5ldHdvcmtQb2xpY3lTcGVjIHtcbiAgcHJpb3JpdHk6IG51bWJlcjtcbiAgc3ViamVjdDogQWRtaW5OZXR3b3JrUG9saWN5U3ViamVjdDtcbiAgaW5ncmVzcz86IEFkbWluTmV0d29ya1BvbGljeUluZ3Jlc3NSdWxlW107XG4gIGVncmVzcz86IEFkbWluTmV0d29ya1BvbGljeUVncmVzc1J1bGVbXTtcbn1cblxuLy8gaHR0cHM6Ly9uZXR3b3JrLXBvbGljeS1hcGkuc2lncy5rOHMuaW8vcmVmZXJlbmNlL3NwZWMvI3BvbGljeS5uZXR3b3JraW5nLms4cy5pby92MWFscGhhMS5BZG1pbk5ldHdvcmtQb2xpY3lcbmV4cG9ydCBpbnRlcmZhY2UgQWRtaW5OZXR3b3JrUG9saWN5IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYzogQWRtaW5OZXR3b3JrUG9saWN5U3BlYztcbiAgc3RhdHVzPzoge1xuICAgIGNvbmRpdGlvbnM6IENvbmRpdGlvbltdO1xuICB9O1xufVxuXG50eXBlIEJhc2VsaW5lQWRtaW5OZXR3b3JrUG9saWN5UnVsZUFjdGlvbiA9IEV4Y2x1ZGU8XG4gIE5ldHdvcmtQb2xpY3lSdWxlQWN0aW9uLFxuICAnUGFzcydcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZWxpbmVBZG1pbk5ldHdvcmtQb2xpY3lJbmdyZXNzUnVsZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGFjdGlvbjogQmFzZWxpbmVBZG1pbk5ldHdvcmtQb2xpY3lSdWxlQWN0aW9uO1xuICBmcm9tOiBBZG1pbk5ldHdvcmtQb2xpY3lJbmdyZXNzUGVlcltdO1xuICBwb3J0cz86IEFkbWluTmV0d29ya1BvbGljeVBvcnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlbGluZUFkbWluTmV0d29ya1BvbGljeUVncmVzc1BlZXIge1xuICBuYW1lc3BhY2VzPzogTGFiZWxTZWxlY3RvcjtcbiAgcG9kcz86IE5hbWVzcGFjZWRQb2Q7XG4gIG5vZGVzPzogTGFiZWxTZWxlY3RvcjtcbiAgbmV0d29ya3M/OiBDSURSW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZWxpbmVBZG1pbk5ldHdvcmtQb2xpY3lFZ3Jlc3NSdWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgYWN0aW9uOiBCYXNlbGluZUFkbWluTmV0d29ya1BvbGljeVJ1bGVBY3Rpb247XG4gIHRvOiBCYXNlbGluZUFkbWluTmV0d29ya1BvbGljeUVncmVzc1BlZXJbXTtcbiAgcG9ydHM/OiBBZG1pbk5ldHdvcmtQb2xpY3lQb3J0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZWxpbmVBZG1pbk5ldHdvcmtQb2xpY3lTcGVjIHtcbiAgc3ViamVjdDogQWRtaW5OZXR3b3JrUG9saWN5U3ViamVjdDtcbiAgaW5ncmVzcz86IEJhc2VsaW5lQWRtaW5OZXR3b3JrUG9saWN5SW5ncmVzc1J1bGVbXTtcbiAgZWdyZXNzPzogQmFzZWxpbmVBZG1pbk5ldHdvcmtQb2xpY3lFZ3Jlc3NSdWxlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZWxpbmVBZG1pbk5ldHdvcmtQb2xpY3kgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjOiBCYXNlbGluZUFkbWluTmV0d29ya1BvbGljeVNwZWM7XG4gIHN0YXR1cz86IHtcbiAgICBjb25kaXRpb25zOiBDb25kaXRpb25bXTtcbiAgfTtcbn1cblxuLy8gRG9tYWluXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpblNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGtpbmQ6ICdmdWxsJyB8ICdleHRlbnNpdmUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbiBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM/OiBEb21haW5TcGVjO1xuICAvLyBmb3IgVUkgdXNhZ2VcbiAgX2NlcnRpZmljYXRlPzogQ2VydGlmaWNhdGU7XG59XG5cbi8vIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tZXRhbGxiL21ldGFsbGIvbWFpbi9jb25maWcvY3JkL2Jhc2VzL21ldGFsbGIuaW9fYmdwcGVlcnMueWFtbFxuZXhwb3J0IGludGVyZmFjZSBCR1BQZWVyU3BlYyB7XG4gIG15QVNOOiBudW1iZXI7XG4gIHBlZXJBU046IG51bWJlcjtcbiAgcGVlckFkZHJlc3M6IHN0cmluZztcbiAgYmZkUHJvZmlsZT86IHN0cmluZztcbiAgZWJncE11bHRpSG9wPzogYm9vbGVhbjtcbiAgaG9sZFRpbWU/OiBzdHJpbmc7XG4gIGtlZXBhbGl2ZVRpbWU/OiBzdHJpbmc7XG4gIG5vZGVTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yW107XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBwZWVyUG9ydD86IG51bWJlcjtcbiAgcm91dGVySUQ/OiBzdHJpbmc7XG4gIHNvdXJjZUFkZHJlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQkdQUGVlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdCR1BQZWVyJztcbiAgc3BlYzogQkdQUGVlclNwZWM7XG59XG5cbi8vIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tZXRhbGxiL21ldGFsbGIvbWFpbi9jb25maWcvY3JkL2Jhc2VzL21ldGFsbGIuaW9fYmdwYWR2ZXJ0aXNlbWVudHMueWFtbFxuZXhwb3J0IGludGVyZmFjZSBCR1BBZHZlcnRpc2VtZW50IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAga2luZDogJ0JHUEFkdmVydGlzZW1lbnQnO1xuICBzcGVjOiB7XG4gICAgYWdncmVnYXRpb25MZW5ndGg/OiBudW1iZXI7XG4gICAgYWdncmVnYXRpb25MZW5ndGhWNj86IG51bWJlcjtcbiAgICBjb21tdW5pdGllcz86IHN0cmluZ1tdO1xuICAgIGlwQWRkcmVzc1Bvb2xTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yO1xuICAgIGlwQWRkcmVzc1Bvb2xzPzogc3RyaW5nW107XG4gICAgbG9jYWxQcmVmPzogbnVtYmVyO1xuICAgIG5vZGVTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yW107XG4gICAgcGVlcnM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQQWRkcmVzc1Bvb2wgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBraW5kOiAnSVBBZGRyZXNzUG9vbCc7XG4gIHNwZWM6IHtcbiAgICBhZGRyZXNzZXM6IHN0cmluZ1tdO1xuICAgIGF1dG9Bc3NpZ24/OiBib29sZWFuO1xuICAgIGF2b2lkQnVnZ3lJUHM/OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEwyQWR2ZXJ0aXNlbWVudCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdMMkFkdmVydGlzZW1lbnQnO1xuICBzcGVjOiB7XG4gICAgaXBBZGRyZXNzUG9vbHM6IFtzdHJpbmddO1xuICAgIG5vZGVTZWxlY3RvcnM6IExhYmVsU2VsZWN0b3JbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJcFBvb2xVc2VkSXAge1xuICBpcDogc3RyaW5nO1xuICBub2RlSXA6IHN0cmluZztcbiAgc2VydmljZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElwUG9vbFVzYWdlIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgYXBpVmVyc2lvbjogJ21ldGFsbGIuaW8vdjFiZXRhMSc7XG4gIGtpbmQ6ICdJUEFkZHJlc3NQb29sVXNhZ2UnO1xuICBzdGF0dXM6IHtcbiAgICB1c2VkOiBudW1iZXI7XG4gICAgYXZhaWxhYmxlOiBudW1iZXI7XG4gICAgdXNlZElwczogSXBQb29sVXNlZElwW107XG4gICAgLy8gaHR0cHM6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTE2MTM5NDQzOSNoZWFkaW5nLTMxNjFHRVRhY3B2MW1ldGFsbGJjbHVzdGVybmFtZXNwYWNlc21ldGFsbGItc3lzdGVtaXBhZGRyZXNzcG9vbHVzYWdlaXBwb29sbmFtZVxuICAgIGlwdjRhdmFpbGFibGU6IG51bWJlcjtcbiAgICBpcHY0dXNlZDogbnVtYmVyO1xuICAgIGlwdjZ1c2VkOiBudW1iZXI7XG4gICAgaXB2NmF2YWlsYWJsZTogbnVtYmVyO1xuICB9O1xufVxuIl19
@@ -34,9 +34,19 @@ export const NetworkResourceDefinitions = {
34
34
  type: 'interconnectionsubnets',
35
35
  apiGroup: KUBE_OVN_GROUP,
36
36
  },
37
+ ADMIN_NETWORK_POLICY: {
38
+ apiGroup: 'policy.networking.k8s.io',
39
+ type: 'adminnetworkpolicies',
40
+ apiVersion: 'v1alpha1',
41
+ },
42
+ BASELINE_ADMIN_NETWORK_POLICY: {
43
+ apiGroup: 'policy.networking.k8s.io',
44
+ type: 'baselineadminnetworkpolicies',
45
+ apiVersion: 'v1alpha1',
46
+ },
37
47
  };
38
48
  const _ = createResourceDefinitions(NetworkResourceDefinitions);
39
49
  export const INNER_NETWORK_RESOURCE_TYPES = createResourceDefinitions(safeAssign([COMMON_RESOURCE_DEFINITIONS, NetworkResourceDefinitions])).RESOURCE_TYPES;
40
50
  export const NETWORK_RESOURCE_DEFINITIONS = _.RESOURCE_DEFINITIONS;
41
51
  export const NETWORK_RESOURCE_TYPES = _.RESOURCE_TYPES;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL3R5cGVzL3Jlc291cmNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIsVUFBVSxHQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsY0FBYztLQUN6QjtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLElBQUksRUFBRSxLQUFLO1FBQ1gsUUFBUSxFQUFFLGNBQWM7S0FDekI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsYUFBYTtRQUN2QixVQUFVLEVBQUUsU0FBUztRQUNyQixJQUFJLEVBQUUsa0JBQWtCO0tBQ3pCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsUUFBUSxFQUFFLGFBQWE7UUFDdkIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLGdCQUFnQjtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsUUFBUSxFQUFFLGFBQWE7UUFDdkIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLG1CQUFtQjtLQUMxQjtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsUUFBUSxFQUFFLGNBQWM7S0FDekI7Q0FDTyxDQUFDO0FBRVgsTUFBTSxDQUFDLEdBQUcseUJBQXlCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyx5QkFBeUIsQ0FDbkUsVUFBVSxDQUFDLENBQUMsMkJBQTJCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUN0RSxDQUFDLGNBQWMsQ0FBQztBQUVqQixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUMsb0JBQW9CLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUyxcbiAgY3JlYXRlUmVzb3VyY2VEZWZpbml0aW9ucyxcbiAgc2FmZUFzc2lnbixcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5jb25zdCBNRVRBTExCX0dST1VQID0gJ21ldGFsbGIuaW8nO1xuZXhwb3J0IGNvbnN0IEtVQkVfT1ZOX0dST1VQID0gJ2t1YmVvdm4uaW8nO1xuXG5leHBvcnQgY29uc3QgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMgPSB7XG4gIFNVQk5FVF9LVUJFX09WTjoge1xuICAgIHR5cGU6ICdzdWJuZXRzJyxcbiAgICBhcGlHcm91cDogS1VCRV9PVk5fR1JPVVAsXG4gIH0sXG4gIFNVQk5FVF9LVUJFX09WTl9JUDoge1xuICAgIHR5cGU6ICdpcHMnLFxuICAgIGFwaUdyb3VwOiBLVUJFX09WTl9HUk9VUCxcbiAgfSxcbiAgTDJfQURWRVJUSVNFTUVOVDoge1xuICAgIGFwaUdyb3VwOiBNRVRBTExCX0dST1VQLFxuICAgIGFwaVZlcnNpb246ICd2MWJldGExJyxcbiAgICB0eXBlOiAnbDJhZHZlcnRpc2VtZW50cycsXG4gIH0sXG4gIElQX1BPT0w6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMScsXG4gICAgdHlwZTogJ2lwYWRkcmVzc3Bvb2xzJyxcbiAgfSxcbiAgQkdQX1BFRVI6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMicsXG4gICAgdHlwZTogJ2JncHBlZXJzJyxcbiAgfSxcbiAgQkdQX0FEVkVSVElTRU1FTlQ6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMScsXG4gICAgdHlwZTogJ2JncGFkdmVydGlzZW1lbnRzJyxcbiAgfSxcbiAgSU5URVJfQ09OTkVDVElPTl9TVUJORVQ6IHtcbiAgICB0eXBlOiAnaW50ZXJjb25uZWN0aW9uc3VibmV0cycsXG4gICAgYXBpR3JvdXA6IEtVQkVfT1ZOX0dST1VQLFxuICB9LFxufSBhcyBjb25zdDtcblxuY29uc3QgXyA9IGNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbnMoTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMpO1xuXG5leHBvcnQgY29uc3QgSU5ORVJfTkVUV09SS19SRVNPVVJDRV9UWVBFUyA9IGNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbnMoXG4gIHNhZmVBc3NpZ24oW0NPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUywgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnNdKSxcbikuUkVTT1VSQ0VfVFlQRVM7XG5cbmV4cG9ydCBjb25zdCBORVRXT1JLX1JFU09VUkNFX0RFRklOSVRJT05TID0gXy5SRVNPVVJDRV9ERUZJTklUSU9OUztcbmV4cG9ydCBjb25zdCBORVRXT1JLX1JFU09VUkNFX1RZUEVTID0gXy5SRVNPVVJDRV9UWVBFUztcbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL3R5cGVzL3Jlc291cmNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIsVUFBVSxHQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsY0FBYztLQUN6QjtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLElBQUksRUFBRSxLQUFLO1FBQ1gsUUFBUSxFQUFFLGNBQWM7S0FDekI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsYUFBYTtRQUN2QixVQUFVLEVBQUUsU0FBUztRQUNyQixJQUFJLEVBQUUsa0JBQWtCO0tBQ3pCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsUUFBUSxFQUFFLGFBQWE7UUFDdkIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLGdCQUFnQjtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsUUFBUSxFQUFFLGFBQWE7UUFDdkIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLG1CQUFtQjtLQUMxQjtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsUUFBUSxFQUFFLGNBQWM7S0FDekI7SUFDRCxvQkFBb0IsRUFBRTtRQUNwQixRQUFRLEVBQUUsMEJBQTBCO1FBQ3BDLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsVUFBVSxFQUFFLFVBQVU7S0FDdkI7SUFDRCw2QkFBNkIsRUFBRTtRQUM3QixRQUFRLEVBQUUsMEJBQTBCO1FBQ3BDLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsVUFBVSxFQUFFLFVBQVU7S0FDdkI7Q0FDTyxDQUFDO0FBRVgsTUFBTSxDQUFDLEdBQUcseUJBQXlCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyx5QkFBeUIsQ0FDbkUsVUFBVSxDQUFDLENBQUMsMkJBQTJCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUN0RSxDQUFDLGNBQWMsQ0FBQztBQUVqQixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUMsb0JBQW9CLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUyxcbiAgY3JlYXRlUmVzb3VyY2VEZWZpbml0aW9ucyxcbiAgc2FmZUFzc2lnbixcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5jb25zdCBNRVRBTExCX0dST1VQID0gJ21ldGFsbGIuaW8nO1xuZXhwb3J0IGNvbnN0IEtVQkVfT1ZOX0dST1VQID0gJ2t1YmVvdm4uaW8nO1xuXG5leHBvcnQgY29uc3QgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMgPSB7XG4gIFNVQk5FVF9LVUJFX09WTjoge1xuICAgIHR5cGU6ICdzdWJuZXRzJyxcbiAgICBhcGlHcm91cDogS1VCRV9PVk5fR1JPVVAsXG4gIH0sXG4gIFNVQk5FVF9LVUJFX09WTl9JUDoge1xuICAgIHR5cGU6ICdpcHMnLFxuICAgIGFwaUdyb3VwOiBLVUJFX09WTl9HUk9VUCxcbiAgfSxcbiAgTDJfQURWRVJUSVNFTUVOVDoge1xuICAgIGFwaUdyb3VwOiBNRVRBTExCX0dST1VQLFxuICAgIGFwaVZlcnNpb246ICd2MWJldGExJyxcbiAgICB0eXBlOiAnbDJhZHZlcnRpc2VtZW50cycsXG4gIH0sXG4gIElQX1BPT0w6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMScsXG4gICAgdHlwZTogJ2lwYWRkcmVzc3Bvb2xzJyxcbiAgfSxcbiAgQkdQX1BFRVI6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMicsXG4gICAgdHlwZTogJ2JncHBlZXJzJyxcbiAgfSxcbiAgQkdQX0FEVkVSVElTRU1FTlQ6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMScsXG4gICAgdHlwZTogJ2JncGFkdmVydGlzZW1lbnRzJyxcbiAgfSxcbiAgSU5URVJfQ09OTkVDVElPTl9TVUJORVQ6IHtcbiAgICB0eXBlOiAnaW50ZXJjb25uZWN0aW9uc3VibmV0cycsXG4gICAgYXBpR3JvdXA6IEtVQkVfT1ZOX0dST1VQLFxuICB9LFxuICBBRE1JTl9ORVRXT1JLX1BPTElDWToge1xuICAgIGFwaUdyb3VwOiAncG9saWN5Lm5ldHdvcmtpbmcuazhzLmlvJyxcbiAgICB0eXBlOiAnYWRtaW5uZXR3b3JrcG9saWNpZXMnLFxuICAgIGFwaVZlcnNpb246ICd2MWFscGhhMScsXG4gIH0sXG4gIEJBU0VMSU5FX0FETUlOX05FVFdPUktfUE9MSUNZOiB7XG4gICAgYXBpR3JvdXA6ICdwb2xpY3kubmV0d29ya2luZy5rOHMuaW8nLFxuICAgIHR5cGU6ICdiYXNlbGluZWFkbWlubmV0d29ya3BvbGljaWVzJyxcbiAgICBhcGlWZXJzaW9uOiAndjFhbHBoYTEnLFxuICB9LFxufSBhcyBjb25zdDtcblxuY29uc3QgXyA9IGNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbnMoTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMpO1xuXG5leHBvcnQgY29uc3QgSU5ORVJfTkVUV09SS19SRVNPVVJDRV9UWVBFUyA9IGNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbnMoXG4gIHNhZmVBc3NpZ24oW0NPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUywgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnNdKSxcbikuUkVTT1VSQ0VfVFlQRVM7XG5cbmV4cG9ydCBjb25zdCBORVRXT1JLX1JFU09VUkNFX0RFRklOSVRJT05TID0gXy5SRVNPVVJDRV9ERUZJTklUSU9OUztcbmV4cG9ydCBjb25zdCBORVRXT1JLX1JFU09VUkNFX1RZUEVTID0gXy5SRVNPVVJDRV9UWVBFUztcbiJdfQ==
@@ -299,7 +299,7 @@ export const getIpAddressSuggestionsByCidrs = (cidrs, networkMode, usedIps, inpu
299
299
  const ipMode = adaptIpMode(cidr, networkMode);
300
300
  const isIpV4 = ipMode === IPMode.IPV4;
301
301
  if (!isIpInputValid(inputValue, isIpV4)) {
302
- break;
302
+ continue; // 避免双栈场景下避免 v6 input address 被 break
303
303
  }
304
304
  const loopStart = performance.now();
305
305
  const Builder = getAddressBuilder(ipMode);
@@ -356,4 +356,4 @@ export function invalidIpOrder(ipBegin, ipEnd) {
356
356
  const ipEndBigInt = ipEnd.bigInteger();
357
357
  return ipBeginBigInt.compareTo(ipEndBigInt) >= 0;
358
358
  }
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lkci1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvY2lkci1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixHQUV0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPbEM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRSxJQUFJO0lBQ1YsSUFBSSxFQUFFLElBQUk7Q0FDRixDQUFDO0FBSVgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0NBQ1IsQ0FBQztBQUlYLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBVSxDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07Q0FDYixDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLEdBQUcsTUFBTTtJQUNULElBQUksRUFBRSxNQUFNO0NBQ0osQ0FBQztBQUlYOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBZSxFQUNmLEtBQWEsRUFDYixTQUFpQixNQUFNLENBQUMsSUFBSTtJQUU1QixJQUNFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FB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QUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSU5UX1pFUk9fUEFUVEVSTixcbiAgSVBfQUREUkVTU19QQVRURVJOLFxuICBJUF9WNl9BRERSRVNTX1BBVFRFUk4sXG4gIFZhbHVlT2YsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEFkZHJlc3M0LCBBZGRyZXNzNiB9IGZyb20gJ2lwLWFkZHJlc3MnO1xuaW1wb3J0IHsgQmlnSW50ZWdlciB9IGZyb20gJ2pzYm4nO1xuXG5pbnRlcmZhY2UgU2VnbWVudE1vZGVsIHtcbiAgaXBWNFNlZ21lbnQ/OiBzdHJpbmc7XG4gIGlwVjZTZWdtZW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIG5vdGU6IHdlIGRvbid0IHVzZSBlbnVtIGhlcmUgYmVjYXVzZSB0cyBkbyBub3Qgc3VwcG9ydCBleHRlbmRzIGVudW0gZm9yIG5vd1xuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8xNzU5MlxuICovXG5leHBvcnQgY29uc3QgSVBNb2RlID0ge1xuICBJUFY0OiAndjQnLFxuICBJUFY2OiAndjYnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSVBNb2RlID0gVmFsdWVPZjx0eXBlb2YgSVBNb2RlPjtcblxuZXhwb3J0IGNvbnN0IEFkZHJlc3NUeXBlcyA9IHtcbiAgQURWRVJUSVNFOiAnQWR2ZXJ0aXNlJyxcbiAgUFVCTElDOiAnUHVibGljJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFkZHJlc3NUeXBlcyA9IFZhbHVlT2Y8dHlwZW9mIEFkZHJlc3NUeXBlcz47XG5cbmV4cG9ydCBjb25zdCBJUF9NT0RFUyA9IFtJUE1vZGUuSVBWNCwgSVBNb2RlLklQVjZdIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgSVBfTU9ERV9URVhUUyA9IHtcbiAgW0lQTW9kZS5JUFY0XTogJ0lQdjQnLFxuICBbSVBNb2RlLklQVjZdOiAnSVB2NicsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgTmV0d29ya01vZGUgPSB7XG4gIC4uLklQTW9kZSxcbiAgRFVBTDogJ2R1YWwnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTmV0d29ya01vZGUgPSBWYWx1ZU9mPHR5cGVvZiBOZXR3b3JrTW9kZT47XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNpZHJTdHIgY2lkckJsb2NrLCBlLmcuIDEwLjE2LjAuMC8yNCBtYXkgc3VwcG9ydCBpcHY2XG4gKiBAcGFyYW0ge3N0cmluZ30gaXBTdHIgc3BlY2lmaWMgaXAsIGUuZy4gMTAuMTYuMS4yIG1heSBzdXBwb3J0IGlwdjZcbiAqIEBwYXJhbSB7SVBNb2RlfSBpcE1vZGUgaXAgbmV0d29yayBtb2RlIGlwdjQvaXB2NlxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciBpcCBiZWxvbmdzIHRvIGNpZHJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmVsb25nQ2lkcihcbiAgY2lkclN0cjogc3RyaW5nLFxuICBpcFN0cjogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICAhaXNDaWRyQWRkcmVzc1ZhbGlkKGNpZHJTdHIsIGlwTW9kZSkgfHxcbiAgICAhaXNJcEFkZHJlc3NWYWxpZChpcFN0ciwgaXBNb2RlKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgY29uc3QgaXAgPSBuZXcgQnVpbGRlcihpcFN0cik7XG4gIGNvbnN0IGNpZHIgPSBuZXcgQnVpbGRlcihjaWRyU3RyKTtcbiAgcmV0dXJuIGlwLmlzSW5TdWJuZXQoY2lkcik7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGlwIHNwZWNpZmljIGlwLCBlLmcuIDEwLjE2LjEuMlxuICogQHBhcmFtIHtzdHJpbmd9IGNpZHIgc3BlY2lmaWMgY2lkciB3aGljaCBpcCBtYXkgYmVsb25ncyB0bywgZS5nLiAxMC4xNi4wLjAvMjRcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHdoZXRoZXIgaXAgaXMgYnJvYWRjYXN0IGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQnJvYWRjYXN0QWRkcihcbiAgaXBTdHI6IHN0cmluZyxcbiAgY2lkclN0cj86IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbik6IGJvb2xlYW4ge1xuICAvLyBJUFY2IOaXoOW5v+aSreWcsOWdgOamguW/tVxuICBpZiAoaXBNb2RlID09PSBJUE1vZGUuSVBWNikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWNpZHJTdHIpIHtcbiAgICByZXR1cm4gaXBTdHIgPT09ICcyNTUuMjU1LjI1NS4yNTUnO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgY2lkciA9IG5ldyBBZGRyZXNzNChjaWRyU3RyKTtcbiAgICAvLyDlrZDnvZHkuK3nmoTmnIDlkI7kuIDkvY1cbiAgICByZXR1cm4gaXBTdHIgPT09IGNpZHIuZW5kQWRkcmVzcygpLmFkZHJlc3M7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMb29wYmFjayhpcFN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSB7XG4gIGNvbnN0IGNpZHIgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0ID8gJzEyNy4wLjAuMC84JyA6ICc6OjEvMTI4JztcbiAgcmV0dXJuIGlzQmVsb25nQ2lkcihjaWRyLCBpcFN0ciwgaXBNb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTXVsdGlCcm9hZGNhc3QoaXBTdHI6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkge1xuICBjb25zdCBjaWRyID0gaXBNb2RlID09PSBJUE1vZGUuSVBWNCA/ICcyMjQuMC4wLjAvNCcgOiAnZmYwMDo6LzgnO1xuICByZXR1cm4gaXNCZWxvbmdDaWRyKGNpZHIsIGlwU3RyLCBpcE1vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaW5rTG9jYWwoaXBTdHI6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkge1xuICBjb25zdCBjaWRyID0gaXBNb2RlID09PSBJUE1vZGUuSVBWNCA/ICcxNjkuMjU0LjAuMC8xNicgOiAnZmU4MDo6LzEwJztcbiAgcmV0dXJuIGlzQmVsb25nQ2lkcihjaWRyLCBpcFN0ciwgaXBNb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWxsWmVybyhpcFN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSB7XG4gIGNvbnN0IGNpZHIgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0ID8gJzAuMC4wLjAvMzInIDogJzo6LzEyOCc7XG4gIHJldHVybiBpc0JlbG9uZ0NpZHIoY2lkciwgaXBTdHIsIGlwTW9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05ldHdvcmtBZGRyKFxuICBpcFN0cjogc3RyaW5nLFxuICBjaWRyU3RyPzogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGlmICghY2lkclN0cikge1xuICAgIHJldHVybiBpcFN0ciA9PT0gJzAuMC4wLjAnO1xuICB9XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGNpZHIgPSBuZXcgQnVpbGRlcihjaWRyU3RyKTtcbiAgICAvLyDlrZDnvZHkuK3nmoTmnIDlkI7kuIDkvY1cbiAgICByZXR1cm4gaXBTdHIgPT09IGNpZHIuc3RhcnRBZGRyZXNzKCkuYWRkcmVzcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNpZHJBU3RyIGNpZHJCbG9jayBBLCBlLmcuIDEwLjE2LjAuMC8yNC4gc3VwcG9ydCBJUHY2XG4gKiBAcGFyYW0ge3N0cmluZ30gY2lkckJTdHIgY2lkckJsb2NrIEIsIGUuZy4gMTAuMTAuMC4wLzE2LiBzdXBwb3J0IElQdjZcbiAqIEBwYXJhbSB7SVBNb2RlfSBpcE1vZGUgaXBNb2RlLCB2NCBvciB2NlxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciAyIGNpZHIgYmxvY2tzIG1heSBjb25mbGljdCwganVkZ2UgYnkgd2hldGhlciBpcCBiZWxvbmdzIHRvIGNpZHJCbG9jayBBIG1heSBhbHNvIGJlbG9uZ3MgdG8gQlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaWRyQ29uZmxpY3QoXG4gIGNpZHJBU3RyOiBzdHJpbmcsXG4gIGNpZHJCU3RyOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY2lkckEgPSBuZXcgQnVpbGRlcihjaWRyQVN0cik7XG4gICAgY29uc3QgY2lkckIgPSBuZXcgQnVpbGRlcihjaWRyQlN0cik7XG4gICAgY29uc3QgY2lkckFGcm9tID0gY2lkckEuc3RhcnRBZGRyZXNzKCk7XG4gICAgY29uc3QgY2lkckFFbmQgPSBjaWRyQS5lbmRBZGRyZXNzKCk7XG4gICAgY29uc3QgY2lkckJGcm9tID0gY2lkckIuc3RhcnRBZGRyZXNzKCk7XG4gICAgY29uc3QgY2lkckJFbmQgPSBjaWRyQi5lbmRBZGRyZXNzKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGNpZHJBRnJvbS5pc0luU3VibmV0KGNpZHJCKSB8fFxuICAgICAgY2lkckFFbmQuaXNJblN1Ym5ldChjaWRyQikgfHxcbiAgICAgIGNpZHJCRnJvbS5pc0luU3VibmV0KGNpZHJBKSB8fFxuICAgICAgY2lkckJFbmQuaXNJblN1Ym5ldChjaWRyQSlcbiAgICApO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gd2hldGhlciBjaWRyQSBjb250YWlucyBjaWRyQiAoY2lkckEgPiBjaWRyQilcbmV4cG9ydCBmdW5jdGlvbiBpc0NpZHJDb250YWluKFxuICBjaWRyQVN0cjogc3RyaW5nLFxuICBjaWRyQlN0cjogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGNpZHJBID0gbmV3IEJ1aWxkZXIoY2lkckFTdHIpO1xuICAgIGNvbnN0IGNpZHJCID0gbmV3IEJ1aWxkZXIoY2lkckJTdHIpO1xuICAgIGNvbnN0IGNpZHJCRnJvbSA9IGNpZHJCLnN0YXJ0QWRkcmVzcygpO1xuICAgIGNvbnN0IGNpZHJCRW5kID0gY2lkckIuZW5kQWRkcmVzcygpO1xuICAgIHJldHVybiBjaWRyQkZyb20uaXNJblN1Ym5ldChjaWRyQSkgJiYgY2lkckJFbmQuaXNJblN1Ym5ldChjaWRyQSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlOiBJUE1vZGUpIHtcbiAgcmV0dXJuIGlwTW9kZSA9PT0gSVBNb2RlLklQVjYgPyBBZGRyZXNzNiA6IEFkZHJlc3M0O1xufVxuXG5leHBvcnQgY29uc3QgcGFyc2VDSURSID0gKGFkZHJlc3M6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkgPT4ge1xuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkZXIoYWRkcmVzcyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXBBZGRyZXNzRXF1YWwoXG4gIGlwQVN0cjogc3RyaW5nLFxuICBpcEJTdHI6IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbikge1xuICBpZiAoaXBBU3RyID09PSBpcEJTdHIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpcE1vZGUgPT09IElQTW9kZS5JUFY0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBpcEEgPSBuZXcgQWRkcmVzczYoaXBBU3RyKTtcbiAgICBjb25zdCBpcEIgPSBuZXcgQWRkcmVzczYoaXBCU3RyKTtcbiAgICByZXR1cm4gaXBBLmJpZ0ludGVnZXIoKS5lcXVhbHMoaXBCLmJpZ0ludGVnZXIoKSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJcEFkZHJlc3NWYWxpZChcbiAgYWRkcmVzczogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGlwID0gbmV3IEJ1aWxkZXIoYWRkcmVzcyk7XG4gICAgcmV0dXJuICFpcC5hZGRyZXNzLmluY2x1ZGVzKCcvJyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDaWRyQWRkcmVzc1ZhbGlkKFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pIHtcbiAgY29uc3QgY2lkciA9IHBhcnNlQ0lEUihhZGRyZXNzLCBpcE1vZGUpO1xuICByZXR1cm4gISFjaWRyPy5hZGRyZXNzLmluY2x1ZGVzKCcvJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyVHlwZShpcDogc3RyaW5nKSB7XG4gIHJldHVybiBpc0lwdjYoaXA/LnNwbGl0KCcvJyk/LlswXSkgPyBJUE1vZGUuSVBWNiA6IElQTW9kZS5JUFY0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJcHY0KHZhbHVlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIElQX0FERFJFU1NfUEFUVEVSTi5wYXR0ZXJuLnRlc3QodmFsdWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSXB2Nih2YWx1ZTogc3RyaW5nKSB7XG4gIHJldHVybiBJUF9WNl9BRERSRVNTX1BBVFRFUk4ucGF0dGVybi50ZXN0KHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlwQWRkcmVzcyh2YWx1ZTogc3RyaW5nKSB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIGlzSXB2NCh2YWx1ZSkgPyB2YWx1ZSA6IGBbJHt2YWx1ZX1dYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0cmljdENpZHIoY2lkclN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSkge1xuICBpZiAoIWNpZHJTdHIpIHtcbiAgICByZXR1cm4gY2lkclN0cjtcbiAgfVxuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBjaWRyID0gbmV3IEJ1aWxkZXIoY2lkclN0cik7XG4gICAgcmV0dXJuIFtjaWRyLnN0YXJ0QWRkcmVzcygpLmFkZHJlc3MsIGNpZHIuc3VibmV0XS5qb2luKCcnKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNlZ21lbnQgPSAoXG4gIHNlZ21lbnQ/OiBzdHJpbmcsXG4gIG5ldHdvcmtNb2RlPzogTmV0d29ya01vZGUsXG4pOiBTZWdtZW50TW9kZWwgPT4ge1xuICBpZiAoIXNlZ21lbnQpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBpZiAobmV0d29ya01vZGUgPT09IE5ldHdvcmtNb2RlLklQVjQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXBWNFNlZ21lbnQ6IHNlZ21lbnQsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChuZXR3b3JrTW9kZSA9PT0gTmV0d29ya01vZGUuSVBWNikge1xuICAgIHJldHVybiB7XG4gICAgICBpcFY2U2VnbWVudDogc2VnbWVudCxcbiAgICB9O1xuICB9XG5cbiAgbGV0IGlwVjRTZWdtZW50OiBzdHJpbmc7XG4gIGxldCBpcFY2U2VnbWVudDogc3RyaW5nO1xuXG4gIGlmIChzZWdtZW50LmluY2x1ZGVzKCcsJykpIHtcbiAgICBbaXBWNFNlZ21lbnQsIGlwVjZTZWdtZW50XSA9IHNlZ21lbnQuc3BsaXQoJywnKTtcbiAgfSBlbHNlIGlmIChzZWdtZW50LmluY2x1ZGVzKCc6JykpIHtcbiAgICBpcFY2U2VnbWVudCA9IHNlZ21lbnQ7XG4gIH0gZWxzZSB7XG4gICAgaXBWNFNlZ21lbnQgPSBzZWdtZW50O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpcFY0U2VnbWVudCxcbiAgICBpcFY2U2VnbWVudCxcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyQmxvY2soXG4gIHNlZ21lbnQ6IHN0cmluZyxcbiAgbmV0d29ya1R5cGU/OiBOZXR3b3JrTW9kZSxcbik6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyQmxvY2soe1xuICBpcFY0U2VnbWVudCxcbiAgaXBWNlNlZ21lbnQsXG59OiBTZWdtZW50TW9kZWwpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2lkckJsb2NrKFxuICBwYXJhbTogU2VnbWVudE1vZGVsIHwgc3RyaW5nLFxuICBuZXR3b3JrTW9kZT86IE5ldHdvcmtNb2RlLFxuKSB7XG4gIGxldCBpcFY0U2VnbWVudDogc3RyaW5nO1xuICBsZXQgaXBWNlNlZ21lbnQ6IHN0cmluZztcblxuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IF8gPSBwYXJzZVNlZ21lbnQocGFyYW0sIG5ldHdvcmtNb2RlKTtcbiAgICBpcFY0U2VnbWVudCA9IF8uaXBWNFNlZ21lbnQ7XG4gICAgaXBWNlNlZ21lbnQgPSBfLmlwVjZTZWdtZW50O1xuICB9IGVsc2Uge1xuICAgIGlwVjRTZWdtZW50ID0gcGFyYW0uaXBWNFNlZ21lbnQ7XG4gICAgaXBWNlNlZ21lbnQgPSBwYXJhbS5pcFY2U2VnbWVudDtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgZ2V0U3RyaWN0Q2lkcihpcFY0U2VnbWVudCwgSVBNb2RlLklQVjQpLFxuICAgIGdldFN0cmljdENpZHIoaXBWNlNlZ21lbnQsIElQTW9kZS5JUFY2KSxcbiAgXVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbignLCcpO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JUFY0X01BWF9DSURSX1BSRUZJWCA9IDMxO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSVBWNl9NQVhfQ0lEUl9QUkVGSVggPSAxMjc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05FVFdPUktfQ0lEUl9QUkVGSVhfTUFQUEVSID0ge1xuICBbSVBNb2RlLklQVjRdOiBERUZBVUxUX0lQVjRfTUFYX0NJRFJfUFJFRklYLFxuICBbSVBNb2RlLklQVjZdOiBERUZBVUxUX0lQVjZfTUFYX0NJRFJfUFJFRklYLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENpZHJNYXhpbXVtUHJlZml4KGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQpIHtcbiAgcmV0dXJuIERFRkFVTFRfTkVUV09SS19DSURSX1BSRUZJWF9NQVBQRVJbaXBNb2RlXTtcbn1cblxuZXhwb3J0IGNvbnN0IGFkYXB0SXBNb2RlID0gKHZhbHVlOiBzdHJpbmcsIG5ldHdvcmtNb2RlOiBOZXR3b3JrTW9kZSkgPT5cbiAgbmV0d29ya01vZGUgPT09IE5ldHdvcmtNb2RlLkRVQUxcbiAgICA/IHZhbHVlPy5pbmNsdWRlcygnOicpXG4gICAgICA/IE5ldHdvcmtNb2RlLklQVjZcbiAgICAgIDogTmV0d29ya01vZGUuSVBWNFxuICAgIDogbmV0d29ya01vZGU7XG5cbmV4cG9ydCBjb25zdCBpc0lwUGFydFZhbGlkID0gKHBhcnQ6IHN0cmluZywgaXNJcFY0OiBib29sZWFuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChwYXJ0ID09PSAnJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc0lwVjQpIHtcbiAgICBpZiAoSU5UX1pFUk9fUEFUVEVSTi5wYXR0ZXJuLnRlc3QocGFydCkpIHtcbiAgICAgIHJldHVybiBOdW1iZXIocGFydCkgPD0gMjU1O1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKC9eW1xcZGEtZl0rJC9pLnRlc3QocGFydCkpIHtcbiAgICByZXR1cm4gTnVtYmVyLnBhcnNlSW50KHBhcnQsIDE2KSA8PSAweGZmX2ZmO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0lwUGFydHNWYWxpZCA9IChwYXJ0czogc3RyaW5nW10sIGlzSXBWNDogYm9vbGVhbik6IGJvb2xlYW4gPT5cbiAgcGFydHMuZXZlcnkocGFydCA9PiBpc0lwUGFydFZhbGlkKHBhcnQsIGlzSXBWNCkpO1xuXG5leHBvcnQgY29uc3QgaXNJcElucHV0VmFsaWQgPSAoaW5wdXQ6IHN0cmluZywgaXNJcFY0OiBib29sZWFuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHBhcnRzID0gaW5wdXQuc3BsaXQoaXNJcFY0ID8gJy4nIDogJzonKTtcbiAgcmV0dXJuIHBhcnRzLmxlbmd0aCA8PSAoaXNJcFY0ID8gNCA6IDgpICYmIGlzSXBQYXJ0c1ZhbGlkKHBhcnRzLCBpc0lwVjQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldElwQWRkcmVzc1N1Z2dlc3Rpb25zQnlDaWRycyA9IChcbiAgY2lkcnM6IHN0cmluZ1tdLFxuICBuZXR3b3JrTW9kZTogTmV0d29ya01vZGUsXG4gIHVzZWRJcHM6IHN0cmluZ1tdLFxuICBpbnB1dFZhbHVlOiBzdHJpbmcsXG4gIGlzQ2FsaWNvOiBib29sZWFuLFxuICBtYXhTaXplID0gMTAsXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlID8/ICcnO1xuXG4gIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHVzZWRJcFZhbHVlcyA9IFtcbiAgICAuLi51c2VkSXBzLnJlZHVjZTxTZXQ8QmlnSW50ZWdlcj4+KChpcFZhbHVlcywgaXApID0+IHtcbiAgICAgIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihhZGFwdElwTW9kZShpcCwgbmV0d29ya01vZGUpKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlwVmFsdWVzLmFkZChuZXcgQnVpbGRlcihpcCkuYmlnSW50ZWdlcigpKTtcbiAgICAgIH0gY2F0Y2gge31cbiAgICAgIHJldHVybiBpcFZhbHVlcztcbiAgICB9LCBuZXcgU2V0PEJpZ0ludGVnZXI+KCkpLFxuICBdO1xuXG4gIGZvciAoY29uc3QgY2lkciBvZiBjaWRycykge1xuICAgIGNvbnN0IGlwTW9kZSA9IGFkYXB0SXBNb2RlKGNpZHIsIG5ldHdvcmtNb2RlKTtcblxuICAgIGNvbnN0IGlzSXBWNCA9IGlwTW9kZSA9PT0gSVBNb2RlLklQVjQ7XG5cbiAgICBpZiAoIWlzSXBJbnB1dFZhbGlkKGlucHV0VmFsdWUsIGlzSXBWNCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGxvb3BTdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG5cbiAgICBsZXQgaXBDaWRyOiBBZGRyZXNzNCB8IEFkZHJlc3M2O1xuXG4gICAgdHJ5IHtcbiAgICAgIGlwQ2lkciA9IG5ldyBCdWlsZGVyKGNpZHIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRBZGRyZXNzID0gaXBDaWRyLl9zdGFydEFkZHJlc3MoKTtcbiAgICBjb25zdCBlbmRBZGRyZXNzID0gaXBDaWRyLl9lbmRBZGRyZXNzKCk7XG5cbiAgICAvLyDpnZ4gY2FsaWNvIOaooeW8j+S4i++8jOS4jeWFgeiuuOS9v+eUqOe9keauteeahOesrOS4gOS4que9kee7nCBJUCDlkozmnIDlkI7kuIDkuKog5bm/5pKtIElQXG4gICAgbGV0IGFkZHJlc3MgPSBzdGFydEFkZHJlc3MuYWRkKGlzQ2FsaWNvID8gQmlnSW50ZWdlci5aRVJPIDogQmlnSW50ZWdlci5PTkUpO1xuXG4gICAgd2hpbGUgKGFkZHJlc3MuY29tcGFyZVRvKGVuZEFkZHJlc3MpIDwgKGlzQ2FsaWNvID8gMSA6IDApKSB7XG4gICAgICBjb25zdCBub3cgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgICAgLy8gQ29uc2lkZXJpbmcgdGhlIHBlcmZvcm1hbmNlLCB3ZSBkb24ndCB3YW50IHRvIGJsb2NrIHRoZSBVSSB0b28gbXVjaFxuICAgICAgaWYgKCFpc0lwVjQpIHtcbiAgICAgICAgaWYgKG5vdyAtIGxvb3BTdGFydCA+IDEwMCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vdyAtIHN0YXJ0ID4gMjUwKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXVzZWRJcFZhbHVlcy5zb21lKGlwID0+ICFpcC5jb21wYXJlVG8oYWRkcmVzcykpKSB7XG4gICAgICAgIGNvbnN0IGlwQWRkciA9IEJ1aWxkZXIuZnJvbUJpZ0ludGVnZXIoYWRkcmVzcykuY29ycmVjdEZvcm0oKTtcbiAgICAgICAgaWYgKGlwQWRkci5pbmNsdWRlcyhpbnB1dFZhbHVlKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGlwQWRkcik7XG4gICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPj0gbWF4U2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWRkcmVzcyA9IGFkZHJlc3MuYWRkKEJpZ0ludGVnZXIuT05FKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0U3VibmV0Q2lkcnMoXG4gIGNpZHJzOiBzdHJpbmcsXG4gIG5ldHdvcmtNb2RlOiBOZXR3b3JrTW9kZSxcbiAgZW5hYmxlRml4SXBWNkZvckR1YWwgPSBmYWxzZSxcbikge1xuICByZXR1cm4gY2lkcnNcbiAgICA/LnNwbGl0KCc7JylcbiAgICAubWFwKGNpZHIgPT4gcGFyc2VTZWdtZW50KGNpZHIpKVxuICAgIC5yZWR1Y2UoKGxpc3QsIGl0ZW0pID0+IHtcbiAgICAgIGxpc3QucHVzaChcbiAgICAgICAgaXRlbS5pcFY0U2VnbWVudCxcbiAgICAgICAgKG5ldHdvcmtNb2RlICE9PSBOZXR3b3JrTW9kZS5EVUFMIHx8IGVuYWJsZUZpeElwVjZGb3JEdWFsKSAmJlxuICAgICAgICAgIGl0ZW0uaXBWNlNlZ21lbnQsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW10gYXMgc3RyaW5nW10pXG4gICAgLmZpbHRlcihCb29sZWFuKTtcbn1cblxuLy8gcmV0dXJuIHRydWUgaWYgaXBCZWdpbiA+IGlwRW5kXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZElwT3JkZXI8VCBleHRlbmRzIEFkZHJlc3M0IHwgQWRkcmVzczY+KFxuICBpcEJlZ2luOiBULFxuICBpcEVuZDogVCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCBpcEJlZ2luQmlnSW50ID0gaXBCZWdpbi5iaWdJbnRlZ2VyKCk7XG4gIGNvbnN0IGlwRW5kQmlnSW50ID0gaXBFbmQuYmlnSW50ZWdlcigpO1xuICByZXR1cm4gaXBCZWdpbkJpZ0ludC5jb21wYXJlVG8oaXBFbmRCaWdJbnQpID49IDA7XG59XG4iXX0=
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lkci1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvY2lkci1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixHQUV0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPbEM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRSxJQUFJO0lBQ1YsSUFBSSxFQUFFLElBQUk7Q0FDRixDQUFDO0FBSVgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0NBQ1IsQ0FBQztBQUlYLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBVSxDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07Q0FDYixDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLEdBQUcsTUFBTTtJQUNULElBQUksRUFBRSxNQUFNO0NBQ0osQ0FBQztBQUlYOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBZSxFQUNmLEtBQWEsRUFDYixTQUFpQixNQUFNLENBQUMsSUFBSTtJQUU1QixJQUNFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FB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LENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElOVF9aRVJPX1BBVFRFUk4sXG4gIElQX0FERFJFU1NfUEFUVEVSTixcbiAgSVBfVjZfQUREUkVTU19QQVRURVJOLFxuICBWYWx1ZU9mLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBBZGRyZXNzNCwgQWRkcmVzczYgfSBmcm9tICdpcC1hZGRyZXNzJztcbmltcG9ydCB7IEJpZ0ludGVnZXIgfSBmcm9tICdqc2JuJztcblxuaW50ZXJmYWNlIFNlZ21lbnRNb2RlbCB7XG4gIGlwVjRTZWdtZW50Pzogc3RyaW5nO1xuICBpcFY2U2VnbWVudD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBub3RlOiB3ZSBkb24ndCB1c2UgZW51bSBoZXJlIGJlY2F1c2UgdHMgZG8gbm90IHN1cHBvcnQgZXh0ZW5kcyBlbnVtIGZvciBub3dcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMTc1OTJcbiAqL1xuZXhwb3J0IGNvbnN0IElQTW9kZSA9IHtcbiAgSVBWNDogJ3Y0JyxcbiAgSVBWNjogJ3Y2Jyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIElQTW9kZSA9IFZhbHVlT2Y8dHlwZW9mIElQTW9kZT47XG5cbmV4cG9ydCBjb25zdCBBZGRyZXNzVHlwZXMgPSB7XG4gIEFEVkVSVElTRTogJ0FkdmVydGlzZScsXG4gIFBVQkxJQzogJ1B1YmxpYycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBBZGRyZXNzVHlwZXMgPSBWYWx1ZU9mPHR5cGVvZiBBZGRyZXNzVHlwZXM+O1xuXG5leHBvcnQgY29uc3QgSVBfTU9ERVMgPSBbSVBNb2RlLklQVjQsIElQTW9kZS5JUFY2XSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IElQX01PREVfVEVYVFMgPSB7XG4gIFtJUE1vZGUuSVBWNF06ICdJUHY0JyxcbiAgW0lQTW9kZS5JUFY2XTogJ0lQdjYnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IE5ldHdvcmtNb2RlID0ge1xuICAuLi5JUE1vZGUsXG4gIERVQUw6ICdkdWFsJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE5ldHdvcmtNb2RlID0gVmFsdWVPZjx0eXBlb2YgTmV0d29ya01vZGU+O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaWRyU3RyIGNpZHJCbG9jaywgZS5nLiAxMC4xNi4wLjAvMjQgbWF5IHN1cHBvcnQgaXB2NlxuICogQHBhcmFtIHtzdHJpbmd9IGlwU3RyIHNwZWNpZmljIGlwLCBlLmcuIDEwLjE2LjEuMiBtYXkgc3VwcG9ydCBpcHY2XG4gKiBAcGFyYW0ge0lQTW9kZX0gaXBNb2RlIGlwIG5ldHdvcmsgbW9kZSBpcHY0L2lwdjZcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHdoZXRoZXIgaXAgYmVsb25ncyB0byBjaWRyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JlbG9uZ0NpZHIoXG4gIGNpZHJTdHI6IHN0cmluZyxcbiAgaXBTdHI6IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbik6IGJvb2xlYW4ge1xuICBpZiAoXG4gICAgIWlzQ2lkckFkZHJlc3NWYWxpZChjaWRyU3RyLCBpcE1vZGUpIHx8XG4gICAgIWlzSXBBZGRyZXNzVmFsaWQoaXBTdHIsIGlwTW9kZSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIGNvbnN0IGlwID0gbmV3IEJ1aWxkZXIoaXBTdHIpO1xuICBjb25zdCBjaWRyID0gbmV3IEJ1aWxkZXIoY2lkclN0cik7XG4gIHJldHVybiBpcC5pc0luU3VibmV0KGNpZHIpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBpcCBzcGVjaWZpYyBpcCwgZS5nLiAxMC4xNi4xLjJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaWRyIHNwZWNpZmljIGNpZHIgd2hpY2ggaXAgbWF5IGJlbG9uZ3MgdG8sIGUuZy4gMTAuMTYuMC4wLzI0XG4gKiBAcmV0dXJuIHtib29sZWFufSB3aGV0aGVyIGlwIGlzIGJyb2FkY2FzdCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Jyb2FkY2FzdEFkZHIoXG4gIGlwU3RyOiBzdHJpbmcsXG4gIGNpZHJTdHI/OiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pOiBib29sZWFuIHtcbiAgLy8gSVBWNiDml6Dlub/mkq3lnLDlnYDmpoLlv7VcbiAgaWYgKGlwTW9kZSA9PT0gSVBNb2RlLklQVjYpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCFjaWRyU3RyKSB7XG4gICAgcmV0dXJuIGlwU3RyID09PSAnMjU1LjI1NS4yNTUuMjU1JztcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGNpZHIgPSBuZXcgQWRkcmVzczQoY2lkclN0cik7XG4gICAgLy8g5a2Q572R5Lit55qE5pyA5ZCO5LiA5L2NXG4gICAgcmV0dXJuIGlwU3RyID09PSBjaWRyLmVuZEFkZHJlc3MoKS5hZGRyZXNzO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9vcGJhY2soaXBTdHI6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkge1xuICBjb25zdCBjaWRyID0gaXBNb2RlID09PSBJUE1vZGUuSVBWNCA/ICcxMjcuMC4wLjAvOCcgOiAnOjoxLzEyOCc7XG4gIHJldHVybiBpc0JlbG9uZ0NpZHIoY2lkciwgaXBTdHIsIGlwTW9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc011bHRpQnJvYWRjYXN0KGlwU3RyOiBzdHJpbmcsIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQpIHtcbiAgY29uc3QgY2lkciA9IGlwTW9kZSA9PT0gSVBNb2RlLklQVjQgPyAnMjI0LjAuMC4wLzQnIDogJ2ZmMDA6Oi84JztcbiAgcmV0dXJuIGlzQmVsb25nQ2lkcihjaWRyLCBpcFN0ciwgaXBNb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGlua0xvY2FsKGlwU3RyOiBzdHJpbmcsIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQpIHtcbiAgY29uc3QgY2lkciA9IGlwTW9kZSA9PT0gSVBNb2RlLklQVjQgPyAnMTY5LjI1NC4wLjAvMTYnIDogJ2ZlODA6Oi8xMCc7XG4gIHJldHVybiBpc0JlbG9uZ0NpZHIoY2lkciwgaXBTdHIsIGlwTW9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FsbFplcm8oaXBTdHI6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkge1xuICBjb25zdCBjaWRyID0gaXBNb2RlID09PSBJUE1vZGUuSVBWNCA/ICcwLjAuMC4wLzMyJyA6ICc6Oi8xMjgnO1xuICByZXR1cm4gaXNCZWxvbmdDaWRyKGNpZHIsIGlwU3RyLCBpcE1vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOZXR3b3JrQWRkcihcbiAgaXBTdHI6IHN0cmluZyxcbiAgY2lkclN0cj86IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbikge1xuICBpZiAoIWNpZHJTdHIpIHtcbiAgICByZXR1cm4gaXBTdHIgPT09ICcwLjAuMC4wJztcbiAgfVxuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBjaWRyID0gbmV3IEJ1aWxkZXIoY2lkclN0cik7XG4gICAgLy8g5a2Q572R5Lit55qE5pyA5ZCO5LiA5L2NXG4gICAgcmV0dXJuIGlwU3RyID09PSBjaWRyLnN0YXJ0QWRkcmVzcygpLmFkZHJlc3M7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaWRyQVN0ciBjaWRyQmxvY2sgQSwgZS5nLiAxMC4xNi4wLjAvMjQuIHN1cHBvcnQgSVB2NlxuICogQHBhcmFtIHtzdHJpbmd9IGNpZHJCU3RyIGNpZHJCbG9jayBCLCBlLmcuIDEwLjEwLjAuMC8xNi4gc3VwcG9ydCBJUHY2XG4gKiBAcGFyYW0ge0lQTW9kZX0gaXBNb2RlIGlwTW9kZSwgdjQgb3IgdjZcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHdoZXRoZXIgMiBjaWRyIGJsb2NrcyBtYXkgY29uZmxpY3QsIGp1ZGdlIGJ5IHdoZXRoZXIgaXAgYmVsb25ncyB0byBjaWRyQmxvY2sgQSBtYXkgYWxzbyBiZWxvbmdzIHRvIEJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2lkckNvbmZsaWN0KFxuICBjaWRyQVN0cjogc3RyaW5nLFxuICBjaWRyQlN0cjogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGNpZHJBID0gbmV3IEJ1aWxkZXIoY2lkckFTdHIpO1xuICAgIGNvbnN0IGNpZHJCID0gbmV3IEJ1aWxkZXIoY2lkckJTdHIpO1xuICAgIGNvbnN0IGNpZHJBRnJvbSA9IGNpZHJBLnN0YXJ0QWRkcmVzcygpO1xuICAgIGNvbnN0IGNpZHJBRW5kID0gY2lkckEuZW5kQWRkcmVzcygpO1xuICAgIGNvbnN0IGNpZHJCRnJvbSA9IGNpZHJCLnN0YXJ0QWRkcmVzcygpO1xuICAgIGNvbnN0IGNpZHJCRW5kID0gY2lkckIuZW5kQWRkcmVzcygpO1xuICAgIHJldHVybiAoXG4gICAgICBjaWRyQUZyb20uaXNJblN1Ym5ldChjaWRyQikgfHxcbiAgICAgIGNpZHJBRW5kLmlzSW5TdWJuZXQoY2lkckIpIHx8XG4gICAgICBjaWRyQkZyb20uaXNJblN1Ym5ldChjaWRyQSkgfHxcbiAgICAgIGNpZHJCRW5kLmlzSW5TdWJuZXQoY2lkckEpXG4gICAgKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIHdoZXRoZXIgY2lkckEgY29udGFpbnMgY2lkckIgKGNpZHJBID4gY2lkckIpXG5leHBvcnQgZnVuY3Rpb24gaXNDaWRyQ29udGFpbihcbiAgY2lkckFTdHI6IHN0cmluZyxcbiAgY2lkckJTdHI6IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbikge1xuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBjaWRyQSA9IG5ldyBCdWlsZGVyKGNpZHJBU3RyKTtcbiAgICBjb25zdCBjaWRyQiA9IG5ldyBCdWlsZGVyKGNpZHJCU3RyKTtcbiAgICBjb25zdCBjaWRyQkZyb20gPSBjaWRyQi5zdGFydEFkZHJlc3MoKTtcbiAgICBjb25zdCBjaWRyQkVuZCA9IGNpZHJCLmVuZEFkZHJlc3MoKTtcbiAgICByZXR1cm4gY2lkckJGcm9tLmlzSW5TdWJuZXQoY2lkckEpICYmIGNpZHJCRW5kLmlzSW5TdWJuZXQoY2lkckEpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZTogSVBNb2RlKSB7XG4gIHJldHVybiBpcE1vZGUgPT09IElQTW9kZS5JUFY2ID8gQWRkcmVzczYgOiBBZGRyZXNzNDtcbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlQ0lEUiA9IChhZGRyZXNzOiBzdHJpbmcsIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQpID0+IHtcbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZGVyKGFkZHJlc3MpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlwQWRkcmVzc0VxdWFsKFxuICBpcEFTdHI6IHN0cmluZyxcbiAgaXBCU3RyOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pIHtcbiAgaWYgKGlwQVN0ciA9PT0gaXBCU3RyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXBNb2RlID09PSBJUE1vZGUuSVBWNCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgaXBBID0gbmV3IEFkZHJlc3M2KGlwQVN0cik7XG4gICAgY29uc3QgaXBCID0gbmV3IEFkZHJlc3M2KGlwQlN0cik7XG4gICAgcmV0dXJuIGlwQS5iaWdJbnRlZ2VyKCkuZXF1YWxzKGlwQi5iaWdJbnRlZ2VyKCkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSXBBZGRyZXNzVmFsaWQoXG4gIGFkZHJlc3M6IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbikge1xuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBpcCA9IG5ldyBCdWlsZGVyKGFkZHJlc3MpO1xuICAgIHJldHVybiAhaXAuYWRkcmVzcy5pbmNsdWRlcygnLycpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2lkckFkZHJlc3NWYWxpZChcbiAgYWRkcmVzczogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGNvbnN0IGNpZHIgPSBwYXJzZUNJRFIoYWRkcmVzcywgaXBNb2RlKTtcbiAgcmV0dXJuICEhY2lkcj8uYWRkcmVzcy5pbmNsdWRlcygnLycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2lkclR5cGUoaXA6IHN0cmluZykge1xuICByZXR1cm4gaXNJcHY2KGlwPy5zcGxpdCgnLycpPy5bMF0pID8gSVBNb2RlLklQVjYgOiBJUE1vZGUuSVBWNDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSXB2NCh2YWx1ZTogc3RyaW5nKSB7XG4gIHJldHVybiBJUF9BRERSRVNTX1BBVFRFUk4ucGF0dGVybi50ZXN0KHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0lwdjYodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gSVBfVjZfQUREUkVTU19QQVRURVJOLnBhdHRlcm4udGVzdCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpcEFkZHJlc3ModmFsdWU6IHN0cmluZykge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBpc0lwdjQodmFsdWUpID8gdmFsdWUgOiBgWyR7dmFsdWV9XWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdHJpY3RDaWRyKGNpZHJTdHI6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUpIHtcbiAgaWYgKCFjaWRyU3RyKSB7XG4gICAgcmV0dXJuIGNpZHJTdHI7XG4gIH1cbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY2lkciA9IG5ldyBCdWlsZGVyKGNpZHJTdHIpO1xuICAgIHJldHVybiBbY2lkci5zdGFydEFkZHJlc3MoKS5hZGRyZXNzLCBjaWRyLnN1Ym5ldF0uam9pbignJyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcGFyc2VTZWdtZW50ID0gKFxuICBzZWdtZW50Pzogc3RyaW5nLFxuICBuZXR3b3JrTW9kZT86IE5ldHdvcmtNb2RlLFxuKTogU2VnbWVudE1vZGVsID0+IHtcbiAgaWYgKCFzZWdtZW50KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgaWYgKG5ldHdvcmtNb2RlID09PSBOZXR3b3JrTW9kZS5JUFY0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwVjRTZWdtZW50OiBzZWdtZW50LFxuICAgIH07XG4gIH1cblxuICBpZiAobmV0d29ya01vZGUgPT09IE5ldHdvcmtNb2RlLklQVjYpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXBWNlNlZ21lbnQ6IHNlZ21lbnQsXG4gICAgfTtcbiAgfVxuXG4gIGxldCBpcFY0U2VnbWVudDogc3RyaW5nO1xuICBsZXQgaXBWNlNlZ21lbnQ6IHN0cmluZztcblxuICBpZiAoc2VnbWVudC5pbmNsdWRlcygnLCcpKSB7XG4gICAgW2lwVjRTZWdtZW50LCBpcFY2U2VnbWVudF0gPSBzZWdtZW50LnNwbGl0KCcsJyk7XG4gIH0gZWxzZSBpZiAoc2VnbWVudC5pbmNsdWRlcygnOicpKSB7XG4gICAgaXBWNlNlZ21lbnQgPSBzZWdtZW50O1xuICB9IGVsc2Uge1xuICAgIGlwVjRTZWdtZW50ID0gc2VnbWVudDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaXBWNFNlZ21lbnQsXG4gICAgaXBWNlNlZ21lbnQsXG4gIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2lkckJsb2NrKFxuICBzZWdtZW50OiBzdHJpbmcsXG4gIG5ldHdvcmtUeXBlPzogTmV0d29ya01vZGUsXG4pOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2lkckJsb2NrKHtcbiAgaXBWNFNlZ21lbnQsXG4gIGlwVjZTZWdtZW50LFxufTogU2VnbWVudE1vZGVsKTogc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIGdldENpZHJCbG9jayhcbiAgcGFyYW06IFNlZ21lbnRNb2RlbCB8IHN0cmluZyxcbiAgbmV0d29ya01vZGU/OiBOZXR3b3JrTW9kZSxcbikge1xuICBsZXQgaXBWNFNlZ21lbnQ6IHN0cmluZztcbiAgbGV0IGlwVjZTZWdtZW50OiBzdHJpbmc7XG5cbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBfID0gcGFyc2VTZWdtZW50KHBhcmFtLCBuZXR3b3JrTW9kZSk7XG4gICAgaXBWNFNlZ21lbnQgPSBfLmlwVjRTZWdtZW50O1xuICAgIGlwVjZTZWdtZW50ID0gXy5pcFY2U2VnbWVudDtcbiAgfSBlbHNlIHtcbiAgICBpcFY0U2VnbWVudCA9IHBhcmFtLmlwVjRTZWdtZW50O1xuICAgIGlwVjZTZWdtZW50ID0gcGFyYW0uaXBWNlNlZ21lbnQ7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGdldFN0cmljdENpZHIoaXBWNFNlZ21lbnQsIElQTW9kZS5JUFY0KSxcbiAgICBnZXRTdHJpY3RDaWRyKGlwVjZTZWdtZW50LCBJUE1vZGUuSVBWNiksXG4gIF1cbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oJywnKTtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSVBWNF9NQVhfQ0lEUl9QUkVGSVggPSAzMTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0lQVjZfTUFYX0NJRFJfUFJFRklYID0gMTI3O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9ORVRXT1JLX0NJRFJfUFJFRklYX01BUFBFUiA9IHtcbiAgW0lQTW9kZS5JUFY0XTogREVGQVVMVF9JUFY0X01BWF9DSURSX1BSRUZJWCxcbiAgW0lQTW9kZS5JUFY2XTogREVGQVVMVF9JUFY2X01BWF9DSURSX1BSRUZJWCxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyTWF4aW11bVByZWZpeChpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSB7XG4gIHJldHVybiBERUZBVUxUX05FVFdPUktfQ0lEUl9QUkVGSVhfTUFQUEVSW2lwTW9kZV07XG59XG5cbmV4cG9ydCBjb25zdCBhZGFwdElwTW9kZSA9ICh2YWx1ZTogc3RyaW5nLCBuZXR3b3JrTW9kZTogTmV0d29ya01vZGUpID0+XG4gIG5ldHdvcmtNb2RlID09PSBOZXR3b3JrTW9kZS5EVUFMXG4gICAgPyB2YWx1ZT8uaW5jbHVkZXMoJzonKVxuICAgICAgPyBOZXR3b3JrTW9kZS5JUFY2XG4gICAgICA6IE5ldHdvcmtNb2RlLklQVjRcbiAgICA6IG5ldHdvcmtNb2RlO1xuXG5leHBvcnQgY29uc3QgaXNJcFBhcnRWYWxpZCA9IChwYXJ0OiBzdHJpbmcsIGlzSXBWNDogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICBpZiAocGFydCA9PT0gJycpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNJcFY0KSB7XG4gICAgaWYgKElOVF9aRVJPX1BBVFRFUk4ucGF0dGVybi50ZXN0KHBhcnQpKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHBhcnQpIDw9IDI1NTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICgvXltcXGRhLWZdKyQvaS50ZXN0KHBhcnQpKSB7XG4gICAgcmV0dXJuIE51bWJlci5wYXJzZUludChwYXJ0LCAxNikgPD0gMHhmZl9mZjtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgaXNJcFBhcnRzVmFsaWQgPSAocGFydHM6IHN0cmluZ1tdLCBpc0lwVjQ6IGJvb2xlYW4pOiBib29sZWFuID0+XG4gIHBhcnRzLmV2ZXJ5KHBhcnQgPT4gaXNJcFBhcnRWYWxpZChwYXJ0LCBpc0lwVjQpKTtcblxuZXhwb3J0IGNvbnN0IGlzSXBJbnB1dFZhbGlkID0gKGlucHV0OiBzdHJpbmcsIGlzSXBWNDogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBwYXJ0cyA9IGlucHV0LnNwbGl0KGlzSXBWNCA/ICcuJyA6ICc6Jyk7XG4gIHJldHVybiBwYXJ0cy5sZW5ndGggPD0gKGlzSXBWNCA/IDQgOiA4KSAmJiBpc0lwUGFydHNWYWxpZChwYXJ0cywgaXNJcFY0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMgPSAoXG4gIGNpZHJzOiBzdHJpbmdbXSxcbiAgbmV0d29ya01vZGU6IE5ldHdvcmtNb2RlLFxuICB1c2VkSXBzOiBzdHJpbmdbXSxcbiAgaW5wdXRWYWx1ZTogc3RyaW5nLFxuICBpc0NhbGljbzogYm9vbGVhbixcbiAgbWF4U2l6ZSA9IDEwLFxuKTogc3RyaW5nW10gPT4ge1xuICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSA/PyAnJztcblxuICBjb25zdCBzdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCB1c2VkSXBWYWx1ZXMgPSBbXG4gICAgLi4udXNlZElwcy5yZWR1Y2U8U2V0PEJpZ0ludGVnZXI+PigoaXBWYWx1ZXMsIGlwKSA9PiB7XG4gICAgICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoYWRhcHRJcE1vZGUoaXAsIG5ldHdvcmtNb2RlKSk7XG4gICAgICB0cnkge1xuICAgICAgICBpcFZhbHVlcy5hZGQobmV3IEJ1aWxkZXIoaXApLmJpZ0ludGVnZXIoKSk7XG4gICAgICB9IGNhdGNoIHt9XG4gICAgICByZXR1cm4gaXBWYWx1ZXM7XG4gICAgfSwgbmV3IFNldDxCaWdJbnRlZ2VyPigpKSxcbiAgXTtcblxuICBmb3IgKGNvbnN0IGNpZHIgb2YgY2lkcnMpIHtcbiAgICBjb25zdCBpcE1vZGUgPSBhZGFwdElwTW9kZShjaWRyLCBuZXR3b3JrTW9kZSk7XG5cbiAgICBjb25zdCBpc0lwVjQgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0O1xuXG4gICAgaWYgKCFpc0lwSW5wdXRWYWxpZChpbnB1dFZhbHVlLCBpc0lwVjQpKSB7XG4gICAgICBjb250aW51ZTsgLy8g6YG/5YWN5Y+M5qCI5Zy65pmv5LiL6YG/5YWNIHY2IGlucHV0IGFkZHJlc3Mg6KKrIGJyZWFrXG4gICAgfVxuXG4gICAgY29uc3QgbG9vcFN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcblxuICAgIGxldCBpcENpZHI6IEFkZHJlc3M0IHwgQWRkcmVzczY7XG5cbiAgICB0cnkge1xuICAgICAgaXBDaWRyID0gbmV3IEJ1aWxkZXIoY2lkcik7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydEFkZHJlc3MgPSBpcENpZHIuX3N0YXJ0QWRkcmVzcygpO1xuICAgIGNvbnN0IGVuZEFkZHJlc3MgPSBpcENpZHIuX2VuZEFkZHJlc3MoKTtcblxuICAgIC8vIOmdniBjYWxpY28g5qih5byP5LiL77yM5LiN5YWB6K645L2/55So572R5q6155qE56ys5LiA5Liq572R57ucIElQIOWSjOacgOWQjuS4gOS4qiDlub/mkq0gSVBcbiAgICBsZXQgYWRkcmVzcyA9IHN0YXJ0QWRkcmVzcy5hZGQoaXNDYWxpY28gPyBCaWdJbnRlZ2VyLlpFUk8gOiBCaWdJbnRlZ2VyLk9ORSk7XG5cbiAgICB3aGlsZSAoYWRkcmVzcy5jb21wYXJlVG8oZW5kQWRkcmVzcykgPCAoaXNDYWxpY28gPyAxIDogMCkpIHtcbiAgICAgIGNvbnN0IG5vdyA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgICAvLyBDb25zaWRlcmluZyB0aGUgcGVyZm9ybWFuY2UsIHdlIGRvbid0IHdhbnQgdG8gYmxvY2sgdGhlIFVJIHRvbyBtdWNoXG4gICAgICBpZiAoIWlzSXBWNCkge1xuICAgICAgICBpZiAobm93IC0gbG9vcFN0YXJ0ID4gMTAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm93IC0gc3RhcnQgPiAyNTApIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdXNlZElwVmFsdWVzLnNvbWUoaXAgPT4gIWlwLmNvbXBhcmVUbyhhZGRyZXNzKSkpIHtcbiAgICAgICAgY29uc3QgaXBBZGRyID0gQnVpbGRlci5mcm9tQmlnSW50ZWdlcihhZGRyZXNzKS5jb3JyZWN0Rm9ybSgpO1xuICAgICAgICBpZiAoaXBBZGRyLmluY2x1ZGVzKGlucHV0VmFsdWUpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goaXBBZGRyKTtcbiAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+PSBtYXhTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhZGRyZXNzID0gYWRkcmVzcy5hZGQoQmlnSW50ZWdlci5PTkUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRTdWJuZXRDaWRycyhcbiAgY2lkcnM6IHN0cmluZyxcbiAgbmV0d29ya01vZGU6IE5ldHdvcmtNb2RlLFxuICBlbmFibGVGaXhJcFY2Rm9yRHVhbCA9IGZhbHNlLFxuKSB7XG4gIHJldHVybiBjaWRyc1xuICAgID8uc3BsaXQoJzsnKVxuICAgIC5tYXAoY2lkciA9PiBwYXJzZVNlZ21lbnQoY2lkcikpXG4gICAgLnJlZHVjZSgobGlzdCwgaXRlbSkgPT4ge1xuICAgICAgbGlzdC5wdXNoKFxuICAgICAgICBpdGVtLmlwVjRTZWdtZW50LFxuICAgICAgICAobmV0d29ya01vZGUgIT09IE5ldHdvcmtNb2RlLkRVQUwgfHwgZW5hYmxlRml4SXBWNkZvckR1YWwpICYmXG4gICAgICAgICAgaXRlbS5pcFY2U2VnbWVudCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbXSBhcyBzdHJpbmdbXSlcbiAgICAuZmlsdGVyKEJvb2xlYW4pO1xufVxuXG4vLyByZXR1cm4gdHJ1ZSBpZiBpcEJlZ2luID4gaXBFbmRcbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkSXBPcmRlcjxUIGV4dGVuZHMgQWRkcmVzczQgfCBBZGRyZXNzNj4oXG4gIGlwQmVnaW46IFQsXG4gIGlwRW5kOiBULFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGlwQmVnaW5CaWdJbnQgPSBpcEJlZ2luLmJpZ0ludGVnZXIoKTtcbiAgY29uc3QgaXBFbmRCaWdJbnQgPSBpcEVuZC5iaWdJbnRlZ2VyKCk7XG4gIHJldHVybiBpcEJlZ2luQmlnSW50LmNvbXBhcmVUbyhpcEVuZEJpZ0ludCkgPj0gMDtcbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ function _getMatchedDomain(domains, domain) {
2
+ return domains.find(d => (d.spec.kind === 'full' && d.spec.name === domain) ||
3
+ (d.spec.kind === 'extensive' && domain.endsWith(d.spec.name.slice(1))));
4
+ }
5
+ export function getMatchedDomain(domains, domain) {
6
+ const matched = _getMatchedDomain(domains, domain);
7
+ if (matched?.spec.kind === 'extensive') {
8
+ const d = matched.spec.name;
9
+ return {
10
+ // `test.alauda.io` + `*.alauda.io` -> test
11
+ subDomain: domain.slice(0, domain.length - d.length + 1),
12
+ domain: d,
13
+ };
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi91dGlscy9kb21haW4tZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUFTLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsTUFBYztJQUMxRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDdEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBaUIsRUFBRSxNQUFjO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxJQUFJLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLE9BQU87WUFDTCwyQ0FBMkM7WUFDM0MsU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDeEQsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb21haW4gfSBmcm9tICcuLi90eXBlcy9rOHMtZXhwb3J0cyc7XG5cbmZ1bmN0aW9uIF9nZXRNYXRjaGVkRG9tYWluKGRvbWFpbnM6IERvbWFpbltdLCBkb21haW46IHN0cmluZykge1xuICByZXR1cm4gZG9tYWlucy5maW5kKGQgPT4gXG4gICAgKGQuc3BlYy5raW5kID09PSAnZnVsbCcgJiYgZC5zcGVjLm5hbWUgPT09IGRvbWFpbikgfHwgXG4gICAgKGQuc3BlYy5raW5kID09PSAnZXh0ZW5zaXZlJyAmJiBkb21haW4uZW5kc1dpdGgoZC5zcGVjLm5hbWUuc2xpY2UoMSkpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0Y2hlZERvbWFpbihkb21haW5zOiBEb21haW5bXSwgZG9tYWluOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2hlZCA9IF9nZXRNYXRjaGVkRG9tYWluKGRvbWFpbnMsIGRvbWFpbik7XG4gIGlmIChtYXRjaGVkPy5zcGVjLmtpbmQgPT09ICdleHRlbnNpdmUnKSB7XG4gICAgY29uc3QgZCA9IG1hdGNoZWQuc3BlYy5uYW1lO1xuICAgIHJldHVybiB7XG4gICAgICAvLyBgdGVzdC5hbGF1ZGEuaW9gICsgYCouYWxhdWRhLmlvYCAtPiB0ZXN0XG4gICAgICBzdWJEb21haW46IGRvbWFpbi5zbGljZSgwLCBkb21haW4ubGVuZ3RoIC0gZC5sZW5ndGggKyAxKSxcbiAgICAgIGRvbWFpbjogZCxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { DOMAIN_PATTERN, publishRef, } from '@alauda-fe/common';
2
+ import { Validators } from '@angular/forms';
3
+ import { map } from 'rxjs';
4
+ export const getHostPrefixErrorMapper = (translate) => ({
5
+ hostPrefixExtensivePosition: translate.get('network.domain_extensive_starts_tip'),
6
+ hostPrefixPattern: translate.get('network.host_prefix_pattern_error'),
7
+ maxlength: translate.get('network.extra_long_domain_name'),
8
+ hostPrefixIncludeDotError: translate.get('network.host_prefix_input_dot_error'),
9
+ });
10
+ export const getHostPrefixErrorMapper$ = (translate) => translate.locale$.pipe(map(() => getHostPrefixErrorMapper(translate)), publishRef());
11
+ export const hostPrefixValidator = (hostPrefixCtrl) => {
12
+ let hostPrefix = hostPrefixCtrl.value;
13
+ if (!hostPrefix) {
14
+ return;
15
+ }
16
+ if (hostPrefix.includes('.')) {
17
+ return {
18
+ hostPrefixIncludeDotError: true,
19
+ };
20
+ }
21
+ if (hostPrefix.includes('*')) {
22
+ if (hostPrefix === '*') {
23
+ return;
24
+ }
25
+ const startExtensive = hostPrefix.startsWith('*.');
26
+ if (hostPrefix.lastIndexOf('*') !== 0 ||
27
+ (hostPrefix.length > 1 && !startExtensive)) {
28
+ return {
29
+ hostPrefixExtensivePosition: true,
30
+ };
31
+ }
32
+ if (startExtensive) {
33
+ hostPrefix = hostPrefix.slice(2);
34
+ }
35
+ }
36
+ if (!DOMAIN_PATTERN.pattern.test(hostPrefix + '.example.org')) {
37
+ return { hostPrefixPattern: true };
38
+ }
39
+ };
40
+ export const getHostPrefixCompleteValidators = (domainLength) => [
41
+ hostPrefixValidator,
42
+ Validators.maxLength(domainLength),
43
+ ];
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvdmFsaWRhdG9ycy1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2QsVUFBVSxHQUVYLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNCLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBMkIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RSwyQkFBMkIsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUN4QyxxQ0FBcUMsQ0FDdEM7SUFDRCxpQkFBaUIsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDO0lBQ3JFLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDO0lBQzFELHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQ3RDLHFDQUFxQyxDQUN0QztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsU0FBMkIsRUFBRSxFQUFFLENBQ3ZFLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNwQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDOUMsVUFBVSxFQUFFLENBQ2IsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQ2pDLGNBQStCLEVBQ2IsRUFBRTtJQUNwQixJQUFJLFVBQVUsR0FBVyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBRTlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU87WUFDTCx5QkFBeUIsRUFBRSxJQUFJO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsSUFBSSxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELElBQ0UsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2pDLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDMUMsQ0FBQztZQUNELE9BQU87Z0JBQ0wsMkJBQTJCLEVBQUUsSUFBSTthQUNsQyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFlBQW9CLEVBQUUsRUFBRSxDQUFDO0lBQ3ZFLG1CQUFtQjtJQUNuQixVQUFVLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztDQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRE9NQUlOX1BBVFRFUk4sXG4gIHB1Ymxpc2hSZWYsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgZ2V0SG9zdFByZWZpeEVycm9yTWFwcGVyID0gKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgPT4gKHtcbiAgaG9zdFByZWZpeEV4dGVuc2l2ZVBvc2l0aW9uOiB0cmFuc2xhdGUuZ2V0KFxuICAgICduZXR3b3JrLmRvbWFpbl9leHRlbnNpdmVfc3RhcnRzX3RpcCcsXG4gICksXG4gIGhvc3RQcmVmaXhQYXR0ZXJuOiB0cmFuc2xhdGUuZ2V0KCduZXR3b3JrLmhvc3RfcHJlZml4X3BhdHRlcm5fZXJyb3InKSxcbiAgbWF4bGVuZ3RoOiB0cmFuc2xhdGUuZ2V0KCduZXR3b3JrLmV4dHJhX2xvbmdfZG9tYWluX25hbWUnKSxcbiAgaG9zdFByZWZpeEluY2x1ZGVEb3RFcnJvcjogdHJhbnNsYXRlLmdldChcbiAgICAnbmV0d29yay5ob3N0X3ByZWZpeF9pbnB1dF9kb3RfZXJyb3InLFxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0UHJlZml4RXJyb3JNYXBwZXIkID0gKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgPT5cbiAgdHJhbnNsYXRlLmxvY2FsZSQucGlwZShcbiAgICBtYXAoKCkgPT4gZ2V0SG9zdFByZWZpeEVycm9yTWFwcGVyKHRyYW5zbGF0ZSkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuZXhwb3J0IGNvbnN0IGhvc3RQcmVmaXhWYWxpZGF0b3IgPSAoXG4gIGhvc3RQcmVmaXhDdHJsOiBBYnN0cmFjdENvbnRyb2wsXG4pOiBWYWxpZGF0aW9uRXJyb3JzID0+IHtcbiAgbGV0IGhvc3RQcmVmaXg6IHN0cmluZyA9IGhvc3RQcmVmaXhDdHJsLnZhbHVlO1xuXG4gIGlmICghaG9zdFByZWZpeCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChob3N0UHJlZml4LmluY2x1ZGVzKCcuJykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG9zdFByZWZpeEluY2x1ZGVEb3RFcnJvcjogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGhvc3RQcmVmaXguaW5jbHVkZXMoJyonKSkge1xuICAgIGlmIChob3N0UHJlZml4ID09PSAnKicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydEV4dGVuc2l2ZSA9IGhvc3RQcmVmaXguc3RhcnRzV2l0aCgnKi4nKTtcblxuICAgIGlmIChcbiAgICAgIGhvc3RQcmVmaXgubGFzdEluZGV4T2YoJyonKSAhPT0gMCB8fFxuICAgICAgKGhvc3RQcmVmaXgubGVuZ3RoID4gMSAmJiAhc3RhcnRFeHRlbnNpdmUpXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBob3N0UHJlZml4RXh0ZW5zaXZlUG9zaXRpb246IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChzdGFydEV4dGVuc2l2ZSkge1xuICAgICAgaG9zdFByZWZpeCA9IGhvc3RQcmVmaXguc2xpY2UoMik7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFET01BSU5fUEFUVEVSTi5wYXR0ZXJuLnRlc3QoaG9zdFByZWZpeCArICcuZXhhbXBsZS5vcmcnKSkge1xuICAgIHJldHVybiB7IGhvc3RQcmVmaXhQYXR0ZXJuOiB0cnVlIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0UHJlZml4Q29tcGxldGVWYWxpZGF0b3JzID0gKGRvbWFpbkxlbmd0aDogbnVtYmVyKSA9PiBbXG4gIGhvc3RQcmVmaXhWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnMubWF4TGVuZ3RoKGRvbWFpbkxlbmd0aCksXG5dO1xuIl19
package/index.d.ts CHANGED
@@ -8,5 +8,7 @@ export * from './lib/types/k8s-exports';
8
8
  export { KUBE_OVN_GROUP, NETWORK_RESOURCE_DEFINITIONS, NETWORK_RESOURCE_TYPES, NetworkResourceDefinitions, } from './lib/types/resource-definition';
9
9
  export * from './lib/utils/cidr-exports';
10
10
  export * from './lib/utils/cluster-exports';
11
+ export * from './lib/utils/domain-exports';
11
12
  export * from './lib/utils/service-exports';
12
13
  export * from './lib/utils/subnet-exports';
14
+ export * from './lib/utils/validators-exports';
@@ -23,6 +23,7 @@ export interface SubnetSpec {
23
23
  namespaces?: string[];
24
24
  cidrBlock: string;
25
25
  natOutgoing?: boolean;
26
+ enableExternalLBAddress?: boolean;
26
27
  ipipMode?: EncapsulateMode;
27
28
  vxlanMode?: EncapsulateMode;
28
29
  blockSize?: number;
@@ -257,6 +258,101 @@ export interface NetworkPolicySpec {
257
258
  export interface NetworkPolicy extends KubernetesResource {
258
259
  spec?: NetworkPolicySpec;
259
260
  }
261
+ export interface NamespacedPod {
262
+ namespaceSelector: LabelSelector;
263
+ podSelector: LabelSelector;
264
+ }
265
+ export interface AdminNetworkPolicySubject {
266
+ namespaces?: LabelSelector;
267
+ pods?: NamespacedPod;
268
+ }
269
+ export declare const NetworkPolicyRuleAction: {
270
+ readonly Allow: "Allow";
271
+ readonly Deny: "Deny";
272
+ readonly Pass: "Pass";
273
+ };
274
+ export type NetworkPolicyRuleAction = (typeof NetworkPolicyRuleAction)[keyof typeof NetworkPolicyRuleAction];
275
+ export interface AdminNetworkPolicyIngressPeer {
276
+ namespaces?: LabelSelector;
277
+ pods?: NamespacedPod;
278
+ }
279
+ export interface PortRange {
280
+ protocol: string;
281
+ start: number;
282
+ end: number;
283
+ }
284
+ export interface AdminNetworkPolicyPort {
285
+ portNumber?: {
286
+ protocol: string;
287
+ port: number;
288
+ };
289
+ namedPort?: string;
290
+ portRange?: PortRange;
291
+ }
292
+ export type CIDR = string & {
293
+ readonly _cidr: unique symbol;
294
+ };
295
+ export interface AdminNetworkPolicyEgressPeer {
296
+ namespaces?: LabelSelector;
297
+ pods?: NamespacedPod;
298
+ nodes?: LabelSelector;
299
+ networks?: CIDR[];
300
+ domainNames?: string[];
301
+ }
302
+ export interface AdminNetworkPolicyIngressRule {
303
+ name?: string;
304
+ action: NetworkPolicyRuleAction;
305
+ from: AdminNetworkPolicyIngressPeer[];
306
+ ports?: AdminNetworkPolicyPort[];
307
+ }
308
+ export interface AdminNetworkPolicyEgressRule {
309
+ name?: string;
310
+ action: NetworkPolicyRuleAction;
311
+ to: AdminNetworkPolicyEgressPeer[];
312
+ ports?: AdminNetworkPolicyPort[];
313
+ }
314
+ export interface AdminNetworkPolicySpec {
315
+ priority: number;
316
+ subject: AdminNetworkPolicySubject;
317
+ ingress?: AdminNetworkPolicyIngressRule[];
318
+ egress?: AdminNetworkPolicyEgressRule[];
319
+ }
320
+ export interface AdminNetworkPolicy extends KubernetesResource {
321
+ spec: AdminNetworkPolicySpec;
322
+ status?: {
323
+ conditions: Condition[];
324
+ };
325
+ }
326
+ type BaselineAdminNetworkPolicyRuleAction = Exclude<NetworkPolicyRuleAction, 'Pass'>;
327
+ export interface BaselineAdminNetworkPolicyIngressRule {
328
+ name?: string;
329
+ action: BaselineAdminNetworkPolicyRuleAction;
330
+ from: AdminNetworkPolicyIngressPeer[];
331
+ ports?: AdminNetworkPolicyPort[];
332
+ }
333
+ export interface BaselineAdminNetworkPolicyEgressPeer {
334
+ namespaces?: LabelSelector;
335
+ pods?: NamespacedPod;
336
+ nodes?: LabelSelector;
337
+ networks?: CIDR[];
338
+ }
339
+ export interface BaselineAdminNetworkPolicyEgressRule {
340
+ name?: string;
341
+ action: BaselineAdminNetworkPolicyRuleAction;
342
+ to: BaselineAdminNetworkPolicyEgressPeer[];
343
+ ports?: AdminNetworkPolicyPort[];
344
+ }
345
+ export interface BaselineAdminNetworkPolicySpec {
346
+ subject: AdminNetworkPolicySubject;
347
+ ingress?: BaselineAdminNetworkPolicyIngressRule[];
348
+ egress?: BaselineAdminNetworkPolicyEgressRule[];
349
+ }
350
+ export interface BaselineAdminNetworkPolicy extends KubernetesResource {
351
+ spec: BaselineAdminNetworkPolicySpec;
352
+ status?: {
353
+ conditions: Condition[];
354
+ };
355
+ }
260
356
  export interface DomainSpec {
261
357
  name: string;
262
358
  kind: 'full' | 'extensive';
@@ -329,3 +425,4 @@ export interface IpPoolUsage extends KubernetesResource {
329
425
  ipv6available: number;
330
426
  };
331
427
  }
428
+ export {};
@@ -32,6 +32,16 @@ export declare const NetworkResourceDefinitions: {
32
32
  readonly type: "interconnectionsubnets";
33
33
  readonly apiGroup: "kubeovn.io";
34
34
  };
35
+ readonly ADMIN_NETWORK_POLICY: {
36
+ readonly apiGroup: "policy.networking.k8s.io";
37
+ readonly type: "adminnetworkpolicies";
38
+ readonly apiVersion: "v1alpha1";
39
+ };
40
+ readonly BASELINE_ADMIN_NETWORK_POLICY: {
41
+ readonly apiGroup: "policy.networking.k8s.io";
42
+ readonly type: "baselineadminnetworkpolicies";
43
+ readonly apiVersion: "v1alpha1";
44
+ };
35
45
  };
36
46
  export declare const INNER_NETWORK_RESOURCE_TYPES: {
37
47
  readonly SUBNET_KUBE_OVN: "SUBNET_KUBE_OVN";
@@ -41,6 +51,8 @@ export declare const INNER_NETWORK_RESOURCE_TYPES: {
41
51
  readonly BGP_PEER: "BGP_PEER";
42
52
  readonly BGP_ADVERTISEMENT: "BGP_ADVERTISEMENT";
43
53
  readonly INTER_CONNECTION_SUBNET: "INTER_CONNECTION_SUBNET";
54
+ readonly ADMIN_NETWORK_POLICY: "ADMIN_NETWORK_POLICY";
55
+ readonly BASELINE_ADMIN_NETWORK_POLICY: "BASELINE_ADMIN_NETWORK_POLICY";
44
56
  readonly ALAUDA_LOADBALANCER2: "ALAUDA_LOADBALANCER2";
45
57
  readonly ALB2: "ALB2";
46
58
  readonly HELM_REQUEST: "HELM_REQUEST";
@@ -133,6 +145,53 @@ export declare const INNER_NETWORK_RESOURCE_TYPES: {
133
145
  readonly ARGOCD_APPLICATION: "ARGOCD_APPLICATION";
134
146
  readonly OPERATOR_VIEW: "OPERATOR_VIEW";
135
147
  readonly MODULE_PLUGIN_VIEW: "MODULE_PLUGIN_VIEW";
148
+ readonly RESOURCE_PATCH: "RESOURCE_PATCH";
149
+ readonly COMPONENT_PROBER: "COMPONENT_PROBER";
150
+ readonly INSPECTION: "INSPECTION";
151
+ readonly INSPECTION_DETAILS: "INSPECTION_DETAILS";
152
+ readonly INSPECTION_ITEMS: "INSPECTION_ITEMS";
153
+ readonly MESSAGE: "MESSAGE";
154
+ readonly MODULE_HEALTH: "MODULE_HEALTH";
155
+ readonly MODULE_HEALTH_RECORD: "MODULE_HEALTH_RECORD";
156
+ readonly AUDIT: "AUDIT";
157
+ readonly LOG_POLICY: "LOG_POLICY";
158
+ readonly FUNCTION_TEST: "FUNCTION_TEST";
159
+ readonly PROJECT_BINDING: "PROJECT_BINDING";
160
+ readonly PROBE: "PROBE";
161
+ readonly REPORT: "REPORT";
162
+ readonly NAMESPACE_RESOURCE_RATIO: "NAMESPACE_RESOURCE_RATIO";
163
+ readonly CUSTOM_RESOURCE_DEFINITION: "CUSTOM_RESOURCE_DEFINITION";
164
+ readonly LICENSE: "LICENSE";
165
+ readonly RECORD: "RECORD";
166
+ readonly CSI_NODE: "CSI_NODE";
167
+ readonly TSF: "TSF";
168
+ readonly TDSQL: "TDSQL";
169
+ readonly PORTAL: "PORTAL";
170
+ readonly NAMESPACE_IMPORT: "NAMESPACE_IMPORT";
171
+ readonly CLUSTER_ADDON_TYPE: "CLUSTER_ADDON_TYPE";
172
+ readonly CLUSTER_CREDENTIAL: "CLUSTER_CREDENTIAL";
173
+ readonly CODING: "CODING";
174
+ readonly TI_MATRIX: "TI_MATRIX";
175
+ readonly SYSTEM_CONFIG: "SYSTEM_CONFIG";
176
+ readonly CERTIFICATE: "CERTIFICATE";
177
+ readonly SECURITY_RULE: "SECURITY_RULE";
178
+ readonly REGION: "REGION";
179
+ readonly TOPOLVM_CLUSTER_V2: "TOPOLVM_CLUSTER_V2";
180
+ readonly BUCKET: "BUCKET";
181
+ readonly SCHEDULE: "SCHEDULE";
182
+ readonly BACKUP_STORAGE_LOCATION: "BACKUP_STORAGE_LOCATION";
183
+ readonly BACKUP_STORAGE_LOCATION_REPO: "BACKUP_STORAGE_LOCATION_REPO";
184
+ readonly BACKUP: "BACKUP";
185
+ readonly DELETE_BACKUP_REQUEST: "DELETE_BACKUP_REQUEST";
186
+ readonly ETCD_BACKUP_RECORD: "ETCD_BACKUP_RECORD";
187
+ readonly RESTORE: "RESTORE";
188
+ readonly RAW_DEVICE: "RAW_DEVICE";
189
+ readonly APP_RELEASES: "APP_RELEASES";
190
+ readonly NOTIFICATION_TEMPLATE: "NOTIFICATION_TEMPLATE";
191
+ readonly NOTIFICATION_GROUP: "NOTIFICATION_GROUP";
192
+ readonly NOTIFICATION: "NOTIFICATION";
193
+ readonly TUNNEL_CLUSTER: "TUNNEL_CLUSTER";
194
+ readonly K8S_CLUSTER: "K8S_CLUSTER";
136
195
  };
137
196
  export declare const NETWORK_RESOURCE_DEFINITIONS: {
138
197
  readonly SUBNET_KUBE_OVN: {
@@ -167,6 +226,16 @@ export declare const NETWORK_RESOURCE_DEFINITIONS: {
167
226
  readonly type: "interconnectionsubnets";
168
227
  readonly apiGroup: "kubeovn.io";
169
228
  };
229
+ readonly ADMIN_NETWORK_POLICY: {
230
+ readonly apiGroup: "policy.networking.k8s.io";
231
+ readonly type: "adminnetworkpolicies";
232
+ readonly apiVersion: "v1alpha1";
233
+ };
234
+ readonly BASELINE_ADMIN_NETWORK_POLICY: {
235
+ readonly apiGroup: "policy.networking.k8s.io";
236
+ readonly type: "baselineadminnetworkpolicies";
237
+ readonly apiVersion: "v1alpha1";
238
+ };
170
239
  };
171
240
  export declare const NETWORK_RESOURCE_TYPES: {
172
241
  readonly SUBNET_KUBE_OVN: "SUBNET_KUBE_OVN";
@@ -176,4 +245,6 @@ export declare const NETWORK_RESOURCE_TYPES: {
176
245
  readonly BGP_PEER: "BGP_PEER";
177
246
  readonly BGP_ADVERTISEMENT: "BGP_ADVERTISEMENT";
178
247
  readonly INTER_CONNECTION_SUBNET: "INTER_CONNECTION_SUBNET";
248
+ readonly ADMIN_NETWORK_POLICY: "ADMIN_NETWORK_POLICY";
249
+ readonly BASELINE_ADMIN_NETWORK_POLICY: "BASELINE_ADMIN_NETWORK_POLICY";
179
250
  };
@@ -0,0 +1,5 @@
1
+ import { Domain } from '../types/k8s-exports';
2
+ export declare function getMatchedDomain(domains: Domain[], domain: string): {
3
+ subDomain: string;
4
+ domain: string;
5
+ };
@@ -0,0 +1,16 @@
1
+ import { TranslateService } from '@alauda-fe/common';
2
+ import { AbstractControl, ValidationErrors } from '@angular/forms';
3
+ export declare const getHostPrefixErrorMapper: (translate: TranslateService) => {
4
+ hostPrefixExtensivePosition: string;
5
+ hostPrefixPattern: string;
6
+ maxlength: string;
7
+ hostPrefixIncludeDotError: string;
8
+ };
9
+ export declare const getHostPrefixErrorMapper$: (translate: TranslateService) => import("rxjs").Observable<{
10
+ hostPrefixExtensivePosition: string;
11
+ hostPrefixPattern: string;
12
+ maxlength: string;
13
+ hostPrefixIncludeDotError: string;
14
+ }>;
15
+ export declare const hostPrefixValidator: (hostPrefixCtrl: AbstractControl) => ValidationErrors;
16
+ export declare const getHostPrefixCompleteValidators: (domainLength: number) => import("@angular/forms").ValidatorFn[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alauda-fe/network",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@alauda-fe/common": "^1.0.2",
package/styles.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v3.4.6 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!tw-visible{visibility:visible!important}.tw-invisible{visibility:hidden}.tw-fixed{position:fixed}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-left-0{left:0}.tw-right-\[12px\]{right:12px}.tw-right-\[16px\]{right:16px}.tw-top-0{top:0}.tw-top-\[12px\]{top:12px}.tw-z-10{z-index:10}.tw-mx-8{margin-left:8px;margin-right:8px}.tw-my-16{margin-bottom:16px;margin-top:16px}.\!tw-ml-0{margin-left:0!important}.\!tw-mr-8{margin-right:8px!important}.\!tw-mt-16{margin-top:16px!important}.tw-mb-12{margin-bottom:12px}.tw-mb-16{margin-bottom:16px}.tw-mb-20{margin-bottom:20px}.tw-mb-4{margin-bottom:4px}.tw-mb-8{margin-bottom:8px}.tw-ml-12{margin-left:12px}.tw-ml-16{margin-left:16px}.tw-ml-20{margin-left:20px}.tw-ml-24{margin-left:24px}.tw-ml-32{margin-left:32px}.tw-ml-6{margin-left:6px}.tw-ml-8{margin-left:8px}.tw-ml-\[-4px\]{margin-left:-4px}.tw-ml-\[4px\]{margin-left:4px}.tw-mr-0{margin-right:0}.tw-mr-16{margin-right:16px}.tw-mr-4{margin-right:4px}.tw-mr-6{margin-right:6px}.tw-mr-8{margin-right:8px}.tw-mr-\[4px\]{margin-right:4px}.tw-mt-0{margin-top:0}.tw-mt-16{margin-top:16px}.tw-mt-20{margin-top:20px}.tw-mt-8{margin-top:8px}.tw-line-clamp-2{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden}.tw-block{display:block}.\!tw-flex{display:flex!important}.tw-flex{display:flex}.tw-inline-flex{display:inline-flex}.tw-hidden{display:none}.\!tw-h-\[20px\]{height:20px!important}.tw-h-0{height:0}.tw-h-1\/2{height:50%}.tw-h-\[100\%\]{height:100%}.tw-h-\[100vh\]{height:100vh}.tw-h-\[200px\]{height:200px}.tw-h-\[22px\]{height:22px}.tw-h-\[600px\]{height:600px}.tw-h-\[8px\]{height:8px}.tw-h-full{height:100%}.tw-min-h-0{min-height:0}.tw-min-h-\[360px\]{min-height:360px}.tw-min-h-screen{min-height:100vh}.\!tw-w-\[20px\]{width:20px!important}.tw-w-\[100\%\]{width:100%}.tw-w-\[135px\]{width:135px}.tw-w-\[160px\]{width:160px}.tw-w-\[200px\]{width:200px}.tw-w-\[260px\]{width:260px}.tw-w-\[950px\]{width:950px}.tw-w-full{width:100%}.tw-min-w-0{min-width:0}.tw-min-w-\[100px\]{min-width:100px}.tw-min-w-\[135px\]{min-width:135px}.tw-min-w-\[160px\]{min-width:160px}.tw-min-w-\[220px\]{min-width:220px}.tw-min-w-\[260px\]{min-width:260px}.tw-min-w-\[50px\]{min-width:50px}.tw-max-w-\[400px\]{max-width:400px}.tw-max-w-\[45\%\]{max-width:45%}.tw-max-w-full{max-width:100%}.tw-flex-1{flex:1 1 0%}.tw-flex-\[1\]{flex:1}.tw-flex-\[2\]{flex:2}.tw-flex-shrink-0{flex-shrink:0}.\!tw-cursor-move{cursor:move!important}.tw-cursor-move{cursor:move}.tw-cursor-pointer{cursor:pointer}.tw-select-none{user-select:none}.tw-list-disc{list-style-type:disc}.tw-flex-row{flex-direction:row}.tw-flex-col{flex-direction:column}.tw-flex-wrap{flex-wrap:wrap}.tw-items-start{align-items:flex-start}.tw-items-center{align-items:center}.tw-justify-end{justify-content:flex-end}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-space-y-\[8px\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(8px*var(--tw-space-y-reverse));margin-top:calc(8px*(1 - var(--tw-space-y-reverse)))}.tw-overflow-auto{overflow:auto}.tw-overflow-hidden{overflow:hidden}.tw-overflow-y-auto{overflow-y:auto}.tw-overflow-x-hidden{overflow-x:hidden}.tw-overflow-ellipsis,.tw-text-ellipsis{text-overflow:ellipsis}.tw-whitespace-nowrap{white-space:nowrap}.tw-break-words{overflow-wrap:break-word}.tw-break-all{word-break:break-all}.tw-rounded-l{border-radius:var(--aui-border-radius-l);border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.tw-bg-n-10{background-color:rgb(var(--aui-color-n-10))}.tw-bg-n-8{background-color:rgb(var(--aui-color-n-8))}.tw-bg-n-9{background-color:rgb(var(--aui-color-n-9))}.tw-bg-p-6{background-color:rgb(var(--aui-color-p-6))}.tw-p-12{padding:12px}.tw-p-16{padding:16px}.tw-p-20{padding:20px}.tw-p-\[12px_16px\]{padding:12px 16px}.tw-px-12{padding-left:12px;padding-right:12px}.tw-px-16{padding-left:16px;padding-right:16px}.tw-px-4{padding-left:4px;padding-right:4px}.tw-py-8{padding-bottom:8px;padding-top:8px}.tw-pl-8{padding-left:8px}.tw-pr-16{padding-right:16px}.tw-pr-20{padding-right:20px}.tw-text-center{text-align:center}.\!tw-text-s{font-size:var(--aui-font-size-s)!important}.tw-text-\[12px\]{font-size:12px}.tw-text-l{font-size:var(--aui-font-size-l)}.tw-text-m{font-size:var(--aui-font-size-m)}.tw-text-s{font-size:var(--aui-font-size-s)}.tw-font-bold{font-weight:var(--aui-font-weight-bold)}.tw-font-bolder{font-weight:var(--aui-font-weight-bolder)}.tw-leading-m{line-height:var(--aui-line-height-m)}.\!tw-text-n-2{color:rgb(var(--aui-color-n-2))!important}.tw-text-help-text{color:rgb(var(--aui-color-help-text))}.tw-text-main-text{color:rgb(var(--aui-color-main-text))}.tw-text-n-2{color:rgb(var(--aui-color-n-2))}.tw-text-n-4{color:rgb(var(--aui-color-n-4))}.tw-text-p-2{color:rgb(var(--aui-color-p-2))}.tw-text-primary{color:rgb(var(--aui-color-primary))}.tw-text-red{color:rgb(var(--aui-color-red))}.tw-shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-icon-l{font-size:var(--aui-icon-size-l)}.tw-icon-m{font-size:var(--aui-icon-size-m)}.tw-leading-text-xl{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl)}.hover\:\!tw-text-primary:hover{color:rgb(var(--aui-color-primary))!important}.hover\:tw-text-primary:hover{color:rgb(var(--aui-color-primary))}html:not([lang|=zh]) .lang-not-zh\:\!tw-w-\[230px\]{width:230px!important}@media (min-width:1280px){.vw1280\:tw-ml-\[40px\]{margin-left:40px}.vw1280\:tw-mr-20{margin-right:20px}}
1
+ /*! tailwindcss v3.4.6 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!tw-visible{visibility:visible!important}.tw-invisible{visibility:hidden}.tw-fixed{position:fixed}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-left-0{left:0}.tw-right-\[12px\]{right:12px}.tw-right-\[16px\]{right:16px}.tw-top-0{top:0}.tw-top-\[12px\]{top:12px}.tw-z-10{z-index:10}.tw-mx-8{margin-left:8px;margin-right:8px}.tw-my-16{margin-bottom:16px;margin-top:16px}.\!tw-ml-0{margin-left:0!important}.\!tw-mr-8{margin-right:8px!important}.\!tw-mt-16{margin-top:16px!important}.tw-mb-12{margin-bottom:12px}.tw-mb-16{margin-bottom:16px}.tw-mb-20{margin-bottom:20px}.tw-mb-4{margin-bottom:4px}.tw-mb-8{margin-bottom:8px}.tw-ml-12{margin-left:12px}.tw-ml-16{margin-left:16px}.tw-ml-20{margin-left:20px}.tw-ml-24{margin-left:24px}.tw-ml-32{margin-left:32px}.tw-ml-6{margin-left:6px}.tw-ml-8{margin-left:8px}.tw-ml-\[-4px\]{margin-left:-4px}.tw-ml-\[4px\]{margin-left:4px}.tw-mr-0{margin-right:0}.tw-mr-16{margin-right:16px}.tw-mr-4{margin-right:4px}.tw-mr-6{margin-right:6px}.tw-mr-8{margin-right:8px}.tw-mr-\[4px\]{margin-right:4px}.tw-mt-0{margin-top:0}.tw-mt-16{margin-top:16px}.tw-mt-20{margin-top:20px}.tw-mt-8{margin-top:8px}.tw-block{display:block}.\!tw-flex{display:flex!important}.tw-flex{display:flex}.tw-inline-flex{display:inline-flex}.tw-hidden{display:none}.\!tw-h-1\/2{height:50%!important}.\!tw-h-\[20px\]{height:20px!important}.tw-h-0{height:0}.tw-h-\[100\%\]{height:100%}.tw-h-\[100vh\]{height:100vh}.tw-h-\[200px\]{height:200px}.tw-h-\[22px\]{height:22px}.tw-h-\[600px\]{height:600px}.tw-h-\[8px\]{height:8px}.tw-h-full{height:100%}.tw-min-h-0{min-height:0}.tw-min-h-\[360px\]{min-height:360px}.tw-min-h-screen{min-height:100vh}.\!tw-w-\[20px\]{width:20px!important}.tw-w-\[100\%\]{width:100%}.tw-w-\[135px\]{width:135px}.tw-w-\[160px\]{width:160px}.tw-w-\[200px\]{width:200px}.tw-w-\[260px\]{width:260px}.tw-w-full{width:100%}.tw-min-w-0{min-width:0}.tw-min-w-\[100px\]{min-width:100px}.tw-min-w-\[135px\]{min-width:135px}.tw-min-w-\[160px\]{min-width:160px}.tw-min-w-\[220px\]{min-width:220px}.tw-min-w-\[260px\]{min-width:260px}.tw-min-w-\[50px\]{min-width:50px}.tw-max-w-\[400px\]{max-width:400px}.tw-max-w-\[45\%\]{max-width:45%}.tw-max-w-full{max-width:100%}.tw-flex-1{flex:1 1 0%}.tw-flex-\[1\]{flex:1}.tw-flex-\[2\]{flex:2}.tw-flex-shrink-0{flex-shrink:0}.\!tw-cursor-move{cursor:move!important}.tw-cursor-move{cursor:move}.tw-cursor-pointer{cursor:pointer}.tw-select-none{user-select:none}.tw-list-disc{list-style-type:disc}.tw-flex-row{flex-direction:row}.tw-flex-col{flex-direction:column}.tw-flex-wrap{flex-wrap:wrap}.tw-items-start{align-items:flex-start}.tw-items-center{align-items:center}.tw-justify-end{justify-content:flex-end}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-space-y-\[8px\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(8px*var(--tw-space-y-reverse));margin-top:calc(8px*(1 - var(--tw-space-y-reverse)))}.tw-overflow-auto{overflow:auto}.tw-overflow-hidden{overflow:hidden}.tw-overflow-y-auto{overflow-y:auto}.tw-overflow-x-hidden{overflow-x:hidden}.tw-overflow-ellipsis,.tw-text-ellipsis{text-overflow:ellipsis}.tw-whitespace-nowrap{white-space:nowrap}.tw-break-words{overflow-wrap:break-word}.tw-break-all{word-break:break-all}.tw-rounded-l{border-radius:var(--aui-border-radius-l);border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.tw-bg-n-10{background-color:rgb(var(--aui-color-n-10))}.tw-bg-n-8{background-color:rgb(var(--aui-color-n-8))}.tw-bg-n-9{background-color:rgb(var(--aui-color-n-9))}.tw-bg-p-6{background-color:rgb(var(--aui-color-p-6))}.tw-p-12{padding:12px}.tw-p-16{padding:16px}.tw-p-20{padding:20px}.tw-p-\[12px_16px\]{padding:12px 16px}.tw-px-12{padding-left:12px;padding-right:12px}.tw-px-16{padding-left:16px;padding-right:16px}.tw-px-4{padding-left:4px;padding-right:4px}.tw-py-8{padding-bottom:8px;padding-top:8px}.tw-pl-8{padding-left:8px}.tw-pr-16{padding-right:16px}.tw-pr-20{padding-right:20px}.tw-text-center{text-align:center}.\!tw-text-s{font-size:var(--aui-font-size-s)!important}.tw-text-\[12px\]{font-size:12px}.tw-text-l{font-size:var(--aui-font-size-l)}.tw-text-m{font-size:var(--aui-font-size-m)}.tw-text-s{font-size:var(--aui-font-size-s)}.tw-font-bold{font-weight:var(--aui-font-weight-bold)}.tw-font-bolder{font-weight:var(--aui-font-weight-bolder)}.tw-leading-m{line-height:var(--aui-line-height-m)}.\!tw-text-n-2{color:rgb(var(--aui-color-n-2))!important}.tw-text-help-text{color:rgb(var(--aui-color-help-text))}.tw-text-main-text{color:rgb(var(--aui-color-main-text))}.tw-text-n-2{color:rgb(var(--aui-color-n-2))}.tw-text-n-4{color:rgb(var(--aui-color-n-4))}.tw-text-p-2{color:rgb(var(--aui-color-p-2))}.tw-text-primary{color:rgb(var(--aui-color-primary))}.tw-text-red{color:rgb(var(--aui-color-red))}.tw-shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-icon-l{font-size:var(--aui-icon-size-l)}.tw-icon-m{font-size:var(--aui-icon-size-m)}.tw-leading-text-xl{font-size:var(--aui-font-size-xl);line-height:var(--aui-line-height-xl)}.hover\:\!tw-text-primary:hover{color:rgb(var(--aui-color-primary))!important}.hover\:tw-text-primary:hover{color:rgb(var(--aui-color-primary))}html:not([lang|=zh]) .lang-not-zh\:\!tw-w-\[230px\]{width:230px!important}@media (min-width:1280px){.vw1280\:tw-ml-\[40px\]{margin-left:40px}.vw1280\:tw-mr-20{margin-right:20px}}