@hestia-earth/ui-components 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/bundles/hestia-earth-ui-components.umd.js +31 -37
  2. package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
  3. package/common/utils.d.ts +3 -4
  4. package/cycles/cycles-activity/cycles-activity.component.d.ts +1 -1
  5. package/cycles/cycles-emissions/cycles-emissions.component.d.ts +1 -1
  6. package/cycles/cycles-emissions-chart/cycles-emissions-chart.component.d.ts +3 -3
  7. package/cycles/cycles-practices/cycles-practices.component.d.ts +1 -1
  8. package/esm2015/common/utils.js +7 -12
  9. package/esm2015/cycles/cycles-activity/cycles-activity.component.js +2 -2
  10. package/esm2015/cycles/cycles-emissions/cycles-emissions.component.js +2 -2
  11. package/esm2015/cycles/cycles-emissions-chart/cycles-emissions-chart.component.js +6 -5
  12. package/esm2015/cycles/cycles-practices/cycles-practices.component.js +2 -2
  13. package/esm2015/cycles/cycles-result/cycles-result.component.js +3 -3
  14. package/esm2015/files/files-error.model.js +3 -1
  15. package/esm2015/impact-assessments/impact-assessments-products/impact-assessments-products.component.js +2 -2
  16. package/esm2015/node/node-logs-models/node-logs-models.component.js +4 -4
  17. package/esm2015/node/node-value-details/node-value-details.component.js +5 -4
  18. package/esm2015/sites/sites-measurements/sites-measurements.component.js +2 -2
  19. package/esm2015/sites/sites.model.js +3 -3
  20. package/fesm2015/hestia-earth-ui-components.js +28 -29
  21. package/fesm2015/hestia-earth-ui-components.js.map +1 -1
  22. package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +1 -1
  23. package/package.json +5 -4
  24. package/sites/sites-measurements/sites-measurements.component.d.ts +1 -1
  25. package/sites/sites.model.d.ts +1 -1
package/common/utils.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Term, ICycleJSONLD, ISiteJSONLD, IImpactAssessmentJSONLD } from '@hestia-earth/schema';
1
+ import { Term, ICycleJSONLD, ISiteJSONLD, IImpactAssessmentJSONLD, ITermJSONLD } from '@hestia-earth/schema';
2
2
  export declare const gitHome = "https://gitlab.com/hestia-earth";
3
3
  export declare const gitRawBaseUrl = "https://glcdn.githack.com/hestia-earth";
4
4
  export declare const gitBranch: () => "develop" | "master";
@@ -18,8 +18,7 @@ export declare const scrollTop: () => void;
18
18
  export declare const safeJSONParse: <T>(value: string, defaultValue?: any) => any;
19
19
  export declare const safeJSONStringify: (value: string) => string;
20
20
  export declare const arrayValue: (values: any[], isAverage: boolean) => number;
21
- export declare const propertyValue: (value: string | number | ((string | number)[]), isAverage?: boolean) => number;
22
- export declare const dataValue: (data: any, index: number, property: string) => number;
21
+ export declare const propertyValue: (value: string | number | ((string | number)[]), termId?: string) => number;
23
22
  export interface IGroupedNode<T> {
24
23
  nodes: T[];
25
24
  index: number;
@@ -38,7 +37,7 @@ export interface IGroupedNodesValues<T> {
38
37
  [nodeId: string]: IGroupedNode<T>;
39
38
  }
40
39
  export interface IGroupedNodesValue<T> {
41
- term: Term;
40
+ term: ITermJSONLD;
42
41
  /**
43
42
  * Enable ordering ny methodTier
44
43
  */
@@ -13,7 +13,7 @@ export declare class CyclesActivityComponent implements OnChanges {
13
13
  dataState?: DataState;
14
14
  enableCompare: boolean;
15
15
  baseUrl: string;
16
- propertyValue: (value: string | number | (string | number)[], isAverage?: boolean) => number;
16
+ propertyValue: (value: string | number | (string | number)[], termId?: string) => number;
17
17
  showDownload: boolean;
18
18
  View: typeof View;
19
19
  selectedView: View;
@@ -14,7 +14,7 @@ export declare class CyclesEmissionsComponent implements OnChanges {
14
14
  dataState?: DataState;
15
15
  enableCompare: boolean;
16
16
  baseUrl: string;
17
- propertyValue: (value: string | number | (string | number)[], isAverage?: boolean) => number;
17
+ propertyValue: (value: string | number | (string | number)[], termId?: string) => number;
18
18
  itemColor: (index: number) => any;
19
19
  showDownload: boolean;
20
20
  View: typeof View;
@@ -1,5 +1,5 @@
1
1
  import { OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';
2
- import { Emission, Term } from '@hestia-earth/schema';
2
+ import { Emission, ITermJSONLD } from '@hestia-earth/schema';
3
3
  import { IGroupedNodes } from '../../common/utils';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class CyclesEmissionsChartComponent implements AfterViewInit, OnChanges {
@@ -7,8 +7,8 @@ export declare class CyclesEmissionsChartComponent implements AfterViewInit, OnC
7
7
  private chart;
8
8
  private cycles;
9
9
  emissionPerCycle: IGroupedNodes<Emission>;
10
- terms: Term[];
11
- selectedTerm?: Term;
10
+ terms: ITermJSONLD[];
11
+ selectedTerm?: ITermJSONLD;
12
12
  ngAfterViewInit(): void;
13
13
  ngOnChanges(changes: SimpleChanges): void;
14
14
  private init;
@@ -13,7 +13,7 @@ export declare class CyclesPracticesComponent implements OnChanges {
13
13
  dataState?: DataState;
14
14
  enableCompare: boolean;
15
15
  baseUrl: string;
16
- propertyValue: (value: string | number | (string | number)[], isAverage?: boolean) => number;
16
+ propertyValue: (value: string | number | (string | number)[], termId?: string) => number;
17
17
  itemColor: (index: number) => any;
18
18
  showDownload: boolean;
19
19
  View: typeof View;
@@ -3,6 +3,7 @@ import { getColor } from 'random-material-color';
3
3
  import { NodeType, EmissionMethodTier } from '@hestia-earth/schema';
4
4
  import { fileToExt } from '@hestia-earth/api';
5
5
  import { isEmpty } from '@hestia-earth/utils';
6
+ import { getArrayTreatment } from '@hestia-earth/glossary';
6
7
  export const gitHome = 'https://gitlab.com/hestia-earth';
7
8
  export const gitRawBaseUrl = 'https://glcdn.githack.com/hestia-earth';
8
9
  export const gitBranch = () => ['dev', 'staging'].some(env => baseUrl().includes(env)) ? 'develop' : 'master';
@@ -65,17 +66,11 @@ export const safeJSONParse = (value, defaultValue) => {
65
66
  };
66
67
  export const safeJSONStringify = (value) => typeof value === 'string' ? value : JSON.stringify(value);
67
68
  export const arrayValue = (values, isAverage) => (values || []).reduce((prev, curr) => prev + parseFloat(`${curr}`), 0) / (isAverage ? values.length : 1);
68
- export const propertyValue = (value, isAverage = false) => typeof value === 'undefined' || value === null ?
69
+ export const propertyValue = (value, termId) => typeof value === 'undefined' || value === null ?
69
70
  null :
70
- (Array.isArray(value) ? arrayValue(value, isAverage) : parseFloat(`${value}`));
71
- export const dataValue = (data, index, property) => {
72
- try {
73
- return propertyValue(data[property][index].value);
74
- }
75
- catch (err) {
76
- return null;
77
- }
78
- };
71
+ (Array.isArray(value) ?
72
+ arrayValue(value, (termId ? getArrayTreatment(termId) : null) === 'mean') :
73
+ parseFloat(`${value}`));
79
74
  ;
80
75
  ;
81
76
  export const grouppedKeys = (values) => Object.entries(values).map(([key, value]) => ({ key, value }));
@@ -129,7 +124,7 @@ export const groupNodesByTerm = (nodes = [], key, originalValues = [], filterMet
129
124
  const originalValue = get(originalValues, `[${index}].${key}`, []).filter((val) => val.term['@id'] === termId);
130
125
  if (originalValue.length > 0) {
131
126
  const value = originalValue.reduce((array, curr) => concatBlankNodeValue(array, curr.value), []);
132
- group.originalValues[nodeId] = { value: propertyValue(value) };
127
+ group.originalValues[nodeId] = { value: propertyValue(value, termId) };
133
128
  }
134
129
  });
135
130
  });
@@ -172,4 +167,4 @@ export const filenameWithoutExt = (filename = '') => {
172
167
  // remove last .
173
168
  return file.endsWith('.') ? file.substring(0, file.length - 1) : file;
174
169
  };
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFBb0Usa0JBQWtCLEVBQy9GLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLHdDQUF3QyxDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFFOUcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFOztJQUMxQixPQUFBLENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sMENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUM7UUFDN0MsOEJBQThCLENBQUMsQ0FBQztRQUNoQyxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEs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QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBSSxFQUFLLEVBQUUsS0FBYSxFQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDbEQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxnQkFBZ0I7SUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0ID0gcmVxdWlyZSgnbG9kYXNoLmdldCcpO1xuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICdyYW5kb20tbWF0ZXJpYWwtY29sb3InO1xuaW1wb3J0IHtcbiAgTm9kZVR5cGUsIFRlcm0sIEpTT05MRCwgSUN5Y2xlSlNPTkxELCBJU2l0ZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEVtaXNzaW9uTWV0aG9kVGllclxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBmaWxlVG9FeHQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBnaXRIb21lID0gJ2h0dHBzOi8vZ2l0bGFiLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdFJhd0Jhc2VVcmwgPSAnaHR0cHM6Ly9nbGNkbi5naXRoYWNrLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdEJyYW5jaCA9ICgpID0+IFsnZGV2JywgJ3N0YWdpbmcnXS5zb21lKGVudiA9PiBiYXNlVXJsKCkuaW5jbHVkZXMoZW52KSkgPyAnZGV2ZWxvcCcgOiAnbWFzdGVyJztcblxuZXhwb3J0IGNvbnN0IGlzQ2hyb21lID0gKCkgPT4gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoJ0Nocm9tZScpO1xuXG5leHBvcnQgY29uc3QgYmFzZVVybCA9ICgpID0+XG4gIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4/LmluY2x1ZGVzKCdsb2NhbGhvc3QnKSA/XG4gICAgJ2h0dHBzOi8vd3d3LWRldi5oZXN0aWEuZWFydGgnIDpcbiAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luPy5pbmNsdWRlcygnaGVzdGlhLmVhcnRoJykgP1xuICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbiA6XG4gICAgICAnaHR0cHM6Ly93d3cuaGVzdGlhLmVhcnRoJztcblxuZXhwb3J0IGNvbnN0IGlzRXh0ZXJuYWwgPSAoKSA9PiBiYXNlVXJsKCkgIT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG5cbmNvbnN0IHBhcnNlRXJyb3JTdGF0dXMgPSAoZXJyb3I6IGFueSkgPT4gKGVycm9yPy5zdGF0dXNUZXh0IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCAnLScpO1xuXG5jb25zdCBwYXJzZUVycm9yTWVzc2FnZSA9IChlcnJvcjogYW55KSA9PlxuICBnZXQoZXJyb3IsICdlcnJvci5lcnJvcicsIGdldChlcnJvciwgJ2Vycm9yLm1lc3NhZ2UnLCBnZXQoZXJyb3IsICdlcnJvcicsIGdldChlcnJvciwgJ21lc3NhZ2UnLCBlcnJvcikpKSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVBUElFcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgZXJyb3IgPSBwYXJzZUVycm9yTWVzc2FnZShlcnJvcik7XG4gIH1cbiAgY2F0Y2ggKF8pIHsgfVxuICB0aHJvdyBlcnJvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBlcnJvclRleHQgPSAoZXJyb3I6IGFueSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG4gIGNvbnN0IGVyciA9IHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgcmV0dXJuIHBhcnNlRXJyb3JTdGF0dXMoZXJyKSB8fCBlcnI7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyUGFyYW1zID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHJlczoge1xuICAgIFt4OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcbiAgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmVzW2tleV0gPSBgJHt2YWx1ZX1gO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59O1xuXG5leHBvcnQgY29uc3Qgd2FpdEZvciA9ICh2YXJpYWJsZTogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICBpZiAodmFyaWFibGUgaW4gd2luZG93KSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gIH1cbiAgc2V0VGltZW91dCgoKSA9PiB3YWl0Rm9yKHZhcmlhYmxlLCBjYWxsYmFjayksIDEwMCk7XG59O1xuXG5leHBvcnQgY29uc3QgYm90dG9tID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG5leHBvcnQgY29uc3QgaXNTY3JvbGxlZEJlbG93ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBlbGVtZW50ID8gd2luZG93LnNjcm9sbFkgPiBib3R0b20oZWxlbWVudCkgOiBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvRWwgPSAoaWQ6IHN0cmluZywgcmV0cmllcyA9IDApID0+IHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gIHNldFRpbWVvdXQoKCkgPT4gZWwgPyBlbC5zY3JvbGxJbnRvVmlldygpIDogKHJldHJpZXMgPCAxMCA/IHNjcm9sbFRvRWwoaWQsIHJldHJpZXMgKyAxKSA6IG51bGwpLCAxMDApO1xufTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvcCA9ICgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OUGFyc2UgPSA8VD4odmFsdWU6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHZhbHVlKSBhcyBUIDogdmFsdWU7XG4gIH1cbiAgY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzYWZlSlNPTlN0cmluZ2lmeSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG5cbmV4cG9ydCBjb25zdCBhcnJheVZhbHVlID0gKHZhbHVlczogYW55W10sIGlzQXZlcmFnZTogYm9vbGVhbikgPT5cbiAgKHZhbHVlcyB8fCBbXSkucmVkdWNlKChwcmV2OiBudW1iZXIsIGN1cnIpID0+IHByZXYgKyBwYXJzZUZsb2F0KGAke2N1cnJ9YCksIDApIC8gKGlzQXZlcmFnZSA/IHZhbHVlcy5sZW5ndGggOiAxKTtcblxuZXhwb3J0IGNvbnN0IHByb3BlcnR5VmFsdWUgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8ICgoc3RyaW5nIHwgbnVtYmVyKVtdKSwgaXNBdmVyYWdlID0gZmFsc2UpOiBudW1iZXIgPT5cbiAgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCA/XG4gICAgbnVsbCBhcyBhbnkgOlxuICAgIChcbiAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpID8gYXJyYXlWYWx1ZSh2YWx1ZSwgaXNBdmVyYWdlKSA6IHBhcnNlRmxvYXQoYCR7dmFsdWV9YClcbiAgICApO1xuXG5leHBvcnQgY29uc3QgZGF0YVZhbHVlID0gKGRhdGE6IGFueSwgaW5kZXg6IG51bWJlciwgcHJvcGVydHk6IHN0cmluZykgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlKGRhdGFbcHJvcGVydHldW2luZGV4XS52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZTxUPiB7XG4gIG5vZGVzOiBUW107XG4gIGluZGV4OiBudW1iZXI7XG4gIHZhbHVlOiBudW1iZXJbXTtcbiAgZGF0ZXM/OiBhbnlbXTtcbiAgc2Q/OiBudW1iZXJbXTtcbiAgbWluPzogbnVtYmVyW107XG4gIG1heD86IG51bWJlcltdO1xuICBpbnB1dHM/OiBhbnlbXTtcbiAgZGVwdGhVcHBlcj86IG51bWJlcltdO1xuICBkZXB0aExvd2VyPzogbnVtYmVyW107XG4gIHN0YXJ0RGF0ZT86IHN0cmluZ1tdO1xuICBlbmREYXRlPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZXM8VD4ge1xuICBbbm9kZUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+IHtcbiAgdGVybTogVGVybTtcbiAgLyoqXG4gICAqIEVuYWJsZSBvcmRlcmluZyBueSBtZXRob2RUaWVyXG4gICAqL1xuICBtZXRob2RUaWVyT3JkZXI6IG51bWJlcjtcbiAgdmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPFQ+O1xuICBvcmlnaW5hbFZhbHVlczoge1xuICAgIFtub2RlSWQ6IHN0cmluZ106IHtcbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2RlczxUPiB7XG4gIFt0ZXJtSWQ6IHN0cmluZ106IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZEtleXM8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IGdyb3VwcGVkS2V5cyA9IDxUPih2YWx1ZXM6IElHcm91cGVkTm9kZXM8VD4pOiBJR3JvdXBlZEtleXM8VD5bXSA9PlxuICBPYmplY3QuZW50cmllcyh2YWx1ZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoeyBrZXksIHZhbHVlIH0pKTtcblxuY29uc3QgY29uY2F0QmxhbmtOb2RlVmFsdWUgPSAodmFsdWU6IGFueSwgbmV3VmFsdWU6IGFueSkgPT4ge1xuICBjb25zdCB2YWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIGNvbnN0IG5ld1ZhbHVlQXJyYXkgPSBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXTtcbiAgcmV0dXJuIFsuLi52YWx1ZUFycmF5LCAuLi5uZXdWYWx1ZUFycmF5XTtcbn07XG5cbmNvbnN0IG1ldGhvZFRpZXJPcmRlciA9IChtZXRob2RUaWVyOiBFbWlzc2lvbk1ldGhvZFRpZXIpID0+IFtcbiAgRW1pc3Npb25NZXRob2RUaWVyLm1lYXN1cmVkLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMyddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMiddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMSddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXIuYmFja2dyb3VuZFxuXS5pbmRleE9mKG1ldGhvZFRpZXIpO1xuXG5jb25zdCBpc01ldGhvZE1vZGVsQWxsb3dlZCA9IChub2RlOiBhbnksIGZpbHRlck1ldGhvZD86IFRlcm0pID0+XG4gICFmaWx0ZXJNZXRob2QgfHwgIW5vZGVbJ21ldGhvZE1vZGVsJ10gfHwgbm9kZVsnbWV0aG9kTW9kZWwnXVsnQGlkJ10gPT09IGZpbHRlck1ldGhvZFsnQGlkJ107XG5cbmV4cG9ydCBjb25zdCBncm91cHBlZFZhbHVlS2V5cyA9IFtcbiAgJ2RhdGVzJywgJ3NkJywgJ21pbicsICdtYXgnLCAnaW5wdXRzJywgJ2RlcHRoVXBwZXInLCAnZGVwdGhMb3dlcicsICdzdGFydERhdGUnLCAnZW5kRGF0ZScsXG4gICdtZXRob2RUaWVyJywgJ21ldGhvZE1vZGVsJ1xuXTtcblxuZXhwb3J0IGNvbnN0IGdyb3VwTm9kZXNCeVRlcm0gPSA8VCBleHRlbmRzIElDeWNsZUpTT05MRCB8IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEIHwgSVNpdGVKU09OTEQsIFI+KFxuICBub2RlczogVFtdID0gW10sXG4gIGtleTogJ2ltcGFjdHMnIHwgJ2VtaXNzaW9uc1Jlc291cmNlVXNlJyB8ICdpbnB1dHMnIHwgJ3Byb2R1Y3RzJyB8ICdwcmFjdGljZXMnIHwgJ2VtaXNzaW9ucycgfCAnbWVhc3VyZW1lbnRzJyxcbiAgb3JpZ2luYWxWYWx1ZXM6IFRbXSA9IFtdLFxuICBmaWx0ZXJNZXRob2Q/OiBUZXJtXG4pOiBJR3JvdXBlZE5vZGVzPFI+ID0+IHtcbiAgY29uc3QgZ3JvdXBzOiBJR3JvdXBlZE5vZGVzPFI+ID0gbm9kZXMucmVkdWNlKChwcmV2LCBub2RlLCBpbmRleCkgPT4gKG5vZGVba2V5XSB8fCBbXSkucmVkdWNlKChncm91cCwgYmxhbmtOb2RlKSA9PiB7XG4gICAgaWYgKCFpc01ldGhvZE1vZGVsQWxsb3dlZChibGFua05vZGUsIGZpbHRlck1ldGhvZCkpIHtcbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlSWQgPSBub2RlWydAaWQnXTtcbiAgICBjb25zdCB0ZXJtSWQgPSBibGFua05vZGUudGVybVsnQGlkJ107XG4gICAgZ3JvdXBbdGVybUlkXSA9IGdyb3VwW3Rlcm1JZF0gfHwge1xuICAgICAgdGVybTogYmxhbmtOb2RlLnRlcm0sXG4gICAgICBtZXRob2RUaWVyT3JkZXI6IG1ldGhvZFRpZXJPcmRlcihibGFua05vZGUubWV0aG9kVGllciksXG4gICAgICB2YWx1ZXM6IHt9LFxuICAgICAgb3JpZ2luYWxWYWx1ZXM6IHt9XG4gICAgfTtcbiAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdID0gZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXSB8fCB7IGluZGV4LCBub2RlczogW10sIHZhbHVlOiBbXSB9O1xuICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0ubm9kZXMucHVzaChibGFua05vZGUpO1xuICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0udmFsdWUgPSBjb25jYXRCbGFua05vZGVWYWx1ZShcbiAgICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0udmFsdWUsXG4gICAgICBibGFua05vZGUudmFsdWVcbiAgICApO1xuICAgIGdyb3VwcGVkVmFsdWVLZXlzLmZvckVhY2goYXJyYXlLZXkgPT4ge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBnZXQoYmxhbmtOb2RlLCBhcnJheUtleSwgW10pO1xuICAgICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gPSBbXG4gICAgICAgIC4uLihncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdW2FycmF5S2V5XSB8fCBbXSksXG4gICAgICAgIC4uLihBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXSlcbiAgICAgIF07XG4gICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwO1xuICB9LCBwcmV2KSwge30gYXMgSUdyb3VwZWROb2RlczxSPik7XG5cbiAgLy8gY29tcGlsZSBvcmlnaW5hbCB2YWx1ZXNcbiAgT2JqZWN0LnZhbHVlcyhncm91cHMpLm1hcChncm91cCA9PiB7XG4gICAgT2JqZWN0LmtleXMoZ3JvdXAudmFsdWVzKS5tYXAobm9kZUlkID0+IHtcbiAgICAgIGNvbnN0IHsgaW5kZXggfSA9IGdyb3VwLnZhbHVlc1tub2RlSWRdO1xuICAgICAgY29uc3QgdGVybUlkID0gZ3JvdXAudGVybVsnQGlkJ107XG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlID0gZ2V0KG9yaWdpbmFsVmFsdWVzLCBgWyR7aW5kZXh9XS4ke2tleX1gLCBbXSkuZmlsdGVyKCh2YWw6IGFueSkgPT4gdmFsLnRlcm1bJ0BpZCddID09PSB0ZXJtSWQpO1xuICAgICAgaWYgKG9yaWdpbmFsVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9yaWdpbmFsVmFsdWUucmVkdWNlKChhcnJheTogYW55W10sIGN1cnI6IGFueSkgPT4gY29uY2F0QmxhbmtOb2RlVmFsdWUoXG4gICAgICAgICAgYXJyYXksXG4gICAgICAgICAgY3Vyci52YWx1ZVxuICAgICAgICApLCBbXSk7XG4gICAgICAgIGdyb3VwLm9yaWdpbmFsVmFsdWVzW25vZGVJZF0gPSB7IHZhbHVlOiBwcm9wZXJ0eVZhbHVlKHZhbHVlKSB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBzO1xufTtcblxuZXhwb3J0IGNvbnN0IGVsbGlwc2lzID0gKHRleHQgPSAnJywgbWF4bGVuZ3RoID0gMjApID0+XG4gIHRleHQubGVuZ3RoID4gbWF4bGVuZ3RoID8gYCR7dGV4dC5zdWJzdHJpbmcoMCwgbWF4bGVuZ3RoKX0uLi5gIDogdGV4dDtcblxuY29uc3QgbWFwc1F1ZXJ5ID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PSc7XG5cbmV4cG9ydCBjb25zdCBtYXBzVXJsID0gKGxvY2F0aW9uPzogeyBsYXQ/OiBudW1iZXI7IGxuZz86IG51bWJlcjsgbmFtZT86IHN0cmluZyB9KSA9PlxuICBsb2NhdGlvbiA/IChcbiAgICBsb2NhdGlvbi5sYXQgJiYgbG9jYXRpb24ubG5nID9cbiAgICAgIGAke21hcHNRdWVyeX0ke2xvY2F0aW9uLmxhdH0sJHtsb2NhdGlvbi5sbmd9YCA6XG4gICAgICAobG9jYXRpb24ubmFtZSA/IGAke21hcHNRdWVyeX0ke2VuY29kZVVSSShsb2NhdGlvbi5uYW1lKX1gIDogdW5kZWZpbmVkKVxuICApIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3Qga2V5VG9MYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgYCR7a2V5WzBdLnRvVXBwZXJDYXNlKCl9JHtcbiAgICBrZXkucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxICQyJylcbiAgICAgIC5yZXBsYWNlKC8oW19dKShbYS16QS1aXSkvZywgZyA9PiBgICR7Z1sxXS50b1VwcGVyQ2FzZSgpfWApXG4gICAgICAuc3Vic3RyaW5nKDEpXG4gIH1gO1xuXG5leHBvcnQgY29uc3QgdG9EYXNoQ2FzZSA9ICh2YWx1ZT86IHN0cmluZykgPT5cbiAgdmFsdWUgP1xuICAgIHZhbHVlXG4gICAgICAvLyBoYW5kbGUgZGF0ZXMgZm9sbG93ZWQgYnkgY2FwaXRhbCBsZXR0ZXJcbiAgICAgIC5yZXBsYWNlKC8oW1xcZF17NH0pKFtBLVpdezF9KS9nLCBnID0+IGAke2cuc3Vic3RyaW5nKDAsIDQpfS0ke2dbNF0udG9Mb3dlckNhc2UoKX1gKVxuICAgICAgLy8gaGFuZGxlIG1vbGVjdWxlc1xuICAgICAgLnJlcGxhY2UoLyhbXFxkXXsxfVtBLVpdezF9KS9nLCBnID0+IGcudG9Mb3dlckNhc2UoKSlcbiAgICAgIC8vIGhhbmRsZSBhbGwgY2FwaXRhbCBsZXR0ZXJzXG4gICAgICAucmVwbGFjZSgvKFtBLVpdKS9nLCBnID0+IGAtJHtnWzBdLnRvTG93ZXJDYXNlKCl9YClcbiAgICAgIC8vIGhhbmRsZSB5ZWFyc1xuICAgICAgLnJlcGxhY2UoLyhbMC05XXs0fSkvZywgZyA9PiBgLSR7Z31gKSA6XG4gICAgbnVsbDtcblxuY29uc3Qgbm9kZURlZmF1bHRMYWJlbDoge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAoZGF0YTogSlNPTkxEPGFueT4pID0+IHN0cmluZztcbn0gPSB7XG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogKHsgbmFtZSwgY291bnRyeSwgZW5kRGF0ZSwgcHJvZHVjdCB9OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCkgPT5cbiAgICBuYW1lID8gbmFtZS5yZXBsYWNlKGAke3Byb2R1Y3Q/Lm5hbWV9LCBgLCAnJykgOiBbXG4gICAgICBwcm9kdWN0Py5uYW1lLFxuICAgICAgY291bnRyeT8ubmFtZSxcbiAgICAgIGVuZERhdGVcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpLFxuICBbTm9kZVR5cGUuU2l0ZV06ICh7IG5hbWUsIGRlc2NyaXB0aW9uIH06IElTaXRlSlNPTkxEKSA9PiBuYW1lIHx8IGRlc2NyaXB0aW9uIVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMYWJlbCA9IChub2RlPzogYW55KSA9PlxuICBub2RlID8gKFxuICAgIG5vZGVbJ0B0eXBlJ10gaW4gbm9kZURlZmF1bHRMYWJlbCA/IG5vZGVEZWZhdWx0TGFiZWxbbm9kZVsnQHR5cGUnXV0obm9kZSkgOiBub2RlLm5hbWVcbiAgKSB8fCBub2RlWydAaWQnXSB8fCBub2RlLmlkIDogJyc7XG5cbmV4cG9ydCBjb25zdCBpdGVtQ29sb3IgPSAoaW5kZXg6IG51bWJlcikgPT4gZ2V0Q29sb3IoeyB0ZXh0OiBgJHtpbmRleH1gIH0pO1xuXG5leHBvcnQgY29uc3QgbGlzdENvbG9yID0gPFQ+KF92OiBULCBpbmRleDogbnVtYmVyKTogc3RyaW5nID0+IGl0ZW1Db2xvcihpbmRleCk7XG5cbmV4cG9ydCBjb25zdCBlbXB0eVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IGlzRW1wdHkodmFsdWUpIHx8IGlzTmFOKHByb3BlcnR5VmFsdWUodmFsdWUpKTtcblxuZXhwb3J0IGNvbnN0IHJlcGVhdCA9ICh0aW1lcyA9IDApID0+IChBcnJheS5mcm9tKEFycmF5KHRpbWVzKSwgTWF0aC5yYW5kb20pKTtcblxuZXhwb3J0IGNvbnN0IGZpbGVuYW1lV2l0aG91dEV4dCA9IChmaWxlbmFtZSA9ICcnKSA9PiB7XG4gIGNvbnN0IGZpbGUgPSBmaWxlVG9FeHQoZmlsZW5hbWUsICcnKTtcbiAgLy8gcmVtb3ZlIGxhc3QgLlxuICByZXR1cm4gZmlsZS5lbmRzV2l0aCgnLicpID8gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sZW5ndGggLSAxKSA6IGZpbGU7XG59O1xuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFBb0Usa0JBQWtCLEVBQy9GLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLHdDQUF3QyxDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFFOUcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFOztJQUMxQixPQUFBLENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sMENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUM7UUFDN0MsOEJB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QUMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBSSxFQUFLLEVBQUUsS0FBYSxFQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDbEQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxnQkFBZ0I7SUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0ID0gcmVxdWlyZSgnbG9kYXNoLmdldCcpO1xuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICdyYW5kb20tbWF0ZXJpYWwtY29sb3InO1xuaW1wb3J0IHtcbiAgTm9kZVR5cGUsIFRlcm0sIEpTT05MRCwgSUN5Y2xlSlNPTkxELCBJU2l0ZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEVtaXNzaW9uTWV0aG9kVGllciwgSVRlcm1KU09OTERcbn0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgZmlsZVRvRXh0IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0QXJyYXlUcmVhdG1lbnQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2dsb3NzYXJ5JztcblxuZXhwb3J0IGNvbnN0IGdpdEhvbWUgPSAnaHR0cHM6Ly9naXRsYWIuY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0UmF3QmFzZVVybCA9ICdodHRwczovL2dsY2RuLmdpdGhhY2suY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0QnJhbmNoID0gKCkgPT4gWydkZXYnLCAnc3RhZ2luZyddLnNvbWUoZW52ID0+IGJhc2VVcmwoKS5pbmNsdWRlcyhlbnYpKSA/ICdkZXZlbG9wJyA6ICdtYXN0ZXInO1xuXG5leHBvcnQgY29uc3QgaXNDaHJvbWUgPSAoKSA9PiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJyk7XG5cbmV4cG9ydCBjb25zdCBiYXNlVXJsID0gKCkgPT5cbiAgd2luZG93LmxvY2F0aW9uLm9yaWdpbj8uaW5jbHVkZXMoJ2xvY2FsaG9zdCcpID9cbiAgICAnaHR0cHM6Ly93d3ctZGV2Lmhlc3RpYS5lYXJ0aCcgOlxuICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4/LmluY2x1ZGVzKCdoZXN0aWEuZWFydGgnKSA/XG4gICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luIDpcbiAgICAgICdodHRwczovL3d3dy5oZXN0aWEuZWFydGgnO1xuXG5leHBvcnQgY29uc3QgaXNFeHRlcm5hbCA9ICgpID0+IGJhc2VVcmwoKSAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcblxuY29uc3QgcGFyc2VFcnJvclN0YXR1cyA9IChlcnJvcjogYW55KSA9PiAoZXJyb3I/LnN0YXR1c1RleHQgfHwgJycpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzL2csICctJyk7XG5cbmNvbnN0IHBhcnNlRXJyb3JNZXNzYWdlID0gKGVycm9yOiBhbnkpID0+XG4gIGdldChlcnJvciwgJ2Vycm9yLmVycm9yJywgZ2V0KGVycm9yLCAnZXJyb3IubWVzc2FnZScsIGdldChlcnJvciwgJ2Vycm9yJywgZ2V0KGVycm9yLCAnbWVzc2FnZScsIGVycm9yKSkpKTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUFQSUVycm9yID0gKGVycm9yOiBhbnkpID0+IHtcbiAgdHJ5IHtcbiAgICBlcnJvciA9IHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgfVxuICBjYXRjaCAoXykgeyB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGVycm9yVGV4dCA9IChlcnJvcjogYW55KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cbiAgY29uc3QgZXJyID0gcGFyc2VFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICByZXR1cm4gcGFyc2VFcnJvclN0YXR1cyhlcnIpIHx8IGVycjtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJQYXJhbXMgPSAob2JqOiBhbnkpID0+IHtcbiAgY29uc3QgcmVzOiB7XG4gICAgW3g6IHN0cmluZ106IHN0cmluZztcbiAgfSA9IHt9O1xuICBPYmplY3Qua2V5cyhvYmopLnNvcnQoKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmpba2V5XTtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXNba2V5XSA9IGAke3ZhbHVlfWA7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlcztcbn07XG5cbmV4cG9ydCBjb25zdCB3YWl0Rm9yID0gKHZhcmlhYmxlOiBzdHJpbmcsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiB7XG4gIGlmICh2YXJpYWJsZSBpbiB3aW5kb3cpIHtcbiAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgfVxuICBzZXRUaW1lb3V0KCgpID0+IHdhaXRGb3IodmFyaWFibGUsIGNhbGxiYWNrKSwgMTAwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBib3R0b20gPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbmV4cG9ydCBjb25zdCBpc1Njcm9sbGVkQmVsb3cgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IGVsZW1lbnQgPyB3aW5kb3cuc2Nyb2xsWSA+IGJvdHRvbShlbGVtZW50KSA6IGZhbHNlO1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9FbCA9IChpZDogc3RyaW5nLCByZXRyaWVzID0gMCkgPT4ge1xuICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgc2V0VGltZW91dCgoKSA9PiBlbCA/IGVsLnNjcm9sbEludG9WaWV3KCkgOiAocmV0cmllcyA8IDEwID8gc2Nyb2xsVG9FbChpZCwgcmV0cmllcyArIDEpIDogbnVsbCksIDEwMCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9wID0gKCkgPT4gd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXG5leHBvcnQgY29uc3Qgc2FmZUpTT05QYXJzZSA9IDxUPih2YWx1ZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UodmFsdWUpIGFzIFQgOiB2YWx1ZTtcbiAgfVxuICBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OU3RyaW5naWZ5ID0gKHZhbHVlOiBzdHJpbmcpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcblxuZXhwb3J0IGNvbnN0IGFycmF5VmFsdWUgPSAodmFsdWVzOiBhbnlbXSwgaXNBdmVyYWdlOiBib29sZWFuKSA9PlxuICAodmFsdWVzIHx8IFtdKS5yZWR1Y2UoKHByZXY6IG51bWJlciwgY3VycikgPT4gcHJldiArIHBhcnNlRmxvYXQoYCR7Y3Vycn1gKSwgMCkgLyAoaXNBdmVyYWdlID8gdmFsdWVzLmxlbmd0aCA6IDEpO1xuXG5leHBvcnQgY29uc3QgcHJvcGVydHlWYWx1ZSA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgKChzdHJpbmcgfCBudW1iZXIpW10pLCB0ZXJtSWQ/OiBzdHJpbmcpOiBudW1iZXIgPT5cbiAgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCA/XG4gICAgbnVsbCBhcyBhbnkgOlxuICAgIChcbiAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpID9cbiAgICAgICAgYXJyYXlWYWx1ZSh2YWx1ZSwgKHRlcm1JZCA/IGdldEFycmF5VHJlYXRtZW50KHRlcm1JZCkgOiBudWxsKSA9PT0gJ21lYW4nKSA6XG4gICAgICAgIHBhcnNlRmxvYXQoYCR7dmFsdWV9YClcbiAgICApO1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZTxUPiB7XG4gIG5vZGVzOiBUW107XG4gIGluZGV4OiBudW1iZXI7XG4gIHZhbHVlOiBudW1iZXJbXTtcbiAgZGF0ZXM/OiBhbnlbXTtcbiAgc2Q/OiBudW1iZXJbXTtcbiAgbWluPzogbnVtYmVyW107XG4gIG1heD86IG51bWJlcltdO1xuICBpbnB1dHM/OiBhbnlbXTtcbiAgZGVwdGhVcHBlcj86IG51bWJlcltdO1xuICBkZXB0aExvd2VyPzogbnVtYmVyW107XG4gIHN0YXJ0RGF0ZT86IHN0cmluZ1tdO1xuICBlbmREYXRlPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZXM8VD4ge1xuICBbbm9kZUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+IHtcbiAgdGVybTogSVRlcm1KU09OTEQ7XG4gIC8qKlxuICAgKiBFbmFibGUgb3JkZXJpbmcgbnkgbWV0aG9kVGllclxuICAgKi9cbiAgbWV0aG9kVGllck9yZGVyOiBudW1iZXI7XG4gIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxUPjtcbiAgb3JpZ2luYWxWYWx1ZXM6IHtcbiAgICBbbm9kZUlkOiBzdHJpbmddOiB7XG4gICAgICB2YWx1ZTogbnVtYmVyO1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXM8VD4ge1xuICBbdGVybUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGVzVmFsdWU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWRLZXlzPFQ+IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBJR3JvdXBlZE5vZGVzVmFsdWU8VD47XG59XG5cbmV4cG9ydCBjb25zdCBncm91cHBlZEtleXMgPSA8VD4odmFsdWVzOiBJR3JvdXBlZE5vZGVzPFQ+KTogSUdyb3VwZWRLZXlzPFQ+W10gPT5cbiAgT2JqZWN0LmVudHJpZXModmFsdWVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHsga2V5LCB2YWx1ZSB9KSk7XG5cbmNvbnN0IGNvbmNhdEJsYW5rTm9kZVZhbHVlID0gKHZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpID0+IHtcbiAgY29uc3QgdmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgPyBuZXdWYWx1ZSA6IFtuZXdWYWx1ZV07XG4gIHJldHVybiBbLi4udmFsdWVBcnJheSwgLi4ubmV3VmFsdWVBcnJheV07XG59O1xuXG5jb25zdCBtZXRob2RUaWVyT3JkZXIgPSAobWV0aG9kVGllcjogRW1pc3Npb25NZXRob2RUaWVyKSA9PiBbXG4gIEVtaXNzaW9uTWV0aG9kVGllci5tZWFzdXJlZCxcbiAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDMnXSxcbiAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDInXSxcbiAgRW1pc3Npb25NZXRob2RUaWVyWyd0aWVyIDEnXSxcbiAgRW1pc3Npb25NZXRob2RUaWVyLmJhY2tncm91bmRcbl0uaW5kZXhPZihtZXRob2RUaWVyKTtcblxuY29uc3QgaXNNZXRob2RNb2RlbEFsbG93ZWQgPSAobm9kZTogYW55LCBmaWx0ZXJNZXRob2Q/OiBUZXJtKSA9PlxuICAhZmlsdGVyTWV0aG9kIHx8ICFub2RlWydtZXRob2RNb2RlbCddIHx8IG5vZGVbJ21ldGhvZE1vZGVsJ11bJ0BpZCddID09PSBmaWx0ZXJNZXRob2RbJ0BpZCddO1xuXG5leHBvcnQgY29uc3QgZ3JvdXBwZWRWYWx1ZUtleXMgPSBbXG4gICdkYXRlcycsICdzZCcsICdtaW4nLCAnbWF4JywgJ2lucHV0cycsICdkZXB0aFVwcGVyJywgJ2RlcHRoTG93ZXInLCAnc3RhcnREYXRlJywgJ2VuZERhdGUnLFxuICAnbWV0aG9kVGllcicsICdtZXRob2RNb2RlbCdcbl07XG5cbmV4cG9ydCBjb25zdCBncm91cE5vZGVzQnlUZXJtID0gPFQgZXh0ZW5kcyBJQ3ljbGVKU09OTEQgfCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCB8IElTaXRlSlNPTkxELCBSPihcbiAgbm9kZXM6IFRbXSA9IFtdLFxuICBrZXk6ICdpbXBhY3RzJyB8ICdlbWlzc2lvbnNSZXNvdXJjZVVzZScgfCAnaW5wdXRzJyB8ICdwcm9kdWN0cycgfCAncHJhY3RpY2VzJyB8ICdlbWlzc2lvbnMnIHwgJ21lYXN1cmVtZW50cycsXG4gIG9yaWdpbmFsVmFsdWVzOiBUW10gPSBbXSxcbiAgZmlsdGVyTWV0aG9kPzogVGVybVxuKTogSUdyb3VwZWROb2RlczxSPiA9PiB7XG4gIGNvbnN0IGdyb3VwczogSUdyb3VwZWROb2RlczxSPiA9IG5vZGVzLnJlZHVjZSgocHJldiwgbm9kZSwgaW5kZXgpID0+IChub2RlW2tleV0gfHwgW10pLnJlZHVjZSgoZ3JvdXAsIGJsYW5rTm9kZSkgPT4ge1xuICAgIGlmICghaXNNZXRob2RNb2RlbEFsbG93ZWQoYmxhbmtOb2RlLCBmaWx0ZXJNZXRob2QpKSB7XG4gICAgICByZXR1cm4gZ3JvdXA7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZUlkID0gbm9kZVsnQGlkJ107XG4gICAgY29uc3QgdGVybUlkID0gYmxhbmtOb2RlLnRlcm1bJ0BpZCddO1xuICAgIGdyb3VwW3Rlcm1JZF0gPSBncm91cFt0ZXJtSWRdIHx8IHtcbiAgICAgIHRlcm06IGJsYW5rTm9kZS50ZXJtLFxuICAgICAgbWV0aG9kVGllck9yZGVyOiBtZXRob2RUaWVyT3JkZXIoYmxhbmtOb2RlLm1ldGhvZFRpZXIpLFxuICAgICAgdmFsdWVzOiB7fSxcbiAgICAgIG9yaWdpbmFsVmFsdWVzOiB7fVxuICAgIH07XG4gICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXSA9IGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0gfHwgeyBpbmRleCwgbm9kZXM6IFtdLCB2YWx1ZTogW10gfTtcbiAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdLm5vZGVzLnB1c2goYmxhbmtOb2RlKTtcbiAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdLnZhbHVlID0gY29uY2F0QmxhbmtOb2RlVmFsdWUoXG4gICAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdLnZhbHVlLFxuICAgICAgYmxhbmtOb2RlLnZhbHVlXG4gICAgKTtcbiAgICBncm91cHBlZFZhbHVlS2V5cy5mb3JFYWNoKGFycmF5S2V5ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZ2V0KGJsYW5rTm9kZSwgYXJyYXlLZXksIFtdKTtcbiAgICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF1bYXJyYXlLZXldID0gW1xuICAgICAgICAuLi4oZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gfHwgW10pLFxuICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgPyBuZXdWYWx1ZSA6IFtuZXdWYWx1ZV0pXG4gICAgICBdO1xuICAgIH0pO1xuICAgIHJldHVybiBncm91cDtcbiAgfSwgcHJldiksIHt9IGFzIElHcm91cGVkTm9kZXM8Uj4pO1xuXG4gIC8vIGNvbXBpbGUgb3JpZ2luYWwgdmFsdWVzXG4gIE9iamVjdC52YWx1ZXMoZ3JvdXBzKS5tYXAoZ3JvdXAgPT4ge1xuICAgIE9iamVjdC5rZXlzKGdyb3VwLnZhbHVlcykubWFwKG5vZGVJZCA9PiB7XG4gICAgICBjb25zdCB7IGluZGV4IH0gPSBncm91cC52YWx1ZXNbbm9kZUlkXTtcbiAgICAgIGNvbnN0IHRlcm1JZCA9IGdyb3VwLnRlcm1bJ0BpZCddO1xuICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IGdldChvcmlnaW5hbFZhbHVlcywgYFske2luZGV4fV0uJHtrZXl9YCwgW10pLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbC50ZXJtWydAaWQnXSA9PT0gdGVybUlkKTtcbiAgICAgIGlmIChvcmlnaW5hbFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBvcmlnaW5hbFZhbHVlLnJlZHVjZSgoYXJyYXk6IGFueVtdLCBjdXJyOiBhbnkpID0+IGNvbmNhdEJsYW5rTm9kZVZhbHVlKFxuICAgICAgICAgIGFycmF5LFxuICAgICAgICAgIGN1cnIudmFsdWVcbiAgICAgICAgKSwgW10pO1xuICAgICAgICBncm91cC5vcmlnaW5hbFZhbHVlc1tub2RlSWRdID0geyB2YWx1ZTogcHJvcGVydHlWYWx1ZSh2YWx1ZSwgdGVybUlkKSB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBzO1xufTtcblxuZXhwb3J0IGNvbnN0IGVsbGlwc2lzID0gKHRleHQgPSAnJywgbWF4bGVuZ3RoID0gMjApID0+XG4gIHRleHQubGVuZ3RoID4gbWF4bGVuZ3RoID8gYCR7dGV4dC5zdWJzdHJpbmcoMCwgbWF4bGVuZ3RoKX0uLi5gIDogdGV4dDtcblxuY29uc3QgbWFwc1F1ZXJ5ID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PSc7XG5cbmV4cG9ydCBjb25zdCBtYXBzVXJsID0gKGxvY2F0aW9uPzogeyBsYXQ/OiBudW1iZXI7IGxuZz86IG51bWJlcjsgbmFtZT86IHN0cmluZyB9KSA9PlxuICBsb2NhdGlvbiA/IChcbiAgICBsb2NhdGlvbi5sYXQgJiYgbG9jYXRpb24ubG5nID9cbiAgICAgIGAke21hcHNRdWVyeX0ke2xvY2F0aW9uLmxhdH0sJHtsb2NhdGlvbi5sbmd9YCA6XG4gICAgICAobG9jYXRpb24ubmFtZSA/IGAke21hcHNRdWVyeX0ke2VuY29kZVVSSShsb2NhdGlvbi5uYW1lKX1gIDogdW5kZWZpbmVkKVxuICApIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3Qga2V5VG9MYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgYCR7a2V5WzBdLnRvVXBwZXJDYXNlKCl9JHtcbiAgICBrZXkucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxICQyJylcbiAgICAgIC5yZXBsYWNlKC8oW19dKShbYS16QS1aXSkvZywgZyA9PiBgICR7Z1sxXS50b1VwcGVyQ2FzZSgpfWApXG4gICAgICAuc3Vic3RyaW5nKDEpXG4gIH1gO1xuXG5leHBvcnQgY29uc3QgdG9EYXNoQ2FzZSA9ICh2YWx1ZT86IHN0cmluZykgPT5cbiAgdmFsdWUgP1xuICAgIHZhbHVlXG4gICAgICAvLyBoYW5kbGUgZGF0ZXMgZm9sbG93ZWQgYnkgY2FwaXRhbCBsZXR0ZXJcbiAgICAgIC5yZXBsYWNlKC8oW1xcZF17NH0pKFtBLVpdezF9KS9nLCBnID0+IGAke2cuc3Vic3RyaW5nKDAsIDQpfS0ke2dbNF0udG9Mb3dlckNhc2UoKX1gKVxuICAgICAgLy8gaGFuZGxlIG1vbGVjdWxlc1xuICAgICAgLnJlcGxhY2UoLyhbXFxkXXsxfVtBLVpdezF9KS9nLCBnID0+IGcudG9Mb3dlckNhc2UoKSlcbiAgICAgIC8vIGhhbmRsZSBhbGwgY2FwaXRhbCBsZXR0ZXJzXG4gICAgICAucmVwbGFjZSgvKFtBLVpdKS9nLCBnID0+IGAtJHtnWzBdLnRvTG93ZXJDYXNlKCl9YClcbiAgICAgIC8vIGhhbmRsZSB5ZWFyc1xuICAgICAgLnJlcGxhY2UoLyhbMC05XXs0fSkvZywgZyA9PiBgLSR7Z31gKSA6XG4gICAgbnVsbDtcblxuY29uc3Qgbm9kZURlZmF1bHRMYWJlbDoge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAoZGF0YTogSlNPTkxEPGFueT4pID0+IHN0cmluZztcbn0gPSB7XG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogKHsgbmFtZSwgY291bnRyeSwgZW5kRGF0ZSwgcHJvZHVjdCB9OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCkgPT5cbiAgICBuYW1lID8gbmFtZS5yZXBsYWNlKGAke3Byb2R1Y3Q/Lm5hbWV9LCBgLCAnJykgOiBbXG4gICAgICBwcm9kdWN0Py5uYW1lLFxuICAgICAgY291bnRyeT8ubmFtZSxcbiAgICAgIGVuZERhdGVcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpLFxuICBbTm9kZVR5cGUuU2l0ZV06ICh7IG5hbWUsIGRlc2NyaXB0aW9uIH06IElTaXRlSlNPTkxEKSA9PiBuYW1lIHx8IGRlc2NyaXB0aW9uIVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMYWJlbCA9IChub2RlPzogYW55KSA9PlxuICBub2RlID8gKFxuICAgIG5vZGVbJ0B0eXBlJ10gaW4gbm9kZURlZmF1bHRMYWJlbCA/IG5vZGVEZWZhdWx0TGFiZWxbbm9kZVsnQHR5cGUnXV0obm9kZSkgOiBub2RlLm5hbWVcbiAgKSB8fCBub2RlWydAaWQnXSB8fCBub2RlLmlkIDogJyc7XG5cbmV4cG9ydCBjb25zdCBpdGVtQ29sb3IgPSAoaW5kZXg6IG51bWJlcikgPT4gZ2V0Q29sb3IoeyB0ZXh0OiBgJHtpbmRleH1gIH0pO1xuXG5leHBvcnQgY29uc3QgbGlzdENvbG9yID0gPFQ+KF92OiBULCBpbmRleDogbnVtYmVyKTogc3RyaW5nID0+IGl0ZW1Db2xvcihpbmRleCk7XG5cbmV4cG9ydCBjb25zdCBlbXB0eVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IGlzRW1wdHkodmFsdWUpIHx8IGlzTmFOKHByb3BlcnR5VmFsdWUodmFsdWUpKTtcblxuZXhwb3J0IGNvbnN0IHJlcGVhdCA9ICh0aW1lcyA9IDApID0+IChBcnJheS5mcm9tKEFycmF5KHRpbWVzKSwgTWF0aC5yYW5kb20pKTtcblxuZXhwb3J0IGNvbnN0IGZpbGVuYW1lV2l0aG91dEV4dCA9IChmaWxlbmFtZSA9ICcnKSA9PiB7XG4gIGNvbnN0IGZpbGUgPSBmaWxlVG9FeHQoZmlsZW5hbWUsICcnKTtcbiAgLy8gcmVtb3ZlIGxhc3QgLlxuICByZXR1cm4gZmlsZS5lbmRzV2l0aCgnLicpID8gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sZW5ndGggLSAxKSA6IGZpbGU7XG59O1xuIl19
@@ -72,7 +72,7 @@ export class CyclesActivityComponent {
72
72
  }
73
73
  }
74
74
  CyclesActivityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesActivityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
- CyclesActivityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesActivityComponent, selector: "he-cycles-activity", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"inputs.length || products.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{inputs.length + products.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.name\"\n >\n <he-node-link [node]=\"product.value.term\">\n <span>{{product.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.name\"\n >\n <he-node-link [node]=\"input.value.term\">\n <span>{{input.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.units\"\n >{{product.value.term.units}}</th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.units\"\n >{{input.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <td class=\"width-auto\" [attr.title]=\"cycle.name\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{cycle.name || cycle.id}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycle\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let product of products\">\n <span *ngIf=\"product.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: product.value.values[cycle['@id']], cycle: cycle, key: 'products' })\"\n >\n <span pointer>{{propertyValue(product.value.values[cycle['@id']].value) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"product.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let input of inputs\">\n <span *ngIf=\"input.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: input.value.values[cycle['@id']], cycle: cycle, key: 'inputs' })\"\n >\n <span pointer>{{propertyValue(input.value.values[cycle['@id']].value) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"input.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\"></he-blank-node-state-notice>\n\n <he-cycles-suggest-form *ngIf=\"enableCompare\" [cycles]=\"cycles\" (cycleAdded)=\"addCycle($event)\"></he-cycles-suggest-form>\n </div>\n\n <he-cycles-activity-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [original]=\"originalValues[0]\"\n [recalculated]=\"cycles[0]\"\n ></he-cycles-activity-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-inputs-products.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.inputs.', 'cycle.products.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No activity data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { type: i6.CyclesSuggestFormComponent, selector: "he-cycles-suggest-form", inputs: ["cycles"], outputs: ["cycleAdded"] }, { type: i7.CyclesActivityLogsComponent, selector: "he-cycles-activity-logs", inputs: ["original", "recalculated"] }, { type: i8.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i9.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i12.EllipsisPipe, "default": i13.DefaultPipe, "precision": i14.PrecisionPipe } });
75
+ CyclesActivityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesActivityComponent, selector: "he-cycles-activity", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"inputs.length || products.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{inputs.length + products.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.name\"\n >\n <he-node-link [node]=\"product.value.term\">\n <span>{{product.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.name\"\n >\n <he-node-link [node]=\"input.value.term\">\n <span>{{input.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.units\"\n >{{product.value.term.units}}</th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.units\"\n >{{input.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <td class=\"width-auto\" [attr.title]=\"cycle.name\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{cycle.name || cycle.id}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycle\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let product of products\">\n <span *ngIf=\"product.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: product.value.values[cycle['@id']], cycle: cycle, key: 'products' })\"\n >\n <span pointer>{{propertyValue(product.value.values[cycle['@id']].value, product.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"product.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let input of inputs\">\n <span *ngIf=\"input.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: input.value.values[cycle['@id']], cycle: cycle, key: 'inputs' })\"\n >\n <span pointer>{{propertyValue(input.value.values[cycle['@id']].value, input.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"input.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\"></he-blank-node-state-notice>\n\n <he-cycles-suggest-form *ngIf=\"enableCompare\" [cycles]=\"cycles\" (cycleAdded)=\"addCycle($event)\"></he-cycles-suggest-form>\n </div>\n\n <he-cycles-activity-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [original]=\"originalValues[0]\"\n [recalculated]=\"cycles[0]\"\n ></he-cycles-activity-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-inputs-products.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.inputs.', 'cycle.products.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No activity data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { type: i6.CyclesSuggestFormComponent, selector: "he-cycles-suggest-form", inputs: ["cycles"], outputs: ["cycleAdded"] }, { type: i7.CyclesActivityLogsComponent, selector: "he-cycles-activity-logs", inputs: ["original", "recalculated"] }, { type: i8.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i9.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i12.EllipsisPipe, "default": i13.DefaultPipe, "precision": i14.PrecisionPipe } });
76
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesActivityComponent, decorators: [{
77
77
  type: Component,
78
78
  args: [{
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
89
89
  }], enableCompare: [{
90
90
  type: Input
91
91
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWFjdGl2aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jeWNsZXMvY3ljbGVzLWFjdGl2aXR5L2N5Y2xlcy1hY3Rpdml0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1hY3Rpdml0eS9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBZ0IsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBSDdDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBSzFDLElBQUssSUFHSjtBQUhELFdBQUssSUFBSTtJQUNQLHVCQUFlLENBQUE7SUFDZixxQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhJLElBQUksS0FBSixJQUFJLFFBR1I7QUFPRCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBT1MsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBSTVCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXJCLFlBQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTFCLFdBQU0sR0FBZ0MsRUFBRSxDQUFDO1FBQ3pDLGFBQVEsR0FBNEIsRUFBRSxDQUFDO0tBdUMvQztJQXJDQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxXQUFXLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYyxFQUFFLElBQWtCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBNEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUF3QixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxzQkFBc0I7SUFFVCxRQUFRLENBQUMsS0FBbUI7O1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ1osR0FBRyxJQUFJLENBQUMsTUFBTTtnQkFDZCxLQUFLO2FBQ04sQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7S0FBQTs7cUhBdkRVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLHVNQ2xCcEMsMHJNQStJQTs0RkQ3SGEsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNoRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJbnB1dCBhcyBIZXN0aWFJbnB1dCwgUHJvZHVjdCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmNvbnN0IG9yZGVyQnkgPSByZXF1aXJlKCdsb2Rhc2gub3JkZXJieScpO1xuXG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlLCBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cyB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBiYXNlVXJsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuZW51bSBWaWV3IHtcbiAgdGFibGUgPSAndGFibGUnLFxuICBsb2dzID0gJ2xvZ3MnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1hY3Rpdml0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNBY3Rpdml0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcmlnaW5hbFZhbHVlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGN5Y2xlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFTdGF0ZT86IERhdGFTdGF0ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZUNvbXBhcmUgPSB0cnVlO1xuXG4gIHB1YmxpYyBiYXNlVXJsID0gYmFzZVVybCgpO1xuICBwdWJsaWMgcHJvcGVydHlWYWx1ZSA9IHByb3BlcnR5VmFsdWU7XG4gIHB1YmxpYyBzaG93RG93bmxvYWQgPSBmYWxzZTtcbiAgcHVibGljIFZpZXcgPSBWaWV3O1xuICBwdWJsaWMgc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcblxuICBwdWJsaWMgaW5wdXRzOiBJR3JvdXBlZEtleXM8SGVzdGlhSW5wdXQ+W10gPSBbXTtcbiAgcHVibGljIHByb2R1Y3RzOiBJR3JvdXBlZEtleXM8UHJvZHVjdD5bXSA9IFtdO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2N5Y2xlcycgaW4gY2hhbmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICAgIGlmICgnZGF0YVN0YXRlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmlldyA9IFZpZXcudGFibGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJZChfaW5kZXg6IG51bWJlciwgaXRlbTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIGl0ZW1bJ0BpZCddO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09yaWdpbmFsKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZSA9PT0gRGF0YVN0YXRlLm9yaWdpbmFsO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgY29uc3QgaW5wdXRzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgSGVzdGlhSW5wdXQ+KHRoaXMuY3ljbGVzLCAnaW5wdXRzJywgdGhpcy5vcmlnaW5hbFZhbHVlcyk7XG4gICAgdGhpcy5pbnB1dHMgPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhpbnB1dHNQZXJDeWNsZSksIFsna2V5J10sIFsnYXNjJ10pO1xuICAgIGNvbnN0IHByb2R1Y3RzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgUHJvZHVjdD4odGhpcy5jeWNsZXMsICdwcm9kdWN0cycsIHRoaXMub3JpZ2luYWxWYWx1ZXMpO1xuICAgIHRoaXMucHJvZHVjdHMgPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhwcm9kdWN0c1BlckN5Y2xlKSwgWydrZXknXSwgWydhc2MnXSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUG9wb3Zlcihwb3BvdmVyOiBhbnksIGNvbnRleHQ6IGFueSkge1xuICAgIHJldHVybiBwb3BvdmVyLmlzT3BlbigpID8gcG9wb3Zlci5jbG9zZSgpIDogcG9wb3Zlci5vcGVuKGNvbnRleHQpO1xuICB9XG5cbiAgLy8gQWRkIGZyb20gc3VnZ2VzdGlvblxuXG4gIHB1YmxpYyBhc3luYyBhZGRDeWNsZShjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgdGhpcy5jeWNsZXMgPSBbXG4gICAgICAuLi50aGlzLmN5Y2xlcyxcbiAgICAgIGN5Y2xlXG4gICAgXTtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0cy5sZW5ndGggfHwgcHJvZHVjdHMubGVuZ3RoOyBlbHNlIGVtcHR5VGFibGVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtdmFyaWFibGUgaXMtMiBtLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLWhpZGRlbi1tb2JpbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcudGFibGVcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJsaXN0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+VGFibGUgdmlldzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCIgKm5nSWY9XCIhaXNPcmlnaW5hbCAmJiBjeWNsZXMubGVuZ3RoID09PSAxXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmxvZ3NcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5sb2dzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImNhbGN1bGF0b3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5SZWNhbGN1bGF0aW9ucyBsb2dzPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtMyBwYi0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcudGFibGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGFzLXRleHQtcmlnaHQgbWItMlwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIGlzLXNtYWxsXCIgKGNsaWNrKT1cInNob3dEb3dubG9hZCA9IHRydWVcIj5cbiAgICAgICAgPGZhLWljb24gaWNvbj1cImRvd25sb2FkXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTJcIj5Eb3dubG9hZCAoQ1NWKTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBkYXRhLXRhYmxlLWNvbnRhaW5lciBtYi0xXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBpcy1uYXJyb3cgZGF0YS10YWJsZSBoYXMtY2hpbGRyZW4te3tpbnB1dHMubGVuZ3RoICsgcHJvZHVjdHMubGVuZ3RofX1cIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcm9kdWN0LnZhbHVlLnRlcm0ubmFtZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwicHJvZHVjdC52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3twcm9kdWN0LnZhbHVlLnRlcm0ubmFtZSB8IGVsbGlwc2lzOjMwfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgaW5wdXRzXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaW5wdXQudmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJpbnB1dC52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tpbnB1dC52YWx1ZS50ZXJtLm5hbWUgfCBlbGxpcHNpczozMH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hL0N5Y2xlI2Z1bmN0aW9uYWxVbml0J1wiIHRhcmdldD1cIl9ibGFua1wiPkZ1bmN0aW9uYWwgdW5pdDwvYT5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcm9kdWN0LnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgPnt7cHJvZHVjdC52YWx1ZS50ZXJtLnVuaXRzfX08L3RoPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBpbnB1dHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpbnB1dC52YWx1ZS50ZXJtLnVuaXRzXCJcbiAgICAgICAgICAgID57e2lucHV0LnZhbHVlLnRlcm0udW5pdHN9fTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgY3ljbGUgb2YgY3ljbGVzOyB0cmFja0J5OiB0cmFja0J5SWQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG9cIiBbYXR0ci50aXRsZV09XCJjeWNsZS5uYW1lXCI+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiY3ljbGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLW5vd3JhcCBoYXMtdGV4dC1lbGxpcHNpc1wiPnt7aSArIDF9fS4ge3tjeWNsZS5uYW1lIHx8IGN5Y2xlLmlkfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGhlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZSBbY3ljbGVdPVwiY3ljbGVcIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJpcy1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyLXBvcG92ZXJcIlxuICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBvcG92ZXIocCwgeyBkYXRhOiBwcm9kdWN0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ3Byb2R1Y3RzJyB9KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBwb2ludGVyPnt7cHJvcGVydHlWYWx1ZShwcm9kdWN0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwicHJvZHVjdC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS5ub2Rlc1swXVwiXG4gICAgICAgICAgICAgICAgICBrZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlzLW5vd3JhcFwiICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBpbnB1dHNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnB1dC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXTsgZWxzZSBlbXB0eVZhbHVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgW25nYlBvcG92ZXJdPVwiZGV0YWlsc1wiIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcbiAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiICNwPVwibmdiUG9wb3ZlclwiIHBsYWNlbWVudD1cImxlZnRcIiBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3ZlcihwLCB7IGRhdGE6IGlucHV0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ2lucHV0cycgfSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gcG9pbnRlcj57e3Byb3BlcnR5VmFsdWUoaW5wdXQudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0udmFsdWUpIHwgcHJlY2lzaW9uOjMgfCBkZWZhdWx0OictJ319PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgICAgICAgICBbbm9kZV09XCJpbnB1dC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS5ub2Rlc1swXVwiXG4gICAgICAgICAgICAgICAgICBrZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZSBbZGF0YVN0YXRlXT1cImRhdGFTdGF0ZVwiPjwvaGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2U+XG5cbiAgICA8aGUtY3ljbGVzLXN1Z2dlc3QtZm9ybSAqbmdJZj1cImVuYWJsZUNvbXBhcmVcIiBbY3ljbGVzXT1cImN5Y2xlc1wiIChjeWNsZUFkZGVkKT1cImFkZEN5Y2xlKCRldmVudClcIj48L2hlLWN5Y2xlcy1zdWdnZXN0LWZvcm0+XG4gIDwvZGl2PlxuXG4gIDxoZS1jeWNsZXMtYWN0aXZpdHktbG9ncyAqbmdJZj1cInNlbGVjdGVkVmlldyA9PT0gVmlldy5sb2dzICYmICFpc09yaWdpbmFsXCJcbiAgICBbb3JpZ2luYWxdPVwib3JpZ2luYWxWYWx1ZXNbMF1cIlxuICAgIFtyZWNhbGN1bGF0ZWRdPVwiY3ljbGVzWzBdXCJcbiAgPjwvaGUtY3ljbGVzLWFjdGl2aXR5LWxvZ3M+XG48L25nLWNvbnRhaW5lcj5cblxuPGhlLW5vZGUtY3N2LWV4cG9ydC1jb25maXJtICpuZ0lmPVwic2hvd0Rvd25sb2FkXCJcbiAgW25vZGVzXT1cImN5Y2xlc1wiIGZpbGVuYW1lPVwiY3ljbGUtaW5wdXRzLXByb2R1Y3RzLmNzdlwiIFtpc1VwbG9hZF09XCJmYWxzZVwiXG4gIFtoZWFkZXJLZXlzXT1cIlsnY3ljbGUuaWQnLCAnY3ljbGUuQGlkJywgJ2N5Y2xlLmlucHV0cy4nLCAnY3ljbGUucHJvZHVjdHMuJ11cIlxuICAoY2xvc2VkKT1cInNob3dEb3dubG9hZCA9IGZhbHNlXCJcbj48L2hlLW5vZGUtY3N2LWV4cG9ydC1jb25maXJtPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5VGFibGU+XG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1ibG9ja1wiPlxuICAgIDxzcGFuPk5vIGFjdGl2aXR5IGRhdGE8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVZhbHVlPlxuICA8c3Bhbj4tPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZXRhaWxzIGxldC1ub2RlPVwiY3ljbGVcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQta2V5PVwia2V5XCI+XG4gIDxwPjxiPnt7bm9kZS5uYW1lfX08L2I+PC9wPlxuICA8aGUtbm9kZS12YWx1ZS1kZXRhaWxzXG4gICAgW2RhdGFdPVwiZGF0YVwiIFtub2RlVHlwZV09XCJub2RlWydAdHlwZSddXCIgW2RhdGFLZXldPVwia2V5XCJcbiAgPjwvaGUtbm9kZS12YWx1ZS1kZXRhaWxzPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWFjdGl2aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jeWNsZXMvY3ljbGVzLWFjdGl2aXR5L2N5Y2xlcy1hY3Rpdml0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1hY3Rpdml0eS9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBZ0IsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBSDdDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBSzFDLElBQUssSUFHSjtBQUhELFdBQUssSUFBSTtJQUNQLHVCQUFlLENBQUE7SUFDZixxQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhJLElBQUksS0FBSixJQUFJLFFBR1I7QUFPRCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBT1MsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBSTVCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXJCLFlBQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTFCLFdBQU0sR0FBZ0MsRUFBRSxDQUFDO1FBQ3pDLGFBQVEsR0FBNEIsRUFBRSxDQUFDO0tBdUMvQztJQXJDQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxXQUFXLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYyxFQUFFLElBQWtCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBNEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUF3QixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxzQkFBc0I7SUFFVCxRQUFRLENBQUMsS0FBbUI7O1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ1osR0FBRyxJQUFJLENBQUMsTUFBTTtnQkFDZCxLQUFLO2FBQ04sQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7S0FBQTs7cUhBdkRVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLHVNQ2xCcEMsOHVNQStJQTs0RkQ3SGEsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNoRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJbnB1dCBhcyBIZXN0aWFJbnB1dCwgUHJvZHVjdCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmNvbnN0IG9yZGVyQnkgPSByZXF1aXJlKCdsb2Rhc2gub3JkZXJieScpO1xuXG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlLCBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cyB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBiYXNlVXJsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuZW51bSBWaWV3IHtcbiAgdGFibGUgPSAndGFibGUnLFxuICBsb2dzID0gJ2xvZ3MnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1hY3Rpdml0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNBY3Rpdml0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcmlnaW5hbFZhbHVlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGN5Y2xlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFTdGF0ZT86IERhdGFTdGF0ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZUNvbXBhcmUgPSB0cnVlO1xuXG4gIHB1YmxpYyBiYXNlVXJsID0gYmFzZVVybCgpO1xuICBwdWJsaWMgcHJvcGVydHlWYWx1ZSA9IHByb3BlcnR5VmFsdWU7XG4gIHB1YmxpYyBzaG93RG93bmxvYWQgPSBmYWxzZTtcbiAgcHVibGljIFZpZXcgPSBWaWV3O1xuICBwdWJsaWMgc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcblxuICBwdWJsaWMgaW5wdXRzOiBJR3JvdXBlZEtleXM8SGVzdGlhSW5wdXQ+W10gPSBbXTtcbiAgcHVibGljIHByb2R1Y3RzOiBJR3JvdXBlZEtleXM8UHJvZHVjdD5bXSA9IFtdO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2N5Y2xlcycgaW4gY2hhbmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICAgIGlmICgnZGF0YVN0YXRlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmlldyA9IFZpZXcudGFibGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJZChfaW5kZXg6IG51bWJlciwgaXRlbTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIGl0ZW1bJ0BpZCddO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09yaWdpbmFsKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZSA9PT0gRGF0YVN0YXRlLm9yaWdpbmFsO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgY29uc3QgaW5wdXRzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgSGVzdGlhSW5wdXQ+KHRoaXMuY3ljbGVzLCAnaW5wdXRzJywgdGhpcy5vcmlnaW5hbFZhbHVlcyk7XG4gICAgdGhpcy5pbnB1dHMgPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhpbnB1dHNQZXJDeWNsZSksIFsna2V5J10sIFsnYXNjJ10pO1xuICAgIGNvbnN0IHByb2R1Y3RzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgUHJvZHVjdD4odGhpcy5jeWNsZXMsICdwcm9kdWN0cycsIHRoaXMub3JpZ2luYWxWYWx1ZXMpO1xuICAgIHRoaXMucHJvZHVjdHMgPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhwcm9kdWN0c1BlckN5Y2xlKSwgWydrZXknXSwgWydhc2MnXSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUG9wb3Zlcihwb3BvdmVyOiBhbnksIGNvbnRleHQ6IGFueSkge1xuICAgIHJldHVybiBwb3BvdmVyLmlzT3BlbigpID8gcG9wb3Zlci5jbG9zZSgpIDogcG9wb3Zlci5vcGVuKGNvbnRleHQpO1xuICB9XG5cbiAgLy8gQWRkIGZyb20gc3VnZ2VzdGlvblxuXG4gIHB1YmxpYyBhc3luYyBhZGRDeWNsZShjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgdGhpcy5jeWNsZXMgPSBbXG4gICAgICAuLi50aGlzLmN5Y2xlcyxcbiAgICAgIGN5Y2xlXG4gICAgXTtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0cy5sZW5ndGggfHwgcHJvZHVjdHMubGVuZ3RoOyBlbHNlIGVtcHR5VGFibGVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtdmFyaWFibGUgaXMtMiBtLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLWhpZGRlbi1tb2JpbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcudGFibGVcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJsaXN0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+VGFibGUgdmlldzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCIgKm5nSWY9XCIhaXNPcmlnaW5hbCAmJiBjeWNsZXMubGVuZ3RoID09PSAxXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmxvZ3NcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5sb2dzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImNhbGN1bGF0b3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5SZWNhbGN1bGF0aW9ucyBsb2dzPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtMyBwYi0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcudGFibGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGFzLXRleHQtcmlnaHQgbWItMlwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIGlzLXNtYWxsXCIgKGNsaWNrKT1cInNob3dEb3dubG9hZCA9IHRydWVcIj5cbiAgICAgICAgPGZhLWljb24gaWNvbj1cImRvd25sb2FkXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTJcIj5Eb3dubG9hZCAoQ1NWKTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBkYXRhLXRhYmxlLWNvbnRhaW5lciBtYi0xXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBpcy1uYXJyb3cgZGF0YS10YWJsZSBoYXMtY2hpbGRyZW4te3tpbnB1dHMubGVuZ3RoICsgcHJvZHVjdHMubGVuZ3RofX1cIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcm9kdWN0LnZhbHVlLnRlcm0ubmFtZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwicHJvZHVjdC52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3twcm9kdWN0LnZhbHVlLnRlcm0ubmFtZSB8IGVsbGlwc2lzOjMwfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgaW5wdXRzXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaW5wdXQudmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJpbnB1dC52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tpbnB1dC52YWx1ZS50ZXJtLm5hbWUgfCBlbGxpcHNpczozMH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hL0N5Y2xlI2Z1bmN0aW9uYWxVbml0J1wiIHRhcmdldD1cIl9ibGFua1wiPkZ1bmN0aW9uYWwgdW5pdDwvYT5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcm9kdWN0LnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgPnt7cHJvZHVjdC52YWx1ZS50ZXJtLnVuaXRzfX08L3RoPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBpbnB1dHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpbnB1dC52YWx1ZS50ZXJtLnVuaXRzXCJcbiAgICAgICAgICAgID57e2lucHV0LnZhbHVlLnRlcm0udW5pdHN9fTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgY3ljbGUgb2YgY3ljbGVzOyB0cmFja0J5OiB0cmFja0J5SWQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG9cIiBbYXR0ci50aXRsZV09XCJjeWNsZS5uYW1lXCI+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiY3ljbGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLW5vd3JhcCBoYXMtdGV4dC1lbGxpcHNpc1wiPnt7aSArIDF9fS4ge3tjeWNsZS5uYW1lIHx8IGN5Y2xlLmlkfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGhlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZSBbY3ljbGVdPVwiY3ljbGVcIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJpcy1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyLXBvcG92ZXJcIlxuICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBvcG92ZXIocCwgeyBkYXRhOiBwcm9kdWN0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ3Byb2R1Y3RzJyB9KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBwb2ludGVyPnt7cHJvcGVydHlWYWx1ZShwcm9kdWN0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlLCBwcm9kdWN0LnZhbHVlLnRlcm1bJ0BpZCddKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwicHJvZHVjdC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS5ub2Rlc1swXVwiXG4gICAgICAgICAgICAgICAgICBrZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlzLW5vd3JhcFwiICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBpbnB1dHNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnB1dC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXTsgZWxzZSBlbXB0eVZhbHVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgW25nYlBvcG92ZXJdPVwiZGV0YWlsc1wiIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcbiAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiICNwPVwibmdiUG9wb3ZlclwiIHBsYWNlbWVudD1cImxlZnRcIiBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3ZlcihwLCB7IGRhdGE6IGlucHV0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ2lucHV0cycgfSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gcG9pbnRlcj57e3Byb3BlcnR5VmFsdWUoaW5wdXQudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0udmFsdWUsIGlucHV0LnZhbHVlLnRlcm1bJ0BpZCddKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwiaW5wdXQudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0ubm9kZXNbMF1cIlxuICAgICAgICAgICAgICAgICAga2V5PVwidmFsdWVcIlxuICAgICAgICAgICAgICAgID48L2hlLWJsYW5rLW5vZGUtc3RhdGU+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2UgW2RhdGFTdGF0ZV09XCJkYXRhU3RhdGVcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuXG4gICAgPGhlLWN5Y2xlcy1zdWdnZXN0LWZvcm0gKm5nSWY9XCJlbmFibGVDb21wYXJlXCIgW2N5Y2xlc109XCJjeWNsZXNcIiAoY3ljbGVBZGRlZCk9XCJhZGRDeWNsZSgkZXZlbnQpXCI+PC9oZS1jeWNsZXMtc3VnZ2VzdC1mb3JtPlxuICA8L2Rpdj5cblxuICA8aGUtY3ljbGVzLWFjdGl2aXR5LWxvZ3MgKm5nSWY9XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9ncyAmJiAhaXNPcmlnaW5hbFwiXG4gICAgW29yaWdpbmFsXT1cIm9yaWdpbmFsVmFsdWVzWzBdXCJcbiAgICBbcmVjYWxjdWxhdGVkXT1cImN5Y2xlc1swXVwiXG4gID48L2hlLWN5Y2xlcy1hY3Rpdml0eS1sb2dzPlxuPC9uZy1jb250YWluZXI+XG5cbjxoZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybSAqbmdJZj1cInNob3dEb3dubG9hZFwiXG4gIFtub2Rlc109XCJjeWNsZXNcIiBmaWxlbmFtZT1cImN5Y2xlLWlucHV0cy1wcm9kdWN0cy5jc3ZcIiBbaXNVcGxvYWRdPVwiZmFsc2VcIlxuICBbaGVhZGVyS2V5c109XCJbJ2N5Y2xlLmlkJywgJ2N5Y2xlLkBpZCcsICdjeWNsZS5pbnB1dHMuJywgJ2N5Y2xlLnByb2R1Y3RzLiddXCJcbiAgKGNsb3NlZCk9XCJzaG93RG93bmxvYWQgPSBmYWxzZVwiXG4+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVRhYmxlPlxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYmxvY2tcIj5cbiAgICA8c3Bhbj5ObyBhY3Rpdml0eSBkYXRhPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlWYWx1ZT5cbiAgPHNwYW4+LTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscyBsZXQtbm9kZT1cImN5Y2xlXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleT1cImtleVwiPlxuICA8cD48Yj57e25vZGUubmFtZX19PC9iPjwvcD5cbiAgPGhlLW5vZGUtdmFsdWUtZGV0YWlsc1xuICAgIFtkYXRhXT1cImRhdGFcIiBbbm9kZVR5cGVdPVwibm9kZVsnQHR5cGUnXVwiIFtkYXRhS2V5XT1cImtleVwiXG4gID48L2hlLW5vZGUtdmFsdWUtZGV0YWlscz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -101,7 +101,7 @@ export class CyclesEmissionsComponent {
101
101
  }
102
102
  }
103
103
  CyclesEmissionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesEmissionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- CyclesEmissionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesEmissionsComponent, selector: "he-cycles-emissions", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"emissions.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"cycles.length > 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.chart\" (click)=\"selectedView = View.chart\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"chart-bar\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Chart view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{emissions.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.name\"\n >\n <he-node-link [node]=\"emission.value.term\">\n <span>{{emission.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.units\"\n >{{emission.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <td class=\"width-auto\" [attr.title]=\"cycle.name\" [style.border-left-color]=\"itemColor(i)\">\n <label *ngIf=\"enableCompare\" class=\"is-inline-block checkbox\">\n <input type=\"checkbox\" class=\"selector\"\n (change)=\"toggleCycle(cycle)\"\n [checked]=\"isSelected(cycle)\"\n >\n </label>\n <he-node-link class=\"is-inline-block\" [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{cycle.name || cycle.id}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let emission of emissions\">\n <span *ngIf=\"emission.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: emission.value.values[cycle['@id']], cycle: cycle, key: 'emissions' })\"\n >\n <span pointer>{{propertyValue(emission.value.values[cycle['@id']].value) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"emission.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\" [showDeleted]=\"true\"></he-blank-node-state-notice>\n\n <he-cycles-suggest-form *ngIf=\"enableCompare\" [cycles]=\"cycles\" (cycleAdded)=\"addCycle($event)\"></he-cycles-suggest-form>\n </div>\n\n <he-cycles-emissions-chart *ngIf=\"cycles.length > 1\" [class.is-hidden]=\"selectedView !== View.chart\"\n [cycles]=\"selectedCycles\"\n ></he-cycles-emissions-chart>\n\n <he-cycles-emissions-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [cycle]=\"cycles[0]\"\n [originalValues]=\"originalValues[0]?.emissions\"\n [recalculatedValues]=\"cycles[0]?.emissions\"\n ></he-cycles-emissions-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-emissions.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.emissions.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["label.checkbox{width:20px}td he-node-link{width:160px}table.data-table td:first-child{border-left-width:8px}fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { type: i6.CyclesSuggestFormComponent, selector: "he-cycles-suggest-form", inputs: ["cycles"], outputs: ["cycleAdded"] }, { type: i7.CyclesEmissionsChartComponent, selector: "he-cycles-emissions-chart", inputs: ["cycles"] }, { type: i8.CyclesEmissionsLogsComponent, selector: "he-cycles-emissions-logs", inputs: ["cycle", "originalValues", "recalculatedValues"] }, { type: i9.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i10.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i13.EllipsisPipe, "default": i14.DefaultPipe, "precision": i15.PrecisionPipe } });
104
+ CyclesEmissionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesEmissionsComponent, selector: "he-cycles-emissions", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"emissions.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"cycles.length > 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.chart\" (click)=\"selectedView = View.chart\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"chart-bar\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Chart view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{emissions.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.name\"\n >\n <he-node-link [node]=\"emission.value.term\">\n <span>{{emission.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.units\"\n >{{emission.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <td class=\"width-auto\" [attr.title]=\"cycle.name\" [style.border-left-color]=\"itemColor(i)\">\n <label *ngIf=\"enableCompare\" class=\"is-inline-block checkbox\">\n <input type=\"checkbox\" class=\"selector\"\n (change)=\"toggleCycle(cycle)\"\n [checked]=\"isSelected(cycle)\"\n >\n </label>\n <he-node-link class=\"is-inline-block\" [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{cycle.name || cycle.id}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let emission of emissions\">\n <span *ngIf=\"emission.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: emission.value.values[cycle['@id']], cycle: cycle, key: 'emissions' })\"\n >\n <span pointer>{{propertyValue(emission.value.values[cycle['@id']].value, emission.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"emission.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\" [showDeleted]=\"true\"></he-blank-node-state-notice>\n\n <he-cycles-suggest-form *ngIf=\"enableCompare\" [cycles]=\"cycles\" (cycleAdded)=\"addCycle($event)\"></he-cycles-suggest-form>\n </div>\n\n <he-cycles-emissions-chart *ngIf=\"cycles.length > 1\" [class.is-hidden]=\"selectedView !== View.chart\"\n [cycles]=\"selectedCycles\"\n ></he-cycles-emissions-chart>\n\n <he-cycles-emissions-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [cycle]=\"cycles[0]\"\n [originalValues]=\"originalValues[0]?.emissions\"\n [recalculatedValues]=\"cycles[0]?.emissions\"\n ></he-cycles-emissions-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-emissions.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.emissions.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["label.checkbox{width:20px}td he-node-link{width:160px}table.data-table td:first-child{border-left-width:8px}fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted"] }, { type: i6.CyclesSuggestFormComponent, selector: "he-cycles-suggest-form", inputs: ["cycles"], outputs: ["cycleAdded"] }, { type: i7.CyclesEmissionsChartComponent, selector: "he-cycles-emissions-chart", inputs: ["cycles"] }, { type: i8.CyclesEmissionsLogsComponent, selector: "he-cycles-emissions-logs", inputs: ["cycle", "originalValues", "recalculatedValues"] }, { type: i9.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i10.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i13.EllipsisPipe, "default": i14.DefaultPipe, "precision": i15.PrecisionPipe } });
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesEmissionsComponent, decorators: [{
106
106
  type: Component,
107
107
  args: [{
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
118
118
  }], enableCompare: [{
119
119
  type: Input
120
120
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFnQixZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUg3QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUsxQyxJQUFLLElBSUo7QUFKRCxXQUFLLElBQUk7SUFDUCx1QkFBZSxDQUFBO0lBQ2YsdUJBQWUsQ0FBQTtJQUNmLHFCQUFhLENBQUE7QUFDZixDQUFDLEVBSkksSUFBSSxLQUFKLElBQUksUUFJUjtBQU9ELE1BQU0sT0FBTyx3QkFBd0I7SUFMckM7UUFPUyxtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFFcEMsV0FBTSxHQUFtQixFQUFFLENBQUM7UUFJNUIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsWUFBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLGlCQUFZLEdB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Q25DLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7c0hBMUZVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHdNQ25CckMsaTRMQTBJQTs0RkR2SGEsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNqRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBFbWlzc2lvbiB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmNvbnN0IG9yZGVyQnkgPSByZXF1aXJlKCdsb2Rhc2gub3JkZXJieScpO1xuXG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlLCBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cywgaXRlbUNvbG9yIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuXG5lbnVtIFZpZXcge1xuICB0YWJsZSA9ICd0YWJsZScsXG4gIGNoYXJ0ID0gJ2NoYXJ0JyxcbiAgbG9ncyA9ICdsb2dzJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1jeWNsZXMtZW1pc3Npb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1lbWlzc2lvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtZW1pc3Npb25zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzRW1pc3Npb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIG9yaWdpbmFsVmFsdWVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3ljbGVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YVN0YXRlPzogRGF0YVN0YXRlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZW5hYmxlQ29tcGFyZSA9IHRydWU7XG5cbiAgcHVibGljIGJhc2VVcmwgPSBiYXNlVXJsKCk7XG4gIHB1YmxpYyBwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZTtcbiAgcHVibGljIGl0ZW1Db2xvciA9IGl0ZW1Db2xvcjtcbiAgcHVibGljIHNob3dEb3dubG9hZCA9IGZhbHNlO1xuICBwdWJsaWMgVmlldyA9IFZpZXc7XG4gIHB1YmxpYyBzZWxlY3RlZFZpZXcgPSBWaWV3LnRhYmxlO1xuICBwdWJsaWMgc2VsZWN0ZWRDeWNsZXM6IElDeWNsZUpTT05MRFtdID0gW107XG5cbiAgcHVibGljIGVtaXNzaW9uczogSUdyb3VwZWRLZXlzPEVtaXNzaW9uPltdID0gW107XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY3ljbGVzJyBpbiBjaGFuZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcbiAgICB9XG4gICAgaWYgKCdkYXRhU3RhdGUnIGluIGNoYW5nZXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gaXRlbVsnQGlkJ107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3JpZ2luYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN0YXRlID09PSBEYXRhU3RhdGUub3JpZ2luYWw7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBlbWlzc2lvbnNQZXJDeWNsZSA9IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBFbWlzc2lvbj4odGhpcy5jeWNsZXMsICdlbWlzc2lvbnMnLCB0aGlzLm9yaWdpbmFsVmFsdWVzKTtcbiAgICB0aGlzLmVtaXNzaW9ucyA9IG9yZGVyQnkoZ3JvdXBwZWRLZXlzKGVtaXNzaW9uc1BlckN5Y2xlKSwgWyd2YWx1ZS5tZXRob2RUaWVyT3JkZXInLCAna2V5J10sIFsnYXNjJywgJ2FzYyddKTtcbiAgICB0aGlzLnNlbGVjdEFsbEN5Y2xlcygpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBvcG92ZXIocG9wb3ZlcjogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICByZXR1cm4gcG9wb3Zlci5pc09wZW4oKSA/IHBvcG92ZXIuY2xvc2UoKSA6IHBvcG92ZXIub3Blbihjb250ZXh0KTtcbiAgfVxuXG4gIC8vIEFkZCBmcm9tIHN1Z2dlc3Rpb25cblxuICBwdWJsaWMgYXN5bmMgYWRkQ3ljbGUoY3ljbGU6IElDeWNsZUpTT05MRCkge1xuICAgIHRoaXMuY3ljbGVzID0gW1xuICAgICAgLi4udGhpcy5jeWNsZXMsXG4gICAgICBjeWNsZVxuICAgIF07XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICAvLyBDeWNsZSBzZWxlY3Rpb25cblxuICBwcml2YXRlIHNlbGVjdEFsbEN5Y2xlcygpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ3ljbGVzID0gdGhpcy5jeWNsZXMuc2xpY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZWxlY3RBbGxDeWNsZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEN5Y2xlcyA9IFtdO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUFsbEN5Y2xlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEN5Y2xlcy5sZW5ndGggPyB0aGlzLnNlbGVjdEFsbEN5Y2xlcygpIDogdGhpcy51bnNlbGVjdEFsbEN5Y2xlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RDeWNsZShjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgdGhpcy5zZWxlY3RlZEN5Y2xlcyA9IFtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRDeWNsZXMsXG4gICAgICBjeWNsZVxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHVuc2VsZWN0Q3ljbGUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRDeWNsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnNlbGVjdGVkQ3ljbGVzID0gdGhpcy5zZWxlY3RlZEN5Y2xlcy5zbGljZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUN5Y2xlKGN5Y2xlOiBJQ3ljbGVKU09OTEQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRDeWNsZXMuaW5kZXhPZihjeWNsZSk7XG4gICAgcmV0dXJuIGluZGV4ID49IDAgPyB0aGlzLnVuc2VsZWN0Q3ljbGUoaW5kZXgpIDogdGhpcy5zZWxlY3RDeWNsZShjeWNsZSk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDeWNsZXMuaW5jbHVkZXMoY3ljbGUpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZW1pc3Npb25zLmxlbmd0aDsgZWxzZSBlbXB0eVRhYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGlzLXZhcmlhYmxlIGlzLTIgbS0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1oaWRkZW4tbW9iaWxlXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LnRhYmxlXCIgKGNsaWNrKT1cInNlbGVjdGVkVmlldyA9IFZpZXcudGFibGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwibGlzdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlRhYmxlIHZpZXc8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiICpuZ0lmPVwiY3ljbGVzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcuY2hhcnRcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5jaGFydFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJjaGFydC1iYXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5DaGFydCB2aWV3PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIiAqbmdJZj1cIiFpc09yaWdpbmFsICYmIGN5Y2xlcy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9nc1wiIChjbGljayk9XCJzZWxlY3RlZFZpZXcgPSBWaWV3LmxvZ3NcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwiY2FsY3VsYXRvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlJlY2FsY3VsYXRpb25zIGxvZ3M8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJweC0zIHBiLTNcIiBbY2xhc3MuaXMtaGlkZGVuXT1cInNlbGVjdGVkVmlldyAhPT0gVmlldy50YWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoYXMtdGV4dC1yaWdodCBtYi0yXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGxcIiAoY2xpY2spPVwic2hvd0Rvd25sb2FkID0gdHJ1ZVwiPlxuICAgICAgICA8ZmEtaWNvbiBpY29uPVwiZG93bmxvYWRcIj48L2ZhLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGwtMlwiPkRvd25sb2FkIChDU1YpPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyIGRhdGEtdGFibGUtY29udGFpbmVyIG1iLTFcIj5cbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGlzLW5hcnJvdyBkYXRhLXRhYmxlIGhhcy1jaGlsZHJlbi17e2VtaXNzaW9ucy5sZW5ndGh9fVwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0b1wiPjwvdGg+XG4gICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgZW1pc3Npb24gb2YgZW1pc3Npb25zXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZW1pc3Npb24udmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJlbWlzc2lvbi52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tlbWlzc2lvbi52YWx1ZS50ZXJtLm5hbWUgfCBlbGxpcHNpczozMH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hL0N5Y2xlI2Z1bmN0aW9uYWxVbml0J1wiIHRhcmdldD1cIl9ibGFua1wiPkZ1bmN0aW9uYWwgdW5pdDwvYT5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGVtaXNzaW9uIG9mIGVtaXNzaW9uc1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImVtaXNzaW9uLnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgPnt7ZW1pc3Npb24udmFsdWUudGVybS51bml0c319PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBjeWNsZSBvZiBjeWNsZXM7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwid2lkdGgtYXV0b1wiIFthdHRyLnRpdGxlXT1cImN5Y2xlLm5hbWVcIiBbc3R5bGUuYm9yZGVyLWxlZnQtY29sb3JdPVwiaXRlbUNvbG9yKGkpXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImVuYWJsZUNvbXBhcmVcIiBjbGFzcz1cImlzLWlubGluZS1ibG9jayBjaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInNlbGVjdG9yXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ3ljbGUoY3ljbGUpXCJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQoY3ljbGUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgY2xhc3M9XCJpcy1pbmxpbmUtYmxvY2tcIiBbbm9kZV09XCJjeWNsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXMtbm93cmFwIGhhcy10ZXh0LWVsbGlwc2lzXCI+e3tpICsgMX19LiB7e2N5Y2xlLm5hbWUgfHwgY3ljbGUuaWR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oZS1ub2RlLWxpbms+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8aGUtY3ljbGVzLWZ1bmN0aW9uYWwtdW5pdC1tZWFzdXJlIFtjeWNsZV09XCJjeWNsZXNbMF1cIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJpcy1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgZW1pc3Npb24gb2YgZW1pc3Npb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZW1pc3Npb24udmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyLXBvcG92ZXJcIlxuICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBvcG92ZXIocCwgeyBkYXRhOiBlbWlzc2lvbi52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXSwgY3ljbGU6IGN5Y2xlLCBrZXk6ICdlbWlzc2lvbnMnIH0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIHBvaW50ZXI+e3twcm9wZXJ0eVZhbHVlKGVtaXNzaW9uLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwiZW1pc3Npb24udmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0ubm9kZXNbMF1cIlxuICAgICAgICAgICAgICAgICAga2V5PVwidmFsdWVcIlxuICAgICAgICAgICAgICAgID48L2hlLWJsYW5rLW5vZGUtc3RhdGU+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2UgW2RhdGFTdGF0ZV09XCJkYXRhU3RhdGVcIiBbc2hvd0RlbGV0ZWRdPVwidHJ1ZVwiPjwvaGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2U+XG5cbiAgICA8aGUtY3ljbGVzLXN1Z2dlc3QtZm9ybSAqbmdJZj1cImVuYWJsZUNvbXBhcmVcIiBbY3ljbGVzXT1cImN5Y2xlc1wiIChjeWNsZUFkZGVkKT1cImFkZEN5Y2xlKCRldmVudClcIj48L2hlLWN5Y2xlcy1zdWdnZXN0LWZvcm0+XG4gIDwvZGl2PlxuXG4gIDxoZS1jeWNsZXMtZW1pc3Npb25zLWNoYXJ0ICpuZ0lmPVwiY3ljbGVzLmxlbmd0aCA+IDFcIiBbY2xhc3MuaXMtaGlkZGVuXT1cInNlbGVjdGVkVmlldyAhPT0gVmlldy5jaGFydFwiXG4gICAgW2N5Y2xlc109XCJzZWxlY3RlZEN5Y2xlc1wiXG4gID48L2hlLWN5Y2xlcy1lbWlzc2lvbnMtY2hhcnQ+XG5cbiAgPGhlLWN5Y2xlcy1lbWlzc2lvbnMtbG9ncyAqbmdJZj1cInNlbGVjdGVkVmlldyA9PT0gVmlldy5sb2dzICYmICFpc09yaWdpbmFsXCJcbiAgICBbY3ljbGVdPVwiY3ljbGVzWzBdXCJcbiAgICBbb3JpZ2luYWxWYWx1ZXNdPVwib3JpZ2luYWxWYWx1ZXNbMF0/LmVtaXNzaW9uc1wiXG4gICAgW3JlY2FsY3VsYXRlZFZhbHVlc109XCJjeWNsZXNbMF0/LmVtaXNzaW9uc1wiXG4gID48L2hlLWN5Y2xlcy1lbWlzc2lvbnMtbG9ncz5cbjwvbmctY29udGFpbmVyPlxuXG48aGUtbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0gKm5nSWY9XCJzaG93RG93bmxvYWRcIlxuICBbbm9kZXNdPVwiY3ljbGVzXCIgZmlsZW5hbWU9XCJjeWNsZS1lbWlzc2lvbnMuY3N2XCIgW2lzVXBsb2FkXT1cImZhbHNlXCJcbiAgW2hlYWRlcktleXNdPVwiWydjeWNsZS5pZCcsICdjeWNsZS5AaWQnLCAnY3ljbGUuZW1pc3Npb25zLiddXCJcbiAgKGNsb3NlZCk9XCJzaG93RG93bmxvYWQgPSBmYWxzZVwiXG4+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVRhYmxlPlxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYmxvY2tcIj5cbiAgICA8c3Bhbj5ObyBkYXRhPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlWYWx1ZT5cbiAgPHNwYW4+LTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscyBsZXQtbm9kZT1cImN5Y2xlXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleT1cImtleVwiPlxuICA8cD48Yj57e25vZGUubmFtZX19PC9iPjwvcD5cbiAgPGhlLW5vZGUtdmFsdWUtZGV0YWlsc1xuICAgIFtkYXRhXT1cImRhdGFcIiBbbm9kZVR5cGVdPVwibm9kZVsnQHR5cGUnXVwiIFtkYXRhS2V5XT1cImtleVwiXG4gID48L2hlLW5vZGUtdmFsdWUtZGV0YWlscz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFnQixZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUg3QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUsxQyxJQUFLLElBSUo7QUFKRCxXQUFLLElBQUk7SUFDUCx1QkFBZSxDQUFBO0lBQ2YsdUJBQWUsQ0FBQTtJQUNmLHFCQUFhLENBQUE7QUFDZixDQUFDLEVBSkksSUFBSSxLQUFKLElBQUksUUFJUjtBQU9ELE1BQU0sT0FBTyx3QkFBd0I7SUFMckM7UUFPUyxtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFFcEMsV0FBTSxHQUFtQixFQUFFLENBQUM7UUFJNUIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsWUFBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLGlCQUFZLEdB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Q25DLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7c0hBMUZVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHdNQ25CckMsNjVMQTBJQTs0RkR2SGEsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNqRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBFbWlzc2lvbiB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmNvbnN0IG9yZGVyQnkgPSByZXF1aXJlKCdsb2Rhc2gub3JkZXJieScpO1xuXG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlLCBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cywgaXRlbUNvbG9yIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuXG5lbnVtIFZpZXcge1xuICB0YWJsZSA9ICd0YWJsZScsXG4gIGNoYXJ0ID0gJ2NoYXJ0JyxcbiAgbG9ncyA9ICdsb2dzJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1jeWNsZXMtZW1pc3Npb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1lbWlzc2lvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtZW1pc3Npb25zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzRW1pc3Npb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIG9yaWdpbmFsVmFsdWVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3ljbGVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YVN0YXRlPzogRGF0YVN0YXRlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZW5hYmxlQ29tcGFyZSA9IHRydWU7XG5cbiAgcHVibGljIGJhc2VVcmwgPSBiYXNlVXJsKCk7XG4gIHB1YmxpYyBwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZTtcbiAgcHVibGljIGl0ZW1Db2xvciA9IGl0ZW1Db2xvcjtcbiAgcHVibGljIHNob3dEb3dubG9hZCA9IGZhbHNlO1xuICBwdWJsaWMgVmlldyA9IFZpZXc7XG4gIHB1YmxpYyBzZWxlY3RlZFZpZXcgPSBWaWV3LnRhYmxlO1xuICBwdWJsaWMgc2VsZWN0ZWRDeWNsZXM6IElDeWNsZUpTT05MRFtdID0gW107XG5cbiAgcHVibGljIGVtaXNzaW9uczogSUdyb3VwZWRLZXlzPEVtaXNzaW9uPltdID0gW107XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY3ljbGVzJyBpbiBjaGFuZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcbiAgICB9XG4gICAgaWYgKCdkYXRhU3RhdGUnIGluIGNoYW5nZXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gaXRlbVsnQGlkJ107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3JpZ2luYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN0YXRlID09PSBEYXRhU3RhdGUub3JpZ2luYWw7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBlbWlzc2lvbnNQZXJDeWNsZSA9IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBFbWlzc2lvbj4odGhpcy5jeWNsZXMsICdlbWlzc2lvbnMnLCB0aGlzLm9yaWdpbmFsVmFsdWVzKTtcbiAgICB0aGlzLmVtaXNzaW9ucyA9IG9yZGVyQnkoZ3JvdXBwZWRLZXlzKGVtaXNzaW9uc1BlckN5Y2xlKSwgWyd2YWx1ZS5tZXRob2RUaWVyT3JkZXInLCAna2V5J10sIFsnYXNjJywgJ2FzYyddKTtcbiAgICB0aGlzLnNlbGVjdEFsbEN5Y2xlcygpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBvcG92ZXIocG9wb3ZlcjogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICByZXR1cm4gcG9wb3Zlci5pc09wZW4oKSA/IHBvcG92ZXIuY2xvc2UoKSA6IHBvcG92ZXIub3Blbihjb250ZXh0KTtcbiAgfVxuXG4gIC8vIEFkZCBmcm9tIHN1Z2dlc3Rpb25cblxuICBwdWJsaWMgYXN5bmMgYWRkQ3ljbGUoY3ljbGU6IElDeWNsZUpTT05MRCkge1xuICAgIHRoaXMuY3ljbGVzID0gW1xuICAgICAgLi4udGhpcy5jeWNsZXMsXG4gICAgICBjeWNsZVxuICAgIF07XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICAvLyBDeWNsZSBzZWxlY3Rpb25cblxuICBwcml2YXRlIHNlbGVjdEFsbEN5Y2xlcygpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ3ljbGVzID0gdGhpcy5jeWNsZXMuc2xpY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZWxlY3RBbGxDeWNsZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEN5Y2xlcyA9IFtdO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUFsbEN5Y2xlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEN5Y2xlcy5sZW5ndGggPyB0aGlzLnNlbGVjdEFsbEN5Y2xlcygpIDogdGhpcy51bnNlbGVjdEFsbEN5Y2xlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RDeWNsZShjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgdGhpcy5zZWxlY3RlZEN5Y2xlcyA9IFtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRDeWNsZXMsXG4gICAgICBjeWNsZVxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHVuc2VsZWN0Q3ljbGUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRDeWNsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnNlbGVjdGVkQ3ljbGVzID0gdGhpcy5zZWxlY3RlZEN5Y2xlcy5zbGljZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUN5Y2xlKGN5Y2xlOiBJQ3ljbGVKU09OTEQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRDeWNsZXMuaW5kZXhPZihjeWNsZSk7XG4gICAgcmV0dXJuIGluZGV4ID49IDAgPyB0aGlzLnVuc2VsZWN0Q3ljbGUoaW5kZXgpIDogdGhpcy5zZWxlY3RDeWNsZShjeWNsZSk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDeWNsZXMuaW5jbHVkZXMoY3ljbGUpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZW1pc3Npb25zLmxlbmd0aDsgZWxzZSBlbXB0eVRhYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGlzLXZhcmlhYmxlIGlzLTIgbS0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1oaWRkZW4tbW9iaWxlXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LnRhYmxlXCIgKGNsaWNrKT1cInNlbGVjdGVkVmlldyA9IFZpZXcudGFibGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwibGlzdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlRhYmxlIHZpZXc8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiICpuZ0lmPVwiY3ljbGVzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcuY2hhcnRcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5jaGFydFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJjaGFydC1iYXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5DaGFydCB2aWV3PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIiAqbmdJZj1cIiFpc09yaWdpbmFsICYmIGN5Y2xlcy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9nc1wiIChjbGljayk9XCJzZWxlY3RlZFZpZXcgPSBWaWV3LmxvZ3NcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwiY2FsY3VsYXRvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlJlY2FsY3VsYXRpb25zIGxvZ3M8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJweC0zIHBiLTNcIiBbY2xhc3MuaXMtaGlkZGVuXT1cInNlbGVjdGVkVmlldyAhPT0gVmlldy50YWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoYXMtdGV4dC1yaWdodCBtYi0yXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGxcIiAoY2xpY2spPVwic2hvd0Rvd25sb2FkID0gdHJ1ZVwiPlxuICAgICAgICA8ZmEtaWNvbiBpY29uPVwiZG93bmxvYWRcIj48L2ZhLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGwtMlwiPkRvd25sb2FkIChDU1YpPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyIGRhdGEtdGFibGUtY29udGFpbmVyIG1iLTFcIj5cbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGlzLW5hcnJvdyBkYXRhLXRhYmxlIGhhcy1jaGlsZHJlbi17e2VtaXNzaW9ucy5sZW5ndGh9fVwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0b1wiPjwvdGg+XG4gICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgZW1pc3Npb24gb2YgZW1pc3Npb25zXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZW1pc3Npb24udmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJlbWlzc2lvbi52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tlbWlzc2lvbi52YWx1ZS50ZXJtLm5hbWUgfCBlbGxpcHNpczozMH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hL0N5Y2xlI2Z1bmN0aW9uYWxVbml0J1wiIHRhcmdldD1cIl9ibGFua1wiPkZ1bmN0aW9uYWwgdW5pdDwvYT5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGVtaXNzaW9uIG9mIGVtaXNzaW9uc1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImVtaXNzaW9uLnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgPnt7ZW1pc3Npb24udmFsdWUudGVybS51bml0c319PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBjeWNsZSBvZiBjeWNsZXM7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwid2lkdGgtYXV0b1wiIFthdHRyLnRpdGxlXT1cImN5Y2xlLm5hbWVcIiBbc3R5bGUuYm9yZGVyLWxlZnQtY29sb3JdPVwiaXRlbUNvbG9yKGkpXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImVuYWJsZUNvbXBhcmVcIiBjbGFzcz1cImlzLWlubGluZS1ibG9jayBjaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInNlbGVjdG9yXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ3ljbGUoY3ljbGUpXCJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQoY3ljbGUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgY2xhc3M9XCJpcy1pbmxpbmUtYmxvY2tcIiBbbm9kZV09XCJjeWNsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXMtbm93cmFwIGhhcy10ZXh0LWVsbGlwc2lzXCI+e3tpICsgMX19LiB7e2N5Y2xlLm5hbWUgfHwgY3ljbGUuaWR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oZS1ub2RlLWxpbms+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8aGUtY3ljbGVzLWZ1bmN0aW9uYWwtdW5pdC1tZWFzdXJlIFtjeWNsZV09XCJjeWNsZXNbMF1cIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJpcy1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgZW1pc3Npb24gb2YgZW1pc3Npb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZW1pc3Npb24udmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyLXBvcG92ZXJcIlxuICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBvcG92ZXIocCwgeyBkYXRhOiBlbWlzc2lvbi52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXSwgY3ljbGU6IGN5Y2xlLCBrZXk6ICdlbWlzc2lvbnMnIH0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIHBvaW50ZXI+e3twcm9wZXJ0eVZhbHVlKGVtaXNzaW9uLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlLCBlbWlzc2lvbi52YWx1ZS50ZXJtWydAaWQnXSkgfCBwcmVjaXNpb246MyB8IGRlZmF1bHQ6Jy0nfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUgY2xhc3M9XCJtbC0xXCJcbiAgICAgICAgICAgICAgICAgIFtub2RlXT1cImVtaXNzaW9uLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLm5vZGVzWzBdXCJcbiAgICAgICAgICAgICAgICAgIGtleT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICA+PC9oZS1ibGFuay1ub2RlLXN0YXRlPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlXCIgW3Nob3dEZWxldGVkXT1cInRydWVcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuXG4gICAgPGhlLWN5Y2xlcy1zdWdnZXN0LWZvcm0gKm5nSWY9XCJlbmFibGVDb21wYXJlXCIgW2N5Y2xlc109XCJjeWNsZXNcIiAoY3ljbGVBZGRlZCk9XCJhZGRDeWNsZSgkZXZlbnQpXCI+PC9oZS1jeWNsZXMtc3VnZ2VzdC1mb3JtPlxuICA8L2Rpdj5cblxuICA8aGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydCAqbmdJZj1cImN5Y2xlcy5sZW5ndGggPiAxXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcuY2hhcnRcIlxuICAgIFtjeWNsZXNdPVwic2VsZWN0ZWRDeWNsZXNcIlxuICA+PC9oZS1jeWNsZXMtZW1pc3Npb25zLWNoYXJ0PlxuXG4gIDxoZS1jeWNsZXMtZW1pc3Npb25zLWxvZ3MgKm5nSWY9XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9ncyAmJiAhaXNPcmlnaW5hbFwiXG4gICAgW2N5Y2xlXT1cImN5Y2xlc1swXVwiXG4gICAgW29yaWdpbmFsVmFsdWVzXT1cIm9yaWdpbmFsVmFsdWVzWzBdPy5lbWlzc2lvbnNcIlxuICAgIFtyZWNhbGN1bGF0ZWRWYWx1ZXNdPVwiY3ljbGVzWzBdPy5lbWlzc2lvbnNcIlxuICA+PC9oZS1jeWNsZXMtZW1pc3Npb25zLWxvZ3M+XG48L25nLWNvbnRhaW5lcj5cblxuPGhlLW5vZGUtY3N2LWV4cG9ydC1jb25maXJtICpuZ0lmPVwic2hvd0Rvd25sb2FkXCJcbiAgW25vZGVzXT1cImN5Y2xlc1wiIGZpbGVuYW1lPVwiY3ljbGUtZW1pc3Npb25zLmNzdlwiIFtpc1VwbG9hZF09XCJmYWxzZVwiXG4gIFtoZWFkZXJLZXlzXT1cIlsnY3ljbGUuaWQnLCAnY3ljbGUuQGlkJywgJ2N5Y2xlLmVtaXNzaW9ucy4nXVwiXG4gIChjbG9zZWQpPVwic2hvd0Rvd25sb2FkID0gZmFsc2VcIlxuPjwvaGUtbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlUYWJsZT5cbiAgPGRpdiBjbGFzcz1cInBhbmVsLWJsb2NrXCI+XG4gICAgPHNwYW4+Tm8gZGF0YTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5VmFsdWU+XG4gIDxzcGFuPi08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RldGFpbHMgbGV0LW5vZGU9XCJjeWNsZVwiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1rZXk9XCJrZXlcIj5cbiAgPHA+PGI+e3tub2RlLm5hbWV9fTwvYj48L3A+XG4gIDxoZS1ub2RlLXZhbHVlLWRldGFpbHNcbiAgICBbZGF0YV09XCJkYXRhXCIgW25vZGVUeXBlXT1cIm5vZGVbJ0B0eXBlJ11cIiBbZGF0YUtleV09XCJrZXlcIlxuICA+PC9oZS1ub2RlLXZhbHVlLWRldGFpbHM+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -6,10 +6,10 @@ import * as i1 from "@angular/forms";
6
6
  import * as i2 from "@angular/common";
7
7
  const cycleValue = (cycle, values) => { var _a; return (((_a = values[cycle['@id']]) === null || _a === void 0 ? void 0 : _a.nodes[0]) || { value: [0] }).value; };
8
8
  const cycleName = (cycle, index) => `${index + 1}. ${cycle.name}`;
9
- const cycleDataset = (values) => (cycle, index) => {
9
+ const cycleDataset = (values, termId) => (cycle, index) => {
10
10
  const label = cycleName(cycle, index);
11
11
  const color = itemColor(index);
12
- const data = [propertyValue(cycleValue(cycle, values))];
12
+ const data = [propertyValue(cycleValue(cycle, values), termId)];
13
13
  return {
14
14
  label,
15
15
  axis: 'y',
@@ -43,8 +43,9 @@ export class CyclesEmissionsChartComponent {
43
43
  updateChart() {
44
44
  var _a, _b, _c;
45
45
  const labels = [(_b = (_a = this.selectedTerm) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : ''];
46
- const { values } = this.emissionPerCycle[this.selectedTerm['@id']];
47
- const datasets = this.cycles.map(cycleDataset(values));
46
+ const termId = this.selectedTerm['@id'];
47
+ const { values } = this.emissionPerCycle[termId];
48
+ const datasets = this.cycles.map(cycleDataset(values, termId));
48
49
  if (this.chart) {
49
50
  this.chart.destroy();
50
51
  }
@@ -90,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
90
91
  }], cycles: [{
91
92
  type: Input
92
93
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXVELE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakMsT0FBTyxFQUFFLGdCQUFnQixFQUFzQyxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFFcEgsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFtQixFQUFFLE1BQXFDLEVBQUUsRUFBRSxXQUNoRixPQUFBLENBQUMsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsMENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQSxFQUFBLENBQUM7QUFFM0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUV4RixNQUFNLFlBQVksR0FBRyxDQUFDLE1BQXFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBbUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUNyRyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFD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QUFPLEVBQUUsS0FBSztpQkFDZjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLENBQUM7NEJBQ04sT0FBTyxFQUFFLEtBQUs7eUJBQ2YsQ0FBQztvQkFDRixLQUFLLEVBQUUsQ0FBQzs0QkFDTixRQUFRLEVBQUUsTUFBTTs0QkFDaEIsS0FBSyxFQUFFO2dDQUNMLEdBQUcsRUFBRSxDQUFDOzZCQUNQO3lCQUNGLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OzJIQWhFVSw2QkFBNkI7K0dBQTdCLDZCQUE2Qix1TkM3QjFDLDh1QkF3QkE7NEZES2EsNkJBQTZCO2tCQUx6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSx5Q0FBeUM7b0JBQ3RELFNBQVMsRUFBRSxDQUFDLHlDQUF5QyxDQUFDO2lCQUN2RDs4QkFHUyxRQUFRO3NCQURmLFNBQVM7dUJBQUMsT0FBTztnQkFLVixNQUFNO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW1pc3Npb24sIElDeWNsZUpTT05MRCwgVGVybSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnY2hhcnQuanMnO1xuXG5pbXBvcnQgeyBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZE5vZGVzLCBJR3JvdXBlZE5vZGVzVmFsdWVzLCBpdGVtQ29sb3IsIHByb3BlcnR5VmFsdWUgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuXG5jb25zdCBjeWNsZVZhbHVlID0gKGN5Y2xlOiBJQ3ljbGVKU09OTEQsIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxFbWlzc2lvbj4pID0+XG4gICh2YWx1ZXNbY3ljbGVbJ0BpZCddXT8ubm9kZXNbMF0gfHwgeyB2YWx1ZTogWzBdIH0pLnZhbHVlO1xuXG5jb25zdCBjeWNsZU5hbWUgPSAoY3ljbGU6IElDeWNsZUpTT05MRCwgaW5kZXg6IG51bWJlcikgPT4gYCR7aW5kZXggKyAxfS4gJHtjeWNsZS5uYW1lfWA7XG5cbmNvbnN0IGN5Y2xlRGF0YXNldCA9ICh2YWx1ZXM6IElHcm91cGVkTm9kZXNWYWx1ZXM8RW1pc3Npb24+KSA9PiAoY3ljbGU6IElDeWNsZUpTT05MRCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICBjb25zdCBsYWJlbCA9IGN5Y2xlTmFtZShjeWNsZSwgaW5kZXgpO1xuICBjb25zdCBjb2xvciA9IGl0ZW1Db2xvcihpbmRleCk7XG4gIGNvbnN0IGRhdGEgPSBbcHJvcGVydHlWYWx1ZShjeWNsZVZhbHVlKGN5Y2xlLCB2YWx1ZXMpISldO1xuICByZXR1cm4ge1xuICAgIGxhYmVsLFxuICAgIGF4aXM6ICd5JyxcbiAgICBkYXRhLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXG4gICAgYm9yZGVyQ29sb3I6IGNvbG9yXG4gIH07XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1jeWNsZXMtZW1pc3Npb25zLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtZW1pc3Npb25zLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzRW1pc3Npb25zQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdjaGFydCcpXG4gIHByaXZhdGUgY2hhcnRSZWY/OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIGNoYXJ0OiBhbnk7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBjeWNsZXM6IElDeWNsZUpTT05MRFtdID0gW107XG5cbiAgcHVibGljIGVtaXNzaW9uUGVyQ3ljbGU6IElHcm91cGVkTm9kZXM8RW1pc3Npb24+ID0ge307XG4gIHB1YmxpYyB0ZXJtczogVGVybVtdID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZFRlcm0/OiBUZXJtO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbml0KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdjeWNsZXMnIGluIGNoYW5nZXMgJiYgIWNoYW5nZXMuY3ljbGVzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIHRoaXMuZW1pc3Npb25QZXJDeWNsZSA9IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBFbWlzc2lvbj4odGhpcy5jeWNsZXMsICdlbWlzc2lvbnMnKTtcbiAgICB0aGlzLnRlcm1zID0gT2JqZWN0LnZhbHVlcyh0aGlzLmVtaXNzaW9uUGVyQ3ljbGUpXG4gICAgICAuZmlsdGVyKCh7IHZhbHVlcyB9KSA9PiBPYmplY3QudmFsdWVzKHZhbHVlcykuc29tZSgoeyBub2RlczogW3sgdmFsdWUgfV0gfSkgPT4gcHJvcGVydHlWYWx1ZSh2YWx1ZSEpID4gMCkpXG4gICAgICAubWFwKCh7IHRlcm0gfSkgPT4gdGVybSk7XG4gICAgdGhpcy5zZWxlY3RlZFRlcm0gPSB0aGlzLnRlcm1zLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUZXJtISkgPyB0aGlzLnNlbGVjdGVkVGVybSA6IHRoaXMudGVybXNbMF07XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUZXJtID8gdGhpcy51cGRhdGVDaGFydCgpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDaGFydCgpIHtcbiAgICBjb25zdCBsYWJlbHM6IHN0cmluZ1tdID0gW3RoaXMuc2VsZWN0ZWRUZXJtPy5uYW1lID8/ICcnXTtcbiAgICBjb25zdCB7IHZhbHVlcyB9ID0gdGhpcy5lbWlzc2lvblBlckN5Y2xlWyh0aGlzLnNlbGVjdGVkVGVybSBhcyBhbnkpWydAaWQnXV07XG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmN5Y2xlcy5tYXAoY3ljbGVEYXRhc2V0KHZhbHVlcykpO1xuXG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICAgIH1cbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY2hhcnRSZWY/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgZGF0YToge1xuICAgICAgICBsYWJlbHMsXG4gICAgICAgIGRhdGFzZXRzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgeEF4ZXM6IFt7XG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIHlBeGVzOiBbe1xuICAgICAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcbiAgICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInAtM1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwiIXRlcm1zPy5sZW5ndGhcIj5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLWhvcml6b250YWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWwgaXMtbm9ybWFsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInNlbGVjdGVkVGVybVwiPlxuICAgICAgICA8c3Bhbj5TZWxlY3QgYSBjb2x1bW48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0IGlzLXNtYWxsXCI+XG4gICAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInVwZGF0ZUNoYXJ0KClcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGVybVwiIGlkPVwic2VsZWN0ZWRUZXJtXCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0ZXJtIG9mIHRlcm1zXCIgW25nVmFsdWVdPVwidGVybVwiPnt7dGVybS5uYW1lfX08L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm10LTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gICAgICA8Y2FudmFzICNjaGFydD48L2NhbnZhcz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXVELE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakMsT0FBTyxFQUFFLGdCQUFnQixFQUFzQyxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFFcEgsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFtQixFQUFFLE1BQXFDLEVBQUUsRUFBRSxXQUNoRixPQUFBLENBQUMsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsMENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQSxFQUFBLENBQUM7QUFFM0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUV4RixNQUFNLFlBQVksR0FBRyxDQUFDLE1BQXFDLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQW1CLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDckgsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFL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QVUsRUFBRSxJQUFJO2dCQUNoQixtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixNQUFNLEVBQUU7b0JBQ04sT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxDQUFDOzRCQUNOLE9BQU8sRUFBRSxLQUFLO3lCQUNmLENBQUM7b0JBQ0YsS0FBSyxFQUFFLENBQUM7NEJBQ04sUUFBUSxFQUFFLE1BQU07NEJBQ2hCLEtBQUssRUFBRTtnQ0FDTCxHQUFHLEVBQUUsQ0FBQzs2QkFDUDt5QkFDRixDQUFDO2lCQUNIO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzsySEFqRVUsNkJBQTZCOytHQUE3Qiw2QkFBNkIsdU5DN0IxQyw4dUJBd0JBOzRGREthLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxXQUFXLEVBQUUseUNBQXlDO29CQUN0RCxTQUFTLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQztpQkFDdkQ7OEJBR1MsUUFBUTtzQkFEZixTQUFTO3VCQUFDLE9BQU87Z0JBS1YsTUFBTTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVtaXNzaW9uLCBJQ3ljbGVKU09OTEQsIElUZXJtSlNPTkxELCBUZXJtIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICdjaGFydC5qcyc7XG5cbmltcG9ydCB7IGdyb3VwTm9kZXNCeVRlcm0sIElHcm91cGVkTm9kZXMsIElHcm91cGVkTm9kZXNWYWx1ZXMsIGl0ZW1Db2xvciwgcHJvcGVydHlWYWx1ZSB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5cbmNvbnN0IGN5Y2xlVmFsdWUgPSAoY3ljbGU6IElDeWNsZUpTT05MRCwgdmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPEVtaXNzaW9uPikgPT5cbiAgKHZhbHVlc1tjeWNsZVsnQGlkJ11dPy5ub2Rlc1swXSB8fCB7IHZhbHVlOiBbMF0gfSkudmFsdWU7XG5cbmNvbnN0IGN5Y2xlTmFtZSA9IChjeWNsZTogSUN5Y2xlSlNPTkxELCBpbmRleDogbnVtYmVyKSA9PiBgJHtpbmRleCArIDF9LiAke2N5Y2xlLm5hbWV9YDtcblxuY29uc3QgY3ljbGVEYXRhc2V0ID0gKHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxFbWlzc2lvbj4sIHRlcm1JZDogc3RyaW5nKSA9PiAoY3ljbGU6IElDeWNsZUpTT05MRCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICBjb25zdCBsYWJlbCA9IGN5Y2xlTmFtZShjeWNsZSwgaW5kZXgpO1xuICBjb25zdCBjb2xvciA9IGl0ZW1Db2xvcihpbmRleCk7XG4gIGNvbnN0IGRhdGEgPSBbcHJvcGVydHlWYWx1ZShjeWNsZVZhbHVlKGN5Y2xlLCB2YWx1ZXMpISwgdGVybUlkKV07XG4gIHJldHVybiB7XG4gICAgbGFiZWwsXG4gICAgYXhpczogJ3knLFxuICAgIGRhdGEsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcbiAgICBib3JkZXJDb2xvcjogY29sb3JcbiAgfTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1lbWlzc2lvbnMtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNFbWlzc2lvbnNDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0JylcbiAgcHJpdmF0ZSBjaGFydFJlZj86IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgY2hhcnQ6IGFueTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGN5Y2xlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcblxuICBwdWJsaWMgZW1pc3Npb25QZXJDeWNsZTogSUdyb3VwZWROb2RlczxFbWlzc2lvbj4gPSB7fTtcbiAgcHVibGljIHRlcm1zOiBJVGVybUpTT05MRFtdID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZFRlcm0/OiBJVGVybUpTT05MRDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY3ljbGVzJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzLmN5Y2xlcy5maXJzdENoYW5nZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICB0aGlzLmVtaXNzaW9uUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgRW1pc3Npb24+KHRoaXMuY3ljbGVzLCAnZW1pc3Npb25zJyk7XG4gICAgdGhpcy50ZXJtcyA9IE9iamVjdC52YWx1ZXModGhpcy5lbWlzc2lvblBlckN5Y2xlKVxuICAgICAgLmZpbHRlcigoeyB2YWx1ZXMgfSkgPT4gT2JqZWN0LnZhbHVlcyh2YWx1ZXMpLnNvbWUoKHsgbm9kZXM6IFt7IHZhbHVlIH1dIH0pID0+IHByb3BlcnR5VmFsdWUodmFsdWUhKSA+IDApKVxuICAgICAgLm1hcCgoeyB0ZXJtIH0pID0+IHRlcm0pO1xuICAgIHRoaXMuc2VsZWN0ZWRUZXJtID0gdGhpcy50ZXJtcy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkVGVybSEpID8gdGhpcy5zZWxlY3RlZFRlcm0gOiB0aGlzLnRlcm1zWzBdO1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGVybSA/IHRoaXMudXBkYXRlQ2hhcnQoKSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ2hhcnQoKSB7XG4gICAgY29uc3QgbGFiZWxzOiBzdHJpbmdbXSA9IFt0aGlzLnNlbGVjdGVkVGVybT8ubmFtZSA/PyAnJ107XG4gICAgY29uc3QgdGVybUlkID0gdGhpcy5zZWxlY3RlZFRlcm1bJ0BpZCddO1xuICAgIGNvbnN0IHsgdmFsdWVzIH0gPSB0aGlzLmVtaXNzaW9uUGVyQ3ljbGVbdGVybUlkXTtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY3ljbGVzLm1hcChjeWNsZURhdGFzZXQodmFsdWVzLCB0ZXJtSWQpKTtcblxuICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmNoYXJ0UmVmPy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB0eXBlOiAnYmFyJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbGFiZWxzLFxuICAgICAgICBkYXRhc2V0c1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgIGxlZ2VuZDoge1xuICAgICAgICAgIGRpc3BsYXk6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlczoge1xuICAgICAgICAgIHhBeGVzOiBbe1xuICAgICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgICB9XSxcbiAgICAgICAgICB5QXhlczogW3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTNcIiBbY2xhc3MuaXMtaGlkZGVuXT1cIiF0ZXJtcz8ubGVuZ3RoXCI+XG4gIDxkaXYgY2xhc3M9XCJmaWVsZCBpcy1ob3Jpem9udGFsXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWxhYmVsIGlzLW5vcm1hbFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBmb3I9XCJzZWxlY3RlZFRlcm1cIj5cbiAgICAgICAgPHNwYW4+U2VsZWN0IGEgY29sdW1uPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1zbWFsbFwiPlxuICAgICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJ1cGRhdGVDaGFydCgpXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRlcm1cIiBpZD1cInNlbGVjdGVkVGVybVwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGVybSBvZiB0ZXJtc1wiIFtuZ1ZhbHVlXT1cInRlcm1cIj57e3Rlcm0ubmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtdC0xXCI+XG4gICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxuICAgICAgPGNhbnZhcyAjY2hhcnQ+PC9jYW52YXM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=