@plumile/backoffice-core 0.1.198 → 0.1.200
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/lib/esm/builders.d.ts +7 -3
- package/lib/esm/builders.d.ts.map +1 -1
- package/lib/esm/builders.js +38 -1
- package/lib/esm/type-tests/operation-bound-config.test-d.d.ts +8 -0
- package/lib/esm/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
- package/lib/esm/type-tests/operation-bound-config.test-d.js +41 -1
- package/lib/esm/types.d.ts +14 -3
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/builders.d.ts +7 -3
- package/lib/types/builders.d.ts.map +1 -1
- package/lib/types/type-tests/operation-bound-config.test-d.d.ts +8 -0
- package/lib/types/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
- package/lib/types/types.d.ts +14 -3
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -57,7 +57,19 @@ const typedListManifest = createListDetailManifest({
|
|
|
57
57
|
},
|
|
58
58
|
hasList: true,
|
|
59
59
|
listNavigation: testListNavigation,
|
|
60
|
+
detailPages: [
|
|
61
|
+
{
|
|
62
|
+
id: 'overview',
|
|
63
|
+
pathSegment: 'overview',
|
|
64
|
+
label,
|
|
65
|
+
isDefault: true,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
defaultDetailPageId: 'overview',
|
|
60
69
|
facets: {
|
|
70
|
+
list: async () => {
|
|
71
|
+
throw new Error('type test');
|
|
72
|
+
},
|
|
61
73
|
detailLayout: async () => {
|
|
62
74
|
throw new Error('type test');
|
|
63
75
|
},
|
|
@@ -93,7 +105,10 @@ createListDetailManifest({
|
|
|
93
105
|
},
|
|
94
106
|
},
|
|
95
107
|
hasList: true,
|
|
108
|
+
detailPages: typedListManifest.detailPages,
|
|
109
|
+
defaultDetailPageId: typedListManifest.defaultDetailPageId,
|
|
96
110
|
facets: {
|
|
111
|
+
list: typedListManifest.facets.list,
|
|
97
112
|
detailLayout: async () => {
|
|
98
113
|
throw new Error('type test');
|
|
99
114
|
},
|
|
@@ -106,6 +121,31 @@ createListDetailManifest({
|
|
|
106
121
|
...typedListManifest,
|
|
107
122
|
listNavigation: { kind: 'list-navigation' },
|
|
108
123
|
});
|
|
124
|
+
createListDetailManifest({
|
|
125
|
+
...typedListManifest,
|
|
126
|
+
detailPages: [],
|
|
127
|
+
});
|
|
128
|
+
createListDetailManifest({
|
|
129
|
+
...typedListManifest,
|
|
130
|
+
facets: {
|
|
131
|
+
detailLayout: typedListManifest.facets.detailLayout,
|
|
132
|
+
detailPage: typedListManifest.facets.detailPage,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
createListDetailManifest({
|
|
136
|
+
...typedListManifest,
|
|
137
|
+
facets: {
|
|
138
|
+
list: typedListManifest.facets.list,
|
|
139
|
+
detailPage: typedListManifest.facets.detailPage,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
createListDetailManifest({
|
|
143
|
+
...typedListManifest,
|
|
144
|
+
facets: {
|
|
145
|
+
list: typedListManifest.facets.list,
|
|
146
|
+
detailLayout: typedListManifest.facets.detailLayout,
|
|
147
|
+
},
|
|
148
|
+
});
|
|
109
149
|
defineBackofficeFormMutationAction()({
|
|
110
150
|
id: 'create-organization',
|
|
111
151
|
kind: 'formMutation',
|
|
@@ -623,4 +663,4 @@ defineBackofficePicker()({
|
|
|
623
663
|
};
|
|
624
664
|
},
|
|
625
665
|
});
|
|
626
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWJvdW5kLWNvbmZpZy50ZXN0LWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS10ZXN0cy9vcGVyYXRpb24tYm91bmQtY29uZmlnLnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsa0NBQWtDLEVBQ2xDLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFxSDVFLE1BQU0sS0FBSyxHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDN0IsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7SUFDdkMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUMxQixDQUFDLENBQUM7QUFFSCxNQUFNLGtCQUFrQixHQUFHLDhCQUE4QixFQUFxQixDQUFDO0lBQzdFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0lBQ2xELFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsT0FBTyxFQUFFLENBQUMs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LHNCQUFzQixFQUF1QixDQUFDO0lBQzVDLEtBQUssRUFBRSxFQUFXO0lBQ2xCLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDaEIsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNqQyxPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLFNBQVMsRUFBRyxLQUE0QyxFQUFFLFNBQVM7YUFDcEU7WUFDRCxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9wZXJhdGlvblR5cGUgfSBmcm9tICdyZWxheS1ydW50aW1lJztcbmltcG9ydCB7IGRlZmluZVNjaGVtYSwgc3RyaW5nRmllbGQgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvc2NoZW1hLmpzJztcbmltcG9ydCB7XG4gIGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCxcbiAgZGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkSHJlZlRhcmdldCxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZExpc3RUYXJnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldCxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldCxcbiAgZGVmaW5lQmFja29mZmljZUZvcm1NdXRhdGlvbkFjdGlvbixcbiAgZGVmaW5lQmFja29mZmljZUZpbHRlcnMsXG4gIGRlZmluZUJhY2tvZmZpY2VNdXRhdGlvbkFjdGlvbixcbiAgZGVmaW5lQmFja29mZmljZVBpY2tlcixcbiAgZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyLFxuICBkZWZpbmVCYWNrb2ZmaWNlU29ydHMsXG4gIGRhdGV0aW1lRmlsdGVyLFxuICBlbnRpdHlJZEZpbHRlcixcbiAgZW51bUZpbHRlcixcbiAgbnVtYmVyRmlsdGVyLFxufSBmcm9tICcuLi9idWlsZGVycy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb24gfSBmcm9tICcuLi9zdGF0ZS9saXN0TmF2aWdhdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxUaXRsZU1ldGFJdGVtLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlTWFuaWZlc3RMaXN0U3RhdGVJbnB1dCxcbiAgQmFja29mZmljZUxpc3RSZXNwb25zaXZlTWV0YUl0ZW0sXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbnR5cGUgVGVzdFNvcnQgPSAnQ1JFQVRFRF9BVF9BU0MnIHwgJ0NSRUFURURfQVRfREVTQyc7XG50eXBlIFRlc3RLaW5kID0gJ0EnIHwgJ0InO1xudHlwZSBUZXN0Q3VycmVuY3kgPSAnRVVSJyB8ICdVU0QnO1xuXG5pbnRlcmZhY2UgVGVzdExpc3RPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgd2hlcmU/OiB7XG4gICAgICBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgICAga2luZD86IFRlc3RLaW5kIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGF0dGVtcHQ/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgICAgY3JlYXRlZEZyb20/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0gfCBudWxsO1xuICAgIHNvcnQ/OiBUZXN0U29ydCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9O1xuICByZXNwb25zZToge1xuICAgIHJlYWRvbmx5IHJvd3M6IHJlYWRvbmx5IHVua25vd25bXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3RQaWNrZXJPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgd2hlcmU/OiB7XG4gICAgICBvcmdhbml6YXRpb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgfSB8IG51bGw7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9O1xuICByZXNwb25zZToge1xuICAgIHJlYWRvbmx5IHJvd3M6IHJlYWRvbmx5IHVua25vd25bXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3RDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUge1xuICB2YXJpYWJsZXM6IHtcbiAgICB3aGVyZT86IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4gfCBudWxsO1xuICB9O1xuICByZXNwb25zZToge1xuICAgIHJlYWRvbmx5IHJvd3NDb3VudDogbnVtYmVyO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVGVzdERhc2hib2FyZE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUge1xuICB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSB1c2Vyczoge1xuICAgICAgcmVhZG9ubHkgdG90YWxDb3VudDogbnVtYmVyO1xuICAgIH07XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIGZyb206IHN0cmluZztcbiAgICB0bzogc3RyaW5nO1xuICAgIHNldmVyaXR5PzogVGVzdEtpbmQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9O1xuICByZXNwb25zZToge1xuICAgIHJlYWRvbmx5IHRocm91Z2hwdXRDb3VudDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGZhaWx1cmVSYXRlOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgdG9wRmFpbHVyZXM6IHJlYWRvbmx5IHtcbiAgICAgIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gICAgICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgICB9W107XG4gICAgcmVhZG9ubHkgYnVja2V0czogcmVhZG9ubHkge1xuICAgICAgcmVhZG9ubHkgYnVja2V0OiBzdHJpbmc7XG4gICAgICByZWFkb25seSBjb3VudDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3RDcmVhdGVPcmdhbml6YXRpb25PcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgaW5wdXQ6IHtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIGN1cnJlbmN5OiBUZXN0Q3VycmVuY3k7XG4gICAgfTtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSBjcmVhdGVPcmdhbml6YXRpb246IHtcbiAgICAgIHJlYWRvbmx5IHN0YXR1czogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiB7XG4gICAgICAgIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gICAgICB9IHwgbnVsbDtcbiAgICB9O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVGVzdEFyY2hpdmVPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSBhcmNoaXZlOiB7XG4gICAgICByZWFkb25seSBzdGF0dXM6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG50eXBlIFRlc3RDcmVhdGVPcmdhbml6YXRpb25Gb3JtVmFsdWVzID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbmN5OiBUZXN0Q3VycmVuY3k7XG59O1xuXG5jb25zdCBsYWJlbDogSTE4bkxhYmVsID0gKHQpID0+IHtcbiAgcmV0dXJuIHQoJ2NvbW1vbi5sYWJlbCcpO1xufTtcblxuY29uc3QgdGVzdExpc3RRdWVyeVNjaGVtYSA9IGRlZmluZVNjaGVtYSh7XG4gIHByb2plY3RJZDogc3RyaW5nRmllbGQoWydlcSddKSxcbiAga2luZDogc3RyaW5nRmllbGQoWydlcSddKSxcbn0pO1xuXG5jb25zdCB0ZXN0TGlzdE5hdmlnYXRpb24gPSBkZWZpbmVCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb248VGVzdExpc3RPcGVyYXRpb24+KCkoe1xuICBkZWZhdWx0czogeyB3aGVyZTogbnVsbCwgc29ydDogJ0NSRUFURURfQVRfREVTQycgfSxcbiAgZmlsdGVyU2NoZW1hOiB7XG4gICAgc2NoZW1hOiB0ZXN0TGlzdFF1ZXJ5U2NoZW1hLFxuICAgIHRvV2hlcmU6IChmaWx0ZXJzKSA9PiB7XG4gICAgICBjb25zdCByYXdLaW5kID0gZmlsdGVycy5raW5kPy5lcTtcbiAgICAgIGxldCBraW5kOiBUZXN0S2luZCB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChyYXdLaW5kID09PSAnQScgfHwgcmF3S2luZCA9PT0gJ0InKSB7XG4gICAgICAgIGtpbmQgPSByYXdLaW5kO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvamVjdElkOiBmaWx0ZXJzLnByb2plY3RJZD8uZXEsXG4gICAgICAgIGtpbmQsXG4gICAgICB9O1xuICAgIH0sXG4gICAgZnJvbVdoZXJlOiAod2hlcmUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb2plY3RJZDogeyBlcTogd2hlcmU/LnByb2plY3RJZCA/PyB1bmRlZmluZWQgfSxcbiAgICAgICAga2luZDogeyBlcTogd2hlcmU/LmtpbmQgPz8gdW5kZWZpbmVkIH0sXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG4gIHNvcnRJZHM6IFsnQ1JFQVRFRF9BVF9BU0MnLCAnQ1JFQVRFRF9BVF9ERVNDJ10sXG59KTtcblxudGVzdExpc3ROYXZpZ2F0aW9uLmVuY29kZSh7XG4gIHdoZXJlOiB7IHByb2plY3RJZDogJ3Byb2plY3QtMScsIGtpbmQ6ICdBJyB9LFxuICBzb3J0OiAnQ1JFQVRFRF9BVF9BU0MnLFxufSk7XG5cbnRlc3RMaXN0TmF2aWdhdGlvbi5lbmNvZGUoe1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QgbmF2aWdhdGlvbiBzdGF0ZSBpcyBleGFjdCB0byB0aGUgb3BlcmF0aW9uIHdoZXJlIGlucHV0LlxuICB3aGVyZTogeyBzdGF0dXM6ICdPUEVOJyB9LFxufSk7XG5cbnRlc3RMaXN0TmF2aWdhdGlvbi5kZWNvZGUoe1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QgbmF2aWdhdGlvbiBmaWx0ZXJzIGFyZSBleGFjdCB0byB0aGUgZGVzdGluYXRpb24gc2NoZW1hLlxuICBmaWx0ZXJzOiB7IG1pc3Npbmc6IHsgZXE6ICd2YWx1ZScgfSB9LFxufSk7XG5cbmNvbnN0IHR5cGVkTGlzdE1hbmlmZXN0ID0gY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0KHtcbiAgaWQ6ICd0YXNrcycsXG4gIHJvdXRlU2VnbWVudDogJ3Rhc2tzJyxcbiAgbGFiZWwsXG4gIHJvdXRlczoge1xuICAgIGxpc3Q6ICcvdGFza3MnLFxuICAgIGRldGFpbDogKGlkKSA9PiB7XG4gICAgICByZXR1cm4gYC90YXNrcy8ke2lkfWA7XG4gICAgfSxcbiAgICBkZXRhaWxQYWdlOiAoaWQsIHBhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH0vJHtwYWdlSWR9YDtcbiAgICB9LFxuICB9LFxuICBoYXNMaXN0OiB0cnVlLFxuICBsaXN0TmF2aWdhdGlvbjogdGVzdExpc3ROYXZpZ2F0aW9uLFxuICBmYWNldHM6IHtcbiAgICBkZXRhaWxMYXlvdXQ6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgICBkZXRhaWxQYWdlOiBhc3luYyAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R5cGUgdGVzdCcpO1xuICAgIH0sXG4gIH0sXG59KTtcblxuY29uc3QgcnVudGltZUxpc3RNYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSA9IHR5cGVkTGlzdE1hbmlmZXN0O1xuZXhwb3J0IGNvbnN0IHJ1bnRpbWVMaXN0TWFuaWZlc3RJZCA9IHJ1bnRpbWVMaXN0TWFuaWZlc3QuaWQ7XG5cbnR5cGUgVHlwZWRMaXN0U3RhdGUgPSBCYWNrb2ZmaWNlTWFuaWZlc3RMaXN0U3RhdGVJbnB1dDxcbiAgeyB0YXNrczogdHlwZW9mIHR5cGVkTGlzdE1hbmlmZXN0IH0sXG4gICd0YXNrcydcbj47XG5cbmV4cG9ydCBjb25zdCB0eXBlZExpc3RTdGF0ZTogVHlwZWRMaXN0U3RhdGUgPSB7XG4gIHdoZXJlOiB7IHByb2plY3RJZDogJ3Byb2plY3QtMScgfSxcbiAgc29ydDogJ0NSRUFURURfQVRfQVNDJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkVHlwZWRMaXN0U3RhdGU6IFR5cGVkTGlzdFN0YXRlID0ge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIG1hbmlmZXN0LWRlcml2ZWQgbGlzdCBzdGF0ZSByZWplY3RzIHVua25vd24gd2hlcmUgZmllbGRzLlxuICB3aGVyZTogeyBzdGF0dXM6ICdPUEVOJyB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHJ1bnRpbWVMaXN0U3RhdGU6IEJhY2tvZmZpY2VNYW5pZmVzdExpc3RTdGF0ZUlucHV0PFxuICBSZWNvcmQ8c3RyaW5nLCBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtPixcbiAgc3RyaW5nXG4+ID0ge1xuICB3aGVyZTogeyBzdGF0dXM6ICdPUEVOJyB9LFxuICBzb3J0OiAnQ1JFQVRFRF9BVF9ERVNDJyxcbn07XG5cbi8vIEB0cy1leHBlY3QtZXJyb3IgbGlzdCBtYW5pZmVzdHMgcmVxdWlyZSBzeW5jaHJvbm91cyBsaXN0IG5hdmlnYXRpb24uXG5jcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3Qoe1xuICBpZDogJ3Rhc2tzJyxcbiAgcm91dGVTZWdtZW50OiAndGFza3MnLFxuICBsYWJlbCxcbiAgcm91dGVzOiB7XG4gICAgbGlzdDogJy90YXNrcycsXG4gICAgZGV0YWlsOiAoaWQpID0+IHtcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9YDtcbiAgICB9LFxuICAgIGRldGFpbFBhZ2U6IChpZCwgcGFnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYC90YXNrcy8ke2lkfS8ke3BhZ2VJZH1gO1xuICAgIH0sXG4gIH0sXG4gIGhhc0xpc3Q6IHRydWUsXG4gIGZhY2V0czoge1xuICAgIGRldGFpbExheW91dDogYXN5bmMgKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHRlc3QnKTtcbiAgICB9LFxuICAgIGRldGFpbFBhZ2U6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgfSxcbn0pO1xuXG5jcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3Qoe1xuICAuLi50eXBlZExpc3RNYW5pZmVzdCxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG5hdmlnYXRpb24gbXVzdCBwcm92aWRlIHRoZSBjb21wbGV0ZSBzeW5jaHJvbm91cyBjb250cmFjdC5cbiAgbGlzdE5hdmlnYXRpb246IHsga2luZDogJ2xpc3QtbmF2aWdhdGlvbicgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRm9ybU11dGF0aW9uQWN0aW9uPFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uT3BlcmF0aW9uLFxuICBudWxsLFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uRm9ybVZhbHVlc1xuPigpKHtcbiAgaWQ6ICdjcmVhdGUtb3JnYW5pemF0aW9uJyxcbiAga2luZDogJ2Zvcm1NdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGZpZWxkczogW10sXG4gIGdldFZhcmlhYmxlczogKF9ub2RlLCB2YWx1ZXMpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgbmFtZTogdmFsdWVzLm5hbWUsXG4gICAgICAgIGN1cnJlbmN5OiB2YWx1ZXMuY3VycmVuY3ksXG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4gIHRvYXN0czoge1xuICAgIHN1Y2Nlc3M6IHtcbiAgICAgIHRpdGxlOiBsYWJlbCxcbiAgICAgIHZpZXc6IHtcbiAgICAgICAgZW50aXR5SWQ6ICdvcmdhbml6YXRpb25zJyxcbiAgICAgICAgZ2V0VGFyZ2V0SWQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5jcmVhdGVPcmdhbml6YXRpb24ub3JnYW5pemF0aW9uPy5pZCA/PyBudWxsO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb248XG4gIFRlc3RDcmVhdGVPcmdhbml6YXRpb25PcGVyYXRpb24sXG4gIG51bGwsXG4gIFRlc3RDcmVhdGVPcmdhbml6YXRpb25Gb3JtVmFsdWVzXG4+KCkoe1xuICBpZDogJ21pc3NpbmctY3VycmVuY3knLFxuICBraW5kOiAnZm9ybU11dGF0aW9uJyxcbiAgbGFiZWwsXG4gIG11dGF0aW9uOiB7fSBhcyBuZXZlcixcbiAgZmllbGRzOiBbXSxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBjcmVhdGUgb3JnYW5pemF0aW9uIHZhcmlhYmxlcyBtdXN0IGluY2x1ZGUgcmVxdWlyZWQgaW5wdXQuY3VycmVuY3kuXG4gIGdldFZhcmlhYmxlczogKF9ub2RlLCB2YWx1ZXMpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgbmFtZTogdmFsdWVzLm5hbWUsXG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZUZvcm1NdXRhdGlvbkFjdGlvbjxcbiAgVGVzdENyZWF0ZU9yZ2FuaXphdGlvbk9wZXJhdGlvbixcbiAgbnVsbCxcbiAgeyBuYW1lOiBzdHJpbmc7IGN1cnJlbmN5OiAnR0JQJyB9XG4+KCkoe1xuICBpZDogJ2ludmFsaWQtY3VycmVuY3knLFxuICBraW5kOiAnZm9ybU11dGF0aW9uJyxcbiAgbGFiZWwsXG4gIG11dGF0aW9uOiB7fSBhcyBuZXZlcixcbiAgZmllbGRzOiBbXSxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBjcmVhdGUgb3JnYW5pemF0aW9uIGN1cnJlbmN5IG11c3QgYmUgb25lIG9mIHRoZSBSZWxheSBnZW5lcmF0ZWQgZW51bSB2YWx1ZXMuXG4gIGdldFZhcmlhYmxlczogKF9ub2RlLCB2YWx1ZXMpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgbmFtZTogdmFsdWVzLm5hbWUsXG4gICAgICAgIGN1cnJlbmN5OiB2YWx1ZXMuY3VycmVuY3ksXG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZU11dGF0aW9uQWN0aW9uPFRlc3RBcmNoaXZlT3BlcmF0aW9uLCB7IGlkOiBzdHJpbmcgfT4oKSh7XG4gIGlkOiAnYXJjaGl2ZScsXG4gIGtpbmQ6ICdtdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGdldFZhcmlhYmxlczogKG5vZGUpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgfTtcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlTXV0YXRpb25BY3Rpb248VGVzdEFyY2hpdmVPcGVyYXRpb24sIHsgaWQ6IHN0cmluZyB9PigpKHtcbiAgaWQ6ICdhcmNoaXZlLW1pc3NpbmctaWQnLFxuICBraW5kOiAnbXV0YXRpb24nLFxuICBsYWJlbCxcbiAgbXV0YXRpb246IHt9IGFzIG5ldmVyLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIG11dGF0aW9uIHZhcmlhYmxlcyBtdXN0IGluY2x1ZGUgcmVxdWlyZWQgaWQuXG4gIGdldFZhcmlhYmxlczogKCkgPT4ge1xuICAgIHJldHVybiB7fTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgcmVzcG9uc2l2ZU1ldGE6IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtID0ge1xuICBpZDogJ3N0YXRlJyxcbiAgbGFiZWwsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRSZXNwb25zaXZlTWV0YTogQmFja29mZmljZUxpc3RSZXNwb25zaXZlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHJlc3BvbnNpdmUgbWV0YSBsYWJlbHMgbXVzdCBiZSBpMThuIGxhYmVsIGZ1bmN0aW9ucywgbm90IHJhdyBzdHJpbmdzLlxuICBsYWJlbDogJ1N0YXRlJyxcbiAgdmFsdWU6ICdyZWFkeScsXG59O1xuXG5leHBvcnQgY29uc3QgdGl0bGVNZXRhOiBCYWNrb2ZmaWNlRGV0YWlsVGl0bGVNZXRhSXRlbSA9IHtcbiAgaWQ6ICdzdGF0ZScsXG4gIGxhYmVsLFxuICB2YWx1ZTogJ3JlYWR5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkVGl0bGVNZXRhOiBCYWNrb2ZmaWNlRGV0YWlsVGl0bGVNZXRhSXRlbSA9IHtcbiAgaWQ6ICdzdGF0ZScsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgdGl0bGUgbWV0YSBsYWJlbHMgbXVzdCBiZSBpMThuIGxhYmVsIGZ1bmN0aW9ucywgbm90IHJhdyBzdHJpbmdzLlxuICBsYWJlbDogJ1N0YXRlJyxcbiAgdmFsdWU6ICdyZWFkeScsXG59O1xuXG5jb25zdCBmaWx0ZXJzID0gZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICBlbnRpdHlJZEZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAncHJvamVjdElkJz4oXG4gICAgJ3Byb2plY3RJZCcsXG4gICAge1xuICAgICAgZW50aXR5OiAncHJvamVjdHMnLFxuICAgICAgbGFiZWwsXG4gICAgfSxcbiAgKSxcbiAgZW51bUZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAna2luZCc+KCdraW5kJywge1xuICAgIGxhYmVsLFxuICAgIG9wdGlvbnM6IFsnQScsICdCJ10sXG4gIH0pLFxuICBudW1iZXJGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2F0dGVtcHQnPihcbiAgICAnYXR0ZW1wdCcsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgfSxcbiAgKSxcbiAgZGF0ZXRpbWVGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2NyZWF0ZWRGcm9tJz4oXG4gICAgJ2NyZWF0ZWRGcm9tJyxcbiAgICB7XG4gICAgICBsYWJlbCxcbiAgICAgIG1vZGU6ICdmcm9tJyxcbiAgICB9LFxuICApLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VTb3J0czxUZXN0TGlzdE9wZXJhdGlvbj4oKShbeyBpZDogJ0NSRUFURURfQVRfREVTQycsIGxhYmVsIH1dKTtcblxuZGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0PFRlc3RMaXN0T3BlcmF0aW9uLCBUZXN0Q291bnRPcGVyYXRpb24+KCkoe1xuICB0aXRsZTogbGFiZWwsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBjb3VudDoge1xuICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICBidWlsZFZhcmlhYmxlczogKHsgd2hlcmUgfSkgPT4ge1xuICAgICAgcmV0dXJuIHsgd2hlcmUgfTtcbiAgICB9LFxuICAgIGdldENvdW50OiAoZGF0YSkgPT4ge1xuICAgICAgcmV0dXJuIChkYXRhIGFzIFRlc3RDb3VudE9wZXJhdGlvblsncmVzcG9uc2UnXSkucm93c0NvdW50O1xuICAgIH0sXG4gIH0sXG4gIGZpbHRlcnMsXG4gIHNvcnRzOiBkZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAgIHsgaWQ6ICdDUkVBVEVEX0FUX0FTQycsIGxhYmVsIH0sXG4gIF0pLFxuICBkZWZhdWx0U3RhdGU6IHtcbiAgICB3aGVyZTogeyBwcm9qZWN0SWQ6ICdwcm9qZWN0LTEnIH0sXG4gICAgc29ydDogJ0NSRUFURURfQVRfREVTQycsXG4gIH0sXG4gIGdldENvbm5lY3Rpb246ICgpID0+IHtcbiAgICByZXR1cm4geyBlZGdlczogW10gfTtcbiAgfSxcbiAgdG9Sb3c6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93O1xuICB9LFxuICBnZXRSb3dJZDogKCkgPT4ge1xuICAgIHJldHVybiAncm93JztcbiAgfSxcbiAgY29sdW1uczogW10sXG59KTtcblxuZGVmaW5lQmFja29mZmljZVBpY2tlcjxUZXN0UGlja2VyT3BlcmF0aW9uPigpKHtcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICBmcmFnbWVudDoge30gYXMgbmV2ZXIsXG4gIGdldENvbm5lY3Rpb246ICgpID0+IHtcbiAgICByZXR1cm4geyBlZGdlczogW10gfTtcbiAgfSxcbiAgdG9Sb3c6ICgpID0+IHtcbiAgICByZXR1cm4geyBpZDogJ3JvdycsIHRpdGxlOiAnUm93JyB9O1xuICB9LFxuICBnZXRSb3dJZDogKHJvdykgPT4ge1xuICAgIHJldHVybiByb3cuaWQ7XG4gIH0sXG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM6ICh7IHNjb3BlIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgb3JnYW5pemF0aW9uSWQ6IHNjb3BlPy5vcmdhbml6YXRpb25JZCxcbiAgICAgIH0sXG4gICAgICBjb3VudDogMjAsXG4gICAgICBjdXJzb3I6IG51bGwsXG4gICAgfTtcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnKHtcbiAgdGl0bGU6IGxhYmVsLFxuICB3aWRnZXRzOiBbXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICd1c2VycycsXG4gICAgICBraW5kOiAnbWV0cmljR3JvdXAnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiB7fSxcbiAgICAgIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICd1c2VycycsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlOiBkYXRhLnVzZXJzLnRvdGFsQ291bnQsXG4gICAgICAgICAgICB0YXJnZXQ6IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0PFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgICAgICAgICAgICAgZW50aXR5SWQ6ICd0YXNrcycsXG4gICAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgICAgd2hlcmU6IHsga2luZDogJ0EnIH0sXG4gICAgICAgICAgICAgICAgc29ydDogJ0NSRUFURURfQVRfREVTQycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0KHtcbiAgICAgIGlkOiAnd2luZG93JyxcbiAgICAgIGtpbmQ6ICd3aW5kb3dDb250cm9sJyxcbiAgICAgIHRpdGxlOiBsYWJlbCxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3Rocm91Z2hwdXQnLFxuICAgICAga2luZDogJ3RyZW5kTWV0cmljJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmcm9tOiB3aW5kb3cuZnJvbSxcbiAgICAgICAgICB0bzogd2luZG93LnRvLFxuICAgICAgICAgIHNldmVyaXR5OiAnQScsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB2YWx1ZTogZGF0YS50aHJvdWdocHV0Q291bnQsXG4gICAgICAgICAgZGVsdGE6IHtcbiAgICAgICAgICAgIHZhbHVlOiAxMixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogJ3VwJyxcbiAgICAgICAgICAgIHRvbmU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3BhcmtsaW5lOiBbeyB4OiAnMjAyNi0wMS0wMVQwMDowMDowMC4wMDBaJywgeTogMSB9XSxcbiAgICAgICAgICB0YXJnZXQ6IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0PFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgICAgICAgICAgIGVudGl0eUlkOiAndGFza3MnLFxuICAgICAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICAgICAgd2hlcmU6IHsga2luZDogJ0EnIH0sXG4gICAgICAgICAgICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICdmYWlsdXJlLXJhdGUnLFxuICAgICAga2luZDogJ3NsYUdhdWdlJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIHZhbHVlOiBkYXRhLmZhaWx1cmVSYXRlLFxuICAgICAgICAgIG1heDogMSxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuMDUsXG4gICAgICAgICAgdW5pdDogJyUnLFxuICAgICAgICAgIHRvbmU6ICd3YXJuaW5nJyxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICd0b3AtZmFpbHVyZXMnLFxuICAgICAga2luZDogJ2JyZWFrZG93bkxpc3QnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiBkYXRhLnRvcEZhaWx1cmVzLm1hcCgoZmFpbHVyZSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZmFpbHVyZS5pZCxcbiAgICAgICAgICAgIGxhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlLmxhYmVsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiBmYWlsdXJlLmNvdW50LFxuICAgICAgICAgICAgdG9uZTogJ2RhbmdlcicsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndGltZWxpbmUnLFxuICAgICAga2luZDogJ3RpbWVsaW5lQ2hhcnQnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIGFyaWFMYWJlbDogbGFiZWwsXG4gICAgICBjaGFydDogJ2JhcicsXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlcmllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3Rocm91Z2hwdXQnLFxuICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgY29sb3I6ICcjMjU2M2ViJyxcbiAgICAgICAgICAgICAgZGF0YTogZGF0YS5idWNrZXRzLm1hcCgoYnVja2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHg6IGJ1Y2tldC5idWNrZXQsXG4gICAgICAgICAgICAgICAgICB5OiBidWNrZXQuY291bnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAncmlzay1xdWV1ZScsXG4gICAgICBraW5kOiAncmlza1F1ZXVlJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdkZWFkLW91dGJveCcsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZGFuZ2VyJyxcbiAgICAgICAgICAgIHZhbHVlOiA0LFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnc3BvdGxpZ2h0JyxcbiAgICAgIGtpbmQ6ICdlbnRpdHlTcG90bGlnaHQnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB0aXRsZTogbGFiZWwsXG4gICAgICAgICAgdG9uZTogJ2luZm8nLFxuICAgICAgICAgIG1ldGE6IFt7IGlkOiAnYWdlJywgbGFiZWwsIHZhbHVlOiAnNDUgbWluJyB9XSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICdoZWFsdGgnLFxuICAgICAga2luZDogJ2hlYWx0aE1hdHJpeCcsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnd29yaycsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIGNlbGxzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ3Rhc2tzJyxcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICAgICAgICB0b25lOiAnd2FybmluZycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQoe1xuICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgIGtpbmQ6ICdxdWlja0FjdGlvbnMnLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd1c2VycycsXG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkSHJlZlRhcmdldCgnL3VzZXJzJyksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICBdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgaWQ6ICdpbnZhbGlkLXVzZXJzJyxcbiAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICB2YXJpYWJsZXM6IHt9LFxuICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgd2lkZ2V0IHJlc29sdmUgZGF0YSBpcyB0eXBlZCBmcm9tIHRoZSBvcGVyYXRpb24gcmVzcG9uc2UuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgdmFsdWU6IGRhdGEucHJvamVjdHMudG90YWxDb3VudCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gIGlkOiAnaW52YWxpZC13aW5kb3ctdmFyaWFibGVzJyxcbiAga2luZDogJ3RyZW5kTWV0cmljJyxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCB3aWRnZXQgdmFyaWFibGVzIG11c3QgbWF0Y2ggdGhlIG9wZXJhdGlvbiB2YXJpYWJsZXMuXG4gIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogd2luZG93LmZyb20sXG4gICAgfTtcbiAgfSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWwsXG4gICAgICB2YWx1ZTogZGF0YS50aHJvdWdocHV0Q291bnQsXG4gICAgfTtcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIGVudGl0eUlkOiAndGFza3MnLFxuICBzdGF0ZToge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIGxpc3QgdGFyZ2V0IHdoZXJlIG11c3QgbWF0Y2ggdGhlIHRhcmdldCBsaXN0IG9wZXJhdGlvbiB3aGVyZSBpbnB1dC5cbiAgICB3aGVyZTogeyBvcmdhbml6YXRpb25JZDogJ29yZy0xJyB9LFxuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0PFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgZW50aXR5SWQ6ICd0YXNrcycsXG4gIHN0YXRlOiB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgbGlzdCB0YXJnZXQgc29ydCBtdXN0IG1hdGNoIHRoZSB0YXJnZXQgbGlzdCBvcGVyYXRpb24gc29ydCBpbnB1dC5cbiAgICBzb3J0OiAnVVBEQVRFRF9BVF9ERVNDJyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaW52YWxpZERhc2hib2FyZENvbmZpZzogQmFja29mZmljZURhc2hib2FyZENvbmZpZyA9IHtcbiAgdGl0bGU6IGxhYmVsLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCBjb25maWdzIGRvIG5vdCBzdXBwb3J0IGdsb2JhbCBxdWVyaWVzLlxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIHdpZGdldHM6IFtdLFxufTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBkYXRhLWRyaXZlbiBkYXNoYm9hcmQgd2lkZ2V0cyBtdXN0IGRlY2xhcmUgYSBxdWVyeS5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgaWQ6ICdtaXNzaW5nLXF1ZXJ5JyxcbiAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgdmFyaWFibGVzOiB7fSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3VzZXJzJyxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlOiBkYXRhLnVzZXJzLnRvdGFsQ291bnQsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgdGFyZ2V0OiAncHJvamVjdHMnLFxuICB3aGVyZUtleTogJ3Byb2plY3RJZCcsXG59KTtcblxuZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgdGFyZ2V0OiAncHJvamVjdHMnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIG9yZ2FuaXphdGlvbklkIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgdGFyZ2V0IGxpc3Qgd2hlcmUgaW5wdXQuXG4gIHdoZXJlS2V5OiAnb3JnYW5pemF0aW9uSWQnLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBtaXNzaW5nRmllbGQgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBvcGVyYXRpb24gd2hlcmUgaW5wdXQuXG4gIGVudGl0eUlkRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdtaXNzaW5nRmllbGQnPihcbiAgICAnbWlzc2luZ0ZpZWxkJyxcbiAgICB7XG4gICAgICBlbnRpdHk6ICdwcm9qZWN0cycsXG4gICAgICBsYWJlbCxcbiAgICB9LFxuICApLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW51bUZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAna2luZCc+KCdraW5kJywge1xuICAgIGxhYmVsLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgICdBJyxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQyBpcyBub3QgYSB2YWxpZCBUZXN0S2luZCB2YWx1ZS5cbiAgICAgICdDJyxcbiAgICBdLFxuICB9KSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIC8vIEB0cy1leHBlY3QtZXJyb3Iga2luZCBpcyBhbiBlbnVtIHN0cmluZyBmaWVsZCwgbm90IGEgbnVtYmVyIGZpZWxkLlxuICBudW1iZXJGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgfSksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGF0dGVtcHQgaXMgYSBudW1iZXIgZmllbGQsIG5vdCBhIGRhdGV0aW1lIHN0cmluZyBmaWVsZC5cbiAgZGF0ZXRpbWVGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2F0dGVtcHQnPihcbiAgICAnYXR0ZW1wdCcsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIFVQREFURURfQVRfREVTQyBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIG9wZXJhdGlvbiBzb3J0LlxuICB7IGlkOiAnVVBEQVRFRF9BVF9ERVNDJywgbGFiZWwgfSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3Q8VGVzdExpc3RPcGVyYXRpb24sIFRlc3RDb3VudE9wZXJhdGlvbj4oKSh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICBmcmFnbWVudDoge30gYXMgbmV2ZXIsXG4gIGNvdW50OiB7XG4gICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgIGJ1aWxkVmFyaWFibGVzOiAoeyB3aGVyZSB9KSA9PiB7XG4gICAgICByZXR1cm4geyB3aGVyZSB9O1xuICAgIH0sXG4gICAgZ2V0Q291bnQ6IChkYXRhKSA9PiB7XG4gICAgICByZXR1cm4gKGRhdGEgYXMgVGVzdENvdW50T3BlcmF0aW9uWydyZXNwb25zZSddKS5yb3dzQ291bnQ7XG4gICAgfSxcbiAgfSxcbiAgZmlsdGVycyxcbiAgc29ydHM6IGRlZmluZUJhY2tvZmZpY2VTb3J0czxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gICAgeyBpZDogJ0NSRUFURURfQVRfQVNDJywgbGFiZWwgfSxcbiAgXSksXG4gIGRlZmF1bHRTdGF0ZToge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igb3JnYW5pemF0aW9uSWQgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBsaXN0IHdoZXJlIGlucHV0LlxuICAgIHdoZXJlOiB7IG9yZ2FuaXphdGlvbklkOiAnb3JnLTEnIH0sXG4gICAgc29ydDogJ0NSRUFURURfQVRfQVNDJyxcbiAgfSxcbiAgZ2V0Q29ubmVjdGlvbjogKCkgPT4ge1xuICAgIHJldHVybiB7IGVkZ2VzOiBbXSB9O1xuICB9LFxuICB0b1JvdzogKHJvdykgPT4ge1xuICAgIHJldHVybiByb3c7XG4gIH0sXG4gIGdldFJvd0lkOiAoKSA9PiB7XG4gICAgcmV0dXJuICdyb3cnO1xuICB9LFxuICBjb2x1bW5zOiBbXSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlUGlja2VyPFRlc3RQaWNrZXJPcGVyYXRpb24+KCkoe1xuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgZ2V0Q29ubmVjdGlvbjogKCkgPT4ge1xuICAgIHJldHVybiB7IGVkZ2VzOiBbXSB9O1xuICB9LFxuICB0b1JvdzogKCkgPT4ge1xuICAgIHJldHVybiB7IGlkOiAncm93JywgdGl0bGU6ICdSb3cnIH07XG4gIH0sXG4gIGdldFJvd0lkOiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdy5pZDtcbiAgfSxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXR1cm5lZCB3aGVyZSBzaGFwZSBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIHBpY2tlciBvcGVyYXRpb24uXG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM6ICh7IHNjb3BlIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgcHJvamVjdElkOiAoc2NvcGUgYXMgeyBwcm9qZWN0SWQ/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk/LnByb2plY3RJZCxcbiAgICAgIH0sXG4gICAgICBjb3VudDogMjAsXG4gICAgICBjdXJzb3I6IG51bGwsXG4gICAgfTtcbiAgfSxcbn0pO1xuIl19
|
|
666
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWJvdW5kLWNvbmZpZy50ZXN0LWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS10ZXN0cy9vcGVyYXRpb24tYm91bmQtY29uZmlnLnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsa0NBQWtDLEVBQ2xDLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFxSDVFLE1BQU0sS0FBSyxHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDN0IsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7SUFDdkMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUMxQixDQUFDLENBQUM7QUFFSCxNQUFNLGtCQUFrQixHQUFHLDhCQUE4QixFQUFxQixDQUFDO0lBQzdFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0lBQ2xELFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxJQUEwQixDQUFDO1lBQy9CLElBQUksT0FBTyxLQUFLLEdBQUcsSUFBSSxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDakIsQ0FBQztZQUNELE9BQU87Z0JBQ0wsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDaEMsSUFBSTthQUNMLENBQUM7UUFDSixDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTztnQkFDTCxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsSUFBSSxTQUFTLEVBQUU7Z0JBQ2hELElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRTthQUN2QyxDQUFDO1FBQ0osQ0FBQztLQUNGO0lBQ0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUM7Q0FDL0MsQ0FBQyxDQUFDO0FBRUgsa0JBQWtCLENBQUMsTUFBTSxDQUFDO0lBQ3hCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtJQUM1QyxJQUFJLEVBQUUsZ0JBQWdCO0NBQ3ZCLENBQUMsQ0FBQztBQUVILGtCQUFrQixDQUFDLE1BQU0sQ0FBQztJQUV4QixLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO0NBQzFCLENBQUMsQ0FBQztBQUVILGtCQUFrQixDQUFDLE1BQU0sQ0FBQztJQUV4QixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUU7Q0FDdEMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQztJQUNqRCxFQUFFLEVBQUUsT0FBTztJQUNYLFlBQVksRUFBRSxPQUFPO0lBQ3JCLEtBQUs7SUFDTCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ2IsT0FBTyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDekIsT0FBTyxVQUFVLEVBQUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0tBQ0Y7SUFDRCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsV0FBVyxFQUFFO1FBQ1g7WUFDRSxFQUFFLEVBQUUsVUFBVTtZQUNkLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLEtBQUs7WUFDTCxTQUFTLEVBQUUsSUFBSTtTQUNoQjtLQUNGO0lBQ0QsbUJBQW1CLEVBQUUsVUFBVTtJQUMvQixNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsQ0FBQztLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxtQkFBbUIsR0FBaUMsaUJBQWlCLENBQUM7QUFDNUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO0FBTzVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBbUI7SUFDNUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRTtJQUNqQyxJQUFJLEVBQUUsZ0JBQWdCO0NBQ3ZCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBbUI7SUFFbkQsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBR3pCO0lBQ0YsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtJQUN6QixJQUFJLEVBQUUsaUJBQWlCO0NBQ3hCLENBQUM7QUFHRix3QkFBd0IsQ0FBQztJQUN2QixFQUFFLEVBQUUsT0FBTztJQUNYLFlBQVksRUFBRSxPQUFPO0lBQ3JCLEtBQUs7SUFDTCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ2IsT0FBTyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDekIsT0FBTyxVQUFVLEVBQUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0tBQ0Y7SUFDRCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXO0lBQzFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLG1CQUFtQjtJQUMxRCxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDbkMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7S0FDRjtDQUNGLENBQUMsQ0FBQztBQUVILHdCQUF3QixDQUFDO0lBQ3ZCLEdBQUcsaUJBQWlCO0lBRXBCLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtDQUM1QyxDQUFDLENBQUM7QUFFSCx3QkFBd0IsQ0FBQztJQUN2QixHQUFHLGlCQUFpQjtJQUVwQixXQUFXLEVBQUUsRUFBRTtDQUNoQixDQUFDLENBQUM7QUFHSCx3QkFBd0IsQ0FBQztJQUN2QixHQUFHLGlCQUFpQjtJQUNwQixNQUFNLEVBQUU7UUFDTixZQUFZLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFlBQVk7UUFDbkQsVUFBVSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxVQUFVO0tBQ2hEO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsd0JBQXdCLENBQUM7SUFDdkIsR0FBRyxpQkFBaUI7SUFFcEIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQ25DLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsVUFBVTtLQUNoRDtDQUNGLENBQUMsQ0FBQztBQUVILHdCQUF3QixDQUFDO0lBQ3ZCLEdBQUcsaUJBQWlCO0lBRXBCLE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNuQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFlBQVk7S0FDcEQ7Q0FDRixDQUFDLENBQUM7QUFFSCxrQ0FBa0MsRUFJL0IsQ0FBQztJQUNGLEVBQUUsRUFBRSxxQkFBcUI7SUFDekIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsS0FBSztJQUNMLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLE1BQU0sRUFBRSxFQUFFO0lBQ1YsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzlCLE9BQU87WUFDTCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDMUI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDeEIsT0FBTyxRQUFRLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUM7Z0JBQzlELENBQUM7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCxrQ0FBa0MsRUFJL0IsQ0FBQztJQUNGLEVBQUUsRUFBRSxrQkFBa0I7SUFDdEIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsS0FBSztJQUNMLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLE1BQU0sRUFBRSxFQUFFO0lBRVYsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzlCLE9BQU87WUFDTCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2FBQ2xCO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxrQ0FBa0MsRUFJL0IsQ0FBQztJQUNGLEVBQUUsRUFBRSxrQkFBa0I7SUFDdEIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsS0FBSztJQUNMLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLE1BQU0sRUFBRSxFQUFFO0lBRVYsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzlCLE9BQU87WUFDTCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDMUI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILDhCQUE4QixFQUF3QyxDQUFDO0lBQ3JFLEVBQUUsRUFBRSxTQUFTO0lBQ2IsSUFBSSxFQUFFLFVBQVU7SUFDaEIsS0FBSztJQUNMLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3JCLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDWixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILDhCQUE4QixFQUF3QyxDQUFDO0lBQ3JFLEVBQUUsRUFBRSxvQkFBb0I7SUFDeEIsSUFBSSxFQUFFLFVBQVU7SUFDaEIsS0FBSztJQUNMLFFBQVEsRUFBRSxFQUFXO0lBRXJCLFlBQVksRUFBRSxHQUFHLEVBQUU7UUFDakIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFxQztJQUM5RCxFQUFFLEVBQUUsT0FBTztJQUNYLEtBQUs7SUFDTCxLQUFLLEVBQUUsT0FBTztDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBcUM7SUFDckUsRUFBRSxFQUFFLE9BQU87SUFFWCxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBa0M7SUFDdEQsRUFBRSxFQUFFLE9BQU87SUFDWCxLQUFLO0lBQ0wsS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQWtDO0lBQzdELEVBQUUsRUFBRSxPQUFPO0lBRVgsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztDQUNmLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRyx1QkFBdUIsRUFBcUIsQ0FBQztJQUMzRCxjQUFjLENBQ1osV0FBVyxFQUNYO1FBQ0UsTUFBTSxFQUFFLFVBQVU7UUFDbEIsS0FBSztLQUNOLENBQ0Y7SUFDRCxVQUFVLENBQXNELE1BQU0sRUFBRTtRQUN0RSxLQUFLO1FBQ0wsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztLQUNwQixDQUFDO0lBQ0YsWUFBWSxDQUNWLFNBQVMsRUFDVDtRQUNFLEtBQUs7S0FDTixDQUNGO0lBQ0QsY0FBYyxDQUNaLGFBQWEsRUFDYjtRQUNFLEtBQUs7UUFDTCxJQUFJLEVBQUUsTUFBTTtLQUNiLENBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCxxQkFBcUIsRUFBcUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUUvRSw4QkFBOEIsRUFBeUMsQ0FBQztJQUN0RSxLQUFLLEVBQUUsS0FBSztJQUNaLEtBQUssRUFBRSxFQUFXO0lBQ2xCLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxFQUFXO1FBQ2xCLGNBQWMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM1QixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLE9BQVEsSUFBdUMsQ0FBQyxTQUFTLENBQUM7UUFDNUQsQ0FBQztLQUNGO0lBQ0QsT0FBTztJQUNQLEtBQUssRUFBRSxxQkFBcUIsRUFBcUIsQ0FBQztRQUNoRCxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUU7S0FDaEMsQ0FBQztJQUNGLFlBQVksRUFBRTtRQUNaLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUU7UUFDakMsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QjtJQUNELGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDYixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxFQUFFLEVBQUU7Q0FDWixDQUFDLENBQUM7QUFFSCxzQkFBc0IsRUFBdUIsQ0FBQztJQUM1QyxLQUFLLEVBQUUsRUFBVztJQUNsQixRQUFRLEVBQUUsRUFBVztJQUNyQixhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ2xCLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7UUFDVixPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2hCLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDakMsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxjQUFjLEVBQUUsS0FBSyxFQUFFLGNBQWM7YUFDdEM7WUFDRCxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCwrQkFBK0IsQ0FBQztJQUM5QixLQUFLLEVBQUUsS0FBSztJQUNaLE9BQU8sRUFBRTtRQUNQLG9DQUFvQyxFQUEwQixDQUFDO1lBQzdELEVBQUUsRUFBRSxPQUFPO1lBQ1gsSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLEVBQVc7WUFDbEIsU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsT0FBTztvQkFDTDt3QkFDRSxFQUFFLEVBQUUsT0FBTzt3QkFDWCxLQUFLO3dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7d0JBQzVCLE1BQU0sRUFBRSxtQ0FBbUMsRUFBcUIsQ0FBQzs0QkFDL0QsUUFBUSxFQUFFLE9BQU87NEJBQ2pCLEtBQUssRUFBRTtnQ0FDTCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO2dDQUNwQixJQUFJLEVBQUUsaUJBQWlCOzZCQUN4Qjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztRQUNGLHFDQUFxQyxDQUFDO1lBQ3BDLEVBQUUsRUFBRSxRQUFRO1lBQ1osSUFBSSxFQUFFLGVBQWU7WUFDckIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO1FBQ0Ysb0NBQW9DLEVBQWdDLENBQUM7WUFDbkUsRUFBRSxFQUFFLFlBQVk7WUFDaEIsSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLEVBQVc7WUFDbEIsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO2dCQUN4QixPQUFPO29CQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNiLFFBQVEsRUFBRSxHQUFHO2lCQUNkLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hCLE9BQU87b0JBQ0wsS0FBSztvQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWU7b0JBQzNCLEtBQUssRUFBRTt3QkFDTCxLQUFLLEVBQUUsRUFBRTt3QkFDVCxTQUFTLEVBQUUsSUFBSTt3QkFDZixJQUFJLEVBQUUsU0FBUzt3QkFDZixLQUFLO3FCQUNOO29CQUNELFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLDBCQUEwQixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDcEQsTUFBTSxFQUFFLG1DQUFtQyxFQUFxQixDQUFDO3dCQUMvRCxRQUFRLEVBQUUsT0FBTzt3QkFDakIsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7NEJBQ3BCLElBQUksRUFBRSxpQkFBaUI7eUJBQ3hCO3FCQUNGLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDO1FBQ0Ysb0NBQW9DLEVBQWdDLENBQUM7WUFDbkUsRUFBRSxFQUFFLGNBQWM7WUFDbEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLEVBQVc7WUFDbEIsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO2dCQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hCLE9BQU87b0JBQ0wsS0FBSztvQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQ3ZCLEdBQUcsRUFBRSxDQUFDO29CQUNOLFNBQVMsRUFBRSxJQUFJO29CQUNmLElBQUksRUFBRSxHQUFHO29CQUNULElBQUksRUFBRSxTQUFTO2lCQUNoQixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7UUFDRixvQ0FBb0MsRUFBZ0MsQ0FBQztZQUNuRSxFQUFFLEVBQUUsY0FBYztZQUNsQixJQUFJLEVBQUUsZUFBZTtZQUNyQixLQUFLLEVBQUUsRUFBVztZQUNsQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUN0QyxPQUFPO3dCQUNMLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTt3QkFDZCxLQUFLLEVBQUUsR0FBRyxFQUFFOzRCQUNWLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQzt3QkFDdkIsQ0FBQzt3QkFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7d0JBQ3BCLElBQUksRUFBRSxRQUFRO3FCQUNmLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQztRQUNGLG9DQUFvQyxFQUFnQyxDQUFDO1lBQ25FLEVBQUUsRUFBRSxVQUFVO1lBQ2QsSUFBSSxFQUFFLGVBQWU7WUFDckIsS0FBSyxFQUFFLEVBQVc7WUFDbEIsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO2dCQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSyxFQUFFLEtBQUs7WUFDWixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsT0FBTztvQkFDTCxNQUFNLEVBQUU7d0JBQ047NEJBQ0UsRUFBRSxFQUFFLFlBQVk7NEJBQ2hCLEtBQUs7NEJBQ0wsS0FBSyxFQUFFLFNBQVM7NEJBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dDQUNoQyxPQUFPO29DQUNMLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTTtvQ0FDaEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2lDQUNoQixDQUFDOzRCQUNKLENBQUMsQ0FBQzt5QkFDSDtxQkFDRjtpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7UUFDRixvQ0FBb0MsRUFBZ0MsQ0FBQztZQUNuRSxFQUFFLEVBQUUsWUFBWTtZQUNoQixJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsRUFBVztZQUNsQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNaLE9BQU87b0JBQ0w7d0JBQ0UsRUFBRSxFQUFFLGFBQWE7d0JBQ2pCLEtBQUs7d0JBQ0wsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLEtBQUssRUFBRSxDQUFDO3FCQUNUO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztRQUNGLG9DQUFvQyxFQUFnQyxDQUFDO1lBQ25FLEVBQUUsRUFBRSxXQUFXO1lBQ2YsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixLQUFLLEVBQUUsRUFBVztZQUNsQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNaLE9BQU87b0JBQ0wsS0FBSztvQkFDTCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztpQkFDOUMsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDO1FBQ0Ysb0NBQW9DLEVBQWdDLENBQUM7WUFDbkUsRUFBRSxFQUFFLFFBQVE7WUFDWixJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLLEVBQUUsRUFBVztZQUNsQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNaLE9BQU87b0JBQ0w7d0JBQ0UsRUFBRSxFQUFFLE1BQU07d0JBQ1YsS0FBSzt3QkFDTCxLQUFLLEVBQUU7NEJBQ0w7Z0NBQ0UsRUFBRSxFQUFFLE9BQU87Z0NBQ1gsS0FBSztnQ0FDTCxLQUFLLEVBQUUsQ0FBQztnQ0FDUixJQUFJLEVBQUUsU0FBUzs2QkFDaEI7eUJBQ0Y7cUJBQ0Y7aUJBQ0YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDO1FBQ0YscUNBQXFDLENBQUM7WUFDcEMsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsRUFBRSxFQUFFLE9BQU87b0JBQ1gsS0FBSztvQkFDTCxNQUFNLEVBQUUsbUNBQW1DLENBQUMsUUFBUSxDQUFDO2lCQUN0RDthQUNGO1NBQ0YsQ0FBQztLQUNIO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsb0NBQW9DLEVBQTBCLENBQUM7SUFDN0QsRUFBRSxFQUFFLGVBQWU7SUFDbkIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsS0FBSyxFQUFFLEVBQVc7SUFDbEIsU0FBUyxFQUFFLEVBQUU7SUFDYixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNoQixPQUFPO1lBQ0w7Z0JBQ0UsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsS0FBSztnQkFHTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2FBQ2hDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxvQ0FBb0MsRUFBZ0MsQ0FBQztJQUNuRSxFQUFFLEVBQUUsMEJBQTBCO0lBQzlCLElBQUksRUFBRSxhQUFhO0lBQ25CLEtBQUssRUFBRSxFQUFXO0lBRWxCLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUN4QixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDaEIsT0FBTztZQUNMLEtBQUs7WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDNUIsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxtQ0FBbUMsRUFBcUIsQ0FBQztJQUN2RCxRQUFRLEVBQUUsT0FBTztJQUNqQixLQUFLLEVBQUU7UUFFTCxLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFO0tBQ25DO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsbUNBQW1DLEVBQXFCLENBQUM7SUFDdkQsUUFBUSxFQUFFLE9BQU87SUFDakIsS0FBSyxFQUFFO1FBRUwsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUE4QjtJQUMvRCxLQUFLLEVBQUUsS0FBSztJQUVaLEtBQUssRUFBRSxFQUFXO0lBQ2xCLE9BQU8sRUFBRSxFQUFFO0NBQ1osQ0FBQztBQUdGLG9DQUFvQyxFQUEwQixDQUFDO0lBQzdELEVBQUUsRUFBRSxlQUFlO0lBQ25CLElBQUksRUFBRSxhQUFhO0lBQ25CLFNBQVMsRUFBRSxFQUFFO0lBQ2IsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDaEIsT0FBTztZQUNMO2dCQUNFLEVBQUUsRUFBRSxPQUFPO2dCQUNYLEtBQUs7Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTthQUM3QjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsOEJBQThCLEVBQXFCLENBQUM7SUFDbEQsTUFBTSxFQUFFLFVBQVU7SUFDbEIsUUFBUSxFQUFFLFdBQVc7Q0FDdEIsQ0FBQyxDQUFDO0FBRUgsOEJBQThCLEVBQXFCLENBQUM7SUFDbEQsTUFBTSxFQUFFLFVBQVU7SUFFbEIsUUFBUSxFQUFFLGdCQUFnQjtDQUMzQixDQUFDLENBQUM7QUFFSCx1QkFBdUIsRUFBcUIsQ0FBQztJQUUzQyxjQUFjLENBQ1osY0FBYyxFQUNkO1FBQ0UsTUFBTSxFQUFFLFVBQVU7UUFDbEIsS0FBSztLQUNOLENBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCx1QkFBdUIsRUFBcUIsQ0FBQztJQUMzQyxVQUFVLENBQXNELE1BQU0sRUFBRTtRQUN0RSxLQUFLO1FBQ0wsT0FBTyxFQUFFO1lBQ1AsR0FBRztZQUVILEdBQUc7U0FDSjtLQUNGLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCx1QkFBdUIsRUFBcUIsQ0FBQztJQUUzQyxZQUFZLENBQXNELE1BQU0sRUFBRTtRQUN4RSxLQUFLO0tBQ04sQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILHVCQUF1QixFQUFxQixDQUFDO0lBRTNDLGNBQWMsQ0FDWixTQUFTLEVBQ1Q7UUFDRSxLQUFLO0tBQ04sQ0FDRjtDQUNGLENBQUMsQ0FBQztBQUVILHFCQUFxQixFQUFxQixDQUFDO0lBRXpDLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRTtDQUNqQyxDQUFDLENBQUM7QUFFSCw4QkFBOEIsRUFBeUMsQ0FBQztJQUN0RSxLQUFLLEVBQUUsS0FBSztJQUNaLEtBQUssRUFBRSxFQUFXO0lBQ2xCLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxFQUFXO1FBQ2xCLGNBQWMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM1QixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLE9BQVEsSUFBdUMsQ0FBQyxTQUFTLENBQUM7UUFDNUQsQ0FBQztLQUNGO0lBQ0QsT0FBTztJQUNQLEtBQUssRUFBRSxxQkFBcUIsRUFBcUIsQ0FBQztRQUNoRCxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUU7S0FDaEMsQ0FBQztJQUNGLFlBQVksRUFBRTtRQUVaLEtBQUssRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUU7UUFDbEMsSUFBSSxFQUFFLGdCQUFnQjtLQUN2QjtJQUNELGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDYixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxFQUFFLEVBQUU7Q0FDWixDQUFDLENBQUM7QUFFSCxzQkFBc0IsRUFBdUIsQ0FBQztJQUM1QyxLQUFLLEVBQUUsRUFBVztJQUNsQixRQUFRLEVBQUUsRUFBVztJQUNyQixhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ2xCLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7UUFDVixPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2hCLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDakMsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUcsS0FBNEMsRUFBRSxTQUFTO2FBQ3BFO1lBQ0QsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5pbXBvcnQgeyBkZWZpbmVTY2hlbWEsIHN0cmluZ0ZpZWxkIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3NjaGVtYS5qcyc7XG5pbXBvcnQge1xuICBjcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3QsXG4gIGRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdCxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb24sXG4gIGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzLFxuICBkZWZpbmVCYWNrb2ZmaWNlTXV0YXRpb25BY3Rpb24sXG4gIGRlZmluZUJhY2tvZmZpY2VQaWNrZXIsXG4gIGRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlcixcbiAgZGVmaW5lQmFja29mZmljZVNvcnRzLFxuICBkYXRldGltZUZpbHRlcixcbiAgZW50aXR5SWRGaWx0ZXIsXG4gIGVudW1GaWx0ZXIsXG4gIG51bWJlckZpbHRlcixcbn0gZnJvbSAnLi4vYnVpbGRlcnMuanMnO1xuaW1wb3J0IHsgZGVmaW5lQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uIH0gZnJvbSAnLi4vc3RhdGUvbGlzdE5hdmlnYXRpb24uanMnO1xuaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsVGl0bGVNZXRhSXRlbSxcbiAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgQmFja29mZmljZU1hbmlmZXN0TGlzdFN0YXRlSW5wdXQsXG4gIEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtLFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmUsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIFRlc3RTb3J0ID0gJ0NSRUFURURfQVRfQVNDJyB8ICdDUkVBVEVEX0FUX0RFU0MnO1xudHlwZSBUZXN0S2luZCA9ICdBJyB8ICdCJztcbnR5cGUgVGVzdEN1cnJlbmN5ID0gJ0VVUicgfCAnVVNEJztcblxuaW50ZXJmYWNlIFRlc3RMaXN0T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgcHJvamVjdElkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGtpbmQ/OiBUZXN0S2luZCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICBhdHRlbXB0PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGNyZWF0ZWRGcm9tPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9IHwgbnVsbDtcbiAgICBzb3J0PzogVGVzdFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0UGlja2VyT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgb3JnYW5pemF0aW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0gfCBudWxsO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0Q291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgd2hlcmU/OiBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+IHwgbnVsbDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzQ291bnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3REYXNoYm9hcmRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgdXNlcnM6IHtcbiAgICAgIHJlYWRvbmx5IHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICB9O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUge1xuICB2YXJpYWJsZXM6IHtcbiAgICBmcm9tOiBzdHJpbmc7XG4gICAgdG86IHN0cmluZztcbiAgICBzZXZlcml0eT86IFRlc3RLaW5kIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSB0aHJvdWdocHV0Q291bnQ6IG51bWJlcjtcbiAgICByZWFkb25seSBmYWlsdXJlUmF0ZTogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHRvcEZhaWx1cmVzOiByZWFkb25seSB7XG4gICAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gICAgfVtdO1xuICAgIHJlYWRvbmx5IGJ1Y2tldHM6IHJlYWRvbmx5IHtcbiAgICAgIHJlYWRvbmx5IGJ1Y2tldDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgICB9W107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIGlucHV0OiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBjdXJyZW5jeTogVGVzdEN1cnJlbmN5O1xuICAgIH07XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgY3JlYXRlT3JnYW5pemF0aW9uOiB7XG4gICAgICByZWFkb25seSBzdGF0dXM6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjoge1xuICAgICAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgfTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3RBcmNoaXZlT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgYXJjaGl2ZToge1xuICAgICAgcmVhZG9ubHkgc3RhdHVzOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxudHlwZSBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uRm9ybVZhbHVlcyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXJyZW5jeTogVGVzdEN1cnJlbmN5O1xufTtcblxuY29uc3QgbGFiZWw6IEkxOG5MYWJlbCA9ICh0KSA9PiB7XG4gIHJldHVybiB0KCdjb21tb24ubGFiZWwnKTtcbn07XG5cbmNvbnN0IHRlc3RMaXN0UXVlcnlTY2hlbWEgPSBkZWZpbmVTY2hlbWEoe1xuICBwcm9qZWN0SWQ6IHN0cmluZ0ZpZWxkKFsnZXEnXSksXG4gIGtpbmQ6IHN0cmluZ0ZpZWxkKFsnZXEnXSksXG59KTtcblxuY29uc3QgdGVzdExpc3ROYXZpZ2F0aW9uID0gZGVmaW5lQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgZGVmYXVsdHM6IHsgd2hlcmU6IG51bGwsIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnIH0sXG4gIGZpbHRlclNjaGVtYToge1xuICAgIHNjaGVtYTogdGVzdExpc3RRdWVyeVNjaGVtYSxcbiAgICB0b1doZXJlOiAoZmlsdGVycykgPT4ge1xuICAgICAgY29uc3QgcmF3S2luZCA9IGZpbHRlcnMua2luZD8uZXE7XG4gICAgICBsZXQga2luZDogVGVzdEtpbmQgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAocmF3S2luZCA9PT0gJ0EnIHx8IHJhd0tpbmQgPT09ICdCJykge1xuICAgICAgICBraW5kID0gcmF3S2luZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb2plY3RJZDogZmlsdGVycy5wcm9qZWN0SWQ/LmVxLFxuICAgICAgICBraW5kLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGZyb21XaGVyZTogKHdoZXJlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm9qZWN0SWQ6IHsgZXE6IHdoZXJlPy5wcm9qZWN0SWQgPz8gdW5kZWZpbmVkIH0sXG4gICAgICAgIGtpbmQ6IHsgZXE6IHdoZXJlPy5raW5kID8/IHVuZGVmaW5lZCB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9LFxuICBzb3J0SWRzOiBbJ0NSRUFURURfQVRfQVNDJywgJ0NSRUFURURfQVRfREVTQyddLFxufSk7XG5cbnRlc3RMaXN0TmF2aWdhdGlvbi5lbmNvZGUoe1xuICB3aGVyZTogeyBwcm9qZWN0SWQ6ICdwcm9qZWN0LTEnLCBraW5kOiAnQScgfSxcbiAgc29ydDogJ0NSRUFURURfQVRfQVNDJyxcbn0pO1xuXG50ZXN0TGlzdE5hdmlnYXRpb24uZW5jb2RlKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG5hdmlnYXRpb24gc3RhdGUgaXMgZXhhY3QgdG8gdGhlIG9wZXJhdGlvbiB3aGVyZSBpbnB1dC5cbiAgd2hlcmU6IHsgc3RhdHVzOiAnT1BFTicgfSxcbn0pO1xuXG50ZXN0TGlzdE5hdmlnYXRpb24uZGVjb2RlKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG5hdmlnYXRpb24gZmlsdGVycyBhcmUgZXhhY3QgdG8gdGhlIGRlc3RpbmF0aW9uIHNjaGVtYS5cbiAgZmlsdGVyczogeyBtaXNzaW5nOiB7IGVxOiAndmFsdWUnIH0gfSxcbn0pO1xuXG5jb25zdCB0eXBlZExpc3RNYW5pZmVzdCA9IGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIGlkOiAndGFza3MnLFxuICByb3V0ZVNlZ21lbnQ6ICd0YXNrcycsXG4gIGxhYmVsLFxuICByb3V0ZXM6IHtcbiAgICBsaXN0OiAnL3Rhc2tzJyxcbiAgICBkZXRhaWw6IChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH1gO1xuICAgIH0sXG4gICAgZGV0YWlsUGFnZTogKGlkLCBwYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9LyR7cGFnZUlkfWA7XG4gICAgfSxcbiAgfSxcbiAgaGFzTGlzdDogdHJ1ZSxcbiAgbGlzdE5hdmlnYXRpb246IHRlc3RMaXN0TmF2aWdhdGlvbixcbiAgZGV0YWlsUGFnZXM6IFtcbiAgICB7XG4gICAgICBpZDogJ292ZXJ2aWV3JyxcbiAgICAgIHBhdGhTZWdtZW50OiAnb3ZlcnZpZXcnLFxuICAgICAgbGFiZWwsXG4gICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgZGVmYXVsdERldGFpbFBhZ2VJZDogJ292ZXJ2aWV3JyxcbiAgZmFjZXRzOiB7XG4gICAgbGlzdDogYXN5bmMgKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHRlc3QnKTtcbiAgICB9LFxuICAgIGRldGFpbExheW91dDogYXN5bmMgKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHRlc3QnKTtcbiAgICB9LFxuICAgIGRldGFpbFBhZ2U6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgfSxcbn0pO1xuXG5jb25zdCBydW50aW1lTGlzdE1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtID0gdHlwZWRMaXN0TWFuaWZlc3Q7XG5leHBvcnQgY29uc3QgcnVudGltZUxpc3RNYW5pZmVzdElkID0gcnVudGltZUxpc3RNYW5pZmVzdC5pZDtcblxudHlwZSBUeXBlZExpc3RTdGF0ZSA9IEJhY2tvZmZpY2VNYW5pZmVzdExpc3RTdGF0ZUlucHV0PFxuICB7IHRhc2tzOiB0eXBlb2YgdHlwZWRMaXN0TWFuaWZlc3QgfSxcbiAgJ3Rhc2tzJ1xuPjtcblxuZXhwb3J0IGNvbnN0IHR5cGVkTGlzdFN0YXRlOiBUeXBlZExpc3RTdGF0ZSA9IHtcbiAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICBzb3J0OiAnQ1JFQVRFRF9BVF9BU0MnLFxufTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRUeXBlZExpc3RTdGF0ZTogVHlwZWRMaXN0U3RhdGUgPSB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbWFuaWZlc3QtZGVyaXZlZCBsaXN0IHN0YXRlIHJlamVjdHMgdW5rbm93biB3aGVyZSBmaWVsZHMuXG4gIHdoZXJlOiB7IHN0YXR1czogJ09QRU4nIH0sXG59O1xuXG5leHBvcnQgY29uc3QgcnVudGltZUxpc3RTdGF0ZTogQmFja29mZmljZU1hbmlmZXN0TGlzdFN0YXRlSW5wdXQ8XG4gIFJlY29yZDxzdHJpbmcsIEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0+LFxuICBzdHJpbmdcbj4gPSB7XG4gIHdoZXJlOiB7IHN0YXR1czogJ09QRU4nIH0sXG4gIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxufTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG1hbmlmZXN0cyByZXF1aXJlIHN5bmNocm9ub3VzIGxpc3QgbmF2aWdhdGlvbi5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIGlkOiAndGFza3MnLFxuICByb3V0ZVNlZ21lbnQ6ICd0YXNrcycsXG4gIGxhYmVsLFxuICByb3V0ZXM6IHtcbiAgICBsaXN0OiAnL3Rhc2tzJyxcbiAgICBkZXRhaWw6IChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH1gO1xuICAgIH0sXG4gICAgZGV0YWlsUGFnZTogKGlkLCBwYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9LyR7cGFnZUlkfWA7XG4gICAgfSxcbiAgfSxcbiAgaGFzTGlzdDogdHJ1ZSxcbiAgZGV0YWlsUGFnZXM6IHR5cGVkTGlzdE1hbmlmZXN0LmRldGFpbFBhZ2VzLFxuICBkZWZhdWx0RGV0YWlsUGFnZUlkOiB0eXBlZExpc3RNYW5pZmVzdC5kZWZhdWx0RGV0YWlsUGFnZUlkLFxuICBmYWNldHM6IHtcbiAgICBsaXN0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMubGlzdCxcbiAgICBkZXRhaWxMYXlvdXQ6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgICBkZXRhaWxQYWdlOiBhc3luYyAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R5cGUgdGVzdCcpO1xuICAgIH0sXG4gIH0sXG59KTtcblxuY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0KHtcbiAgLi4udHlwZWRMaXN0TWFuaWZlc3QsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbGlzdCBuYXZpZ2F0aW9uIG11c3QgcHJvdmlkZSB0aGUgY29tcGxldGUgc3luY2hyb25vdXMgY29udHJhY3QuXG4gIGxpc3ROYXZpZ2F0aW9uOiB7IGtpbmQ6ICdsaXN0LW5hdmlnYXRpb24nIH0sXG59KTtcblxuY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0KHtcbiAgLi4udHlwZWRMaXN0TWFuaWZlc3QsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbGlzdC1kZXRhaWwgbWFuaWZlc3RzIHJlcXVpcmUgYXQgbGVhc3Qgb25lIGRldGFpbCBwYWdlLlxuICBkZXRhaWxQYWdlczogW10sXG59KTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG1hbmlmZXN0cyByZXF1aXJlIGEgbGlzdCBmYWNldCBsb2FkZXIuXG5jcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3Qoe1xuICAuLi50eXBlZExpc3RNYW5pZmVzdCxcbiAgZmFjZXRzOiB7XG4gICAgZGV0YWlsTGF5b3V0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMuZGV0YWlsTGF5b3V0LFxuICAgIGRldGFpbFBhZ2U6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxQYWdlLFxuICB9LFxufSk7XG5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIC4uLnR5cGVkTGlzdE1hbmlmZXN0LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QtZGV0YWlsIG1hbmlmZXN0cyByZXF1aXJlIGEgZGV0YWlsLWxheW91dCBmYWNldCBsb2FkZXIuXG4gIGZhY2V0czoge1xuICAgIGxpc3Q6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5saXN0LFxuICAgIGRldGFpbFBhZ2U6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxQYWdlLFxuICB9LFxufSk7XG5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIC4uLnR5cGVkTGlzdE1hbmlmZXN0LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QtZGV0YWlsIG1hbmlmZXN0cyByZXF1aXJlIGEgZGV0YWlsLXBhZ2UgZmFjZXQgbG9hZGVyLlxuICBmYWNldHM6IHtcbiAgICBsaXN0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMubGlzdCxcbiAgICBkZXRhaWxMYXlvdXQ6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxMYXlvdXQsXG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZUZvcm1NdXRhdGlvbkFjdGlvbjxcbiAgVGVzdENyZWF0ZU9yZ2FuaXphdGlvbk9wZXJhdGlvbixcbiAgbnVsbCxcbiAgVGVzdENyZWF0ZU9yZ2FuaXphdGlvbkZvcm1WYWx1ZXNcbj4oKSh7XG4gIGlkOiAnY3JlYXRlLW9yZ2FuaXphdGlvbicsXG4gIGtpbmQ6ICdmb3JtTXV0YXRpb24nLFxuICBsYWJlbCxcbiAgbXV0YXRpb246IHt9IGFzIG5ldmVyLFxuICBmaWVsZHM6IFtdLFxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgICBjdXJyZW5jeTogdmFsdWVzLmN1cnJlbmN5LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxuICB0b2FzdHM6IHtcbiAgICBzdWNjZXNzOiB7XG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgICB2aWV3OiB7XG4gICAgICAgIGVudGl0eUlkOiAnb3JnYW5pemF0aW9ucycsXG4gICAgICAgIGdldFRhcmdldElkOiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuY3JlYXRlT3JnYW5pemF0aW9uLm9yZ2FuaXphdGlvbj8uaWQgPz8gbnVsbDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRm9ybU11dGF0aW9uQWN0aW9uPFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uT3BlcmF0aW9uLFxuICBudWxsLFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uRm9ybVZhbHVlc1xuPigpKHtcbiAgaWQ6ICdtaXNzaW5nLWN1cnJlbmN5JyxcbiAga2luZDogJ2Zvcm1NdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGZpZWxkczogW10sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgY3JlYXRlIG9yZ2FuaXphdGlvbiB2YXJpYWJsZXMgbXVzdCBpbmNsdWRlIHJlcXVpcmVkIGlucHV0LmN1cnJlbmN5LlxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb248XG4gIFRlc3RDcmVhdGVPcmdhbml6YXRpb25PcGVyYXRpb24sXG4gIG51bGwsXG4gIHsgbmFtZTogc3RyaW5nOyBjdXJyZW5jeTogJ0dCUCcgfVxuPigpKHtcbiAgaWQ6ICdpbnZhbGlkLWN1cnJlbmN5JyxcbiAga2luZDogJ2Zvcm1NdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGZpZWxkczogW10sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgY3JlYXRlIG9yZ2FuaXphdGlvbiBjdXJyZW5jeSBtdXN0IGJlIG9uZSBvZiB0aGUgUmVsYXkgZ2VuZXJhdGVkIGVudW0gdmFsdWVzLlxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgICBjdXJyZW5jeTogdmFsdWVzLmN1cnJlbmN5LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VNdXRhdGlvbkFjdGlvbjxUZXN0QXJjaGl2ZU9wZXJhdGlvbiwgeyBpZDogc3RyaW5nIH0+KCkoe1xuICBpZDogJ2FyY2hpdmUnLFxuICBraW5kOiAnbXV0YXRpb24nLFxuICBsYWJlbCxcbiAgbXV0YXRpb246IHt9IGFzIG5ldmVyLFxuICBnZXRWYXJpYWJsZXM6IChub2RlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBub2RlLmlkLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZU11dGF0aW9uQWN0aW9uPFRlc3RBcmNoaXZlT3BlcmF0aW9uLCB7IGlkOiBzdHJpbmcgfT4oKSh7XG4gIGlkOiAnYXJjaGl2ZS1taXNzaW5nLWlkJyxcbiAga2luZDogJ211dGF0aW9uJyxcbiAgbGFiZWwsXG4gIG11dGF0aW9uOiB7fSBhcyBuZXZlcixcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBtdXRhdGlvbiB2YXJpYWJsZXMgbXVzdCBpbmNsdWRlIHJlcXVpcmVkIGlkLlxuICBnZXRWYXJpYWJsZXM6ICgpID0+IHtcbiAgICByZXR1cm4ge307XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNpdmVNZXRhOiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVNZXRhSXRlbSA9IHtcbiAgaWQ6ICdzdGF0ZScsXG4gIGxhYmVsLFxuICB2YWx1ZTogJ3JlYWR5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkUmVzcG9uc2l2ZU1ldGE6IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtID0ge1xuICBpZDogJ3N0YXRlJyxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXNwb25zaXZlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuZXhwb3J0IGNvbnN0IHRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICBsYWJlbCxcbiAgdmFsdWU6ICdyZWFkeScsXG59O1xuXG5leHBvcnQgY29uc3QgaW52YWxpZFRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpdGxlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuY29uc3QgZmlsdGVycyA9IGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW50aXR5SWRGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ3Byb2plY3RJZCc+KFxuICAgICdwcm9qZWN0SWQnLFxuICAgIHtcbiAgICAgIGVudGl0eTogJ3Byb2plY3RzJyxcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGVudW1GaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zOiBbJ0EnLCAnQiddLFxuICB9KSxcbiAgbnVtYmVyRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdhdHRlbXB0Jz4oXG4gICAgJ2F0dGVtcHQnLFxuICAgIHtcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGRhdGV0aW1lRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdjcmVhdGVkRnJvbSc+KFxuICAgICdjcmVhdGVkRnJvbScsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgICBtb2RlOiAnZnJvbScsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW3sgaWQ6ICdDUkVBVEVEX0FUX0RFU0MnLCBsYWJlbCB9XSk7XG5cbmRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdDxUZXN0TGlzdE9wZXJhdGlvbiwgVGVzdENvdW50T3BlcmF0aW9uPigpKHtcbiAgdGl0bGU6IGxhYmVsLFxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgY291bnQ6IHtcbiAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgYnVpbGRWYXJpYWJsZXM6ICh7IHdoZXJlIH0pID0+IHtcbiAgICAgIHJldHVybiB7IHdoZXJlIH07XG4gICAgfSxcbiAgICBnZXRDb3VudDogKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiAoZGF0YSBhcyBUZXN0Q291bnRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10pLnJvd3NDb3VudDtcbiAgICB9LFxuICB9LFxuICBmaWx0ZXJzLFxuICBzb3J0czogZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgICB7IGlkOiAnQ1JFQVRFRF9BVF9BU0MnLCBsYWJlbCB9LFxuICBdKSxcbiAgZGVmYXVsdFN0YXRlOiB7XG4gICAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICB9LFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdztcbiAgfSxcbiAgZ2V0Um93SWQ6ICgpID0+IHtcbiAgICByZXR1cm4gJ3Jvdyc7XG4gIH0sXG4gIGNvbHVtbnM6IFtdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VQaWNrZXI8VGVzdFBpY2tlck9wZXJhdGlvbj4oKSh7XG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgaWQ6ICdyb3cnLCB0aXRsZTogJ1JvdycgfTtcbiAgfSxcbiAgZ2V0Um93SWQ6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93LmlkO1xuICB9LFxuICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoeyBzY29wZSB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIG9yZ2FuaXphdGlvbklkOiBzY29wZT8ub3JnYW5pemF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgY291bnQ6IDIwLFxuICAgICAgY3Vyc29yOiBudWxsLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgd2lkZ2V0czogW1xuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndXNlcnMnLFxuICAgICAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS51c2Vycy50b3RhbENvdW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICAgIGVudGl0eUlkOiAndGFza3MnLFxuICAgICAgICAgICAgICBzdGF0ZToge1xuICAgICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldCh7XG4gICAgICBpZDogJ3dpbmRvdycsXG4gICAgICBraW5kOiAnd2luZG93Q29udHJvbCcsXG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICd0aHJvdWdocHV0JyxcbiAgICAgIGtpbmQ6ICd0cmVuZE1ldHJpYycsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogd2luZG93LmZyb20sXG4gICAgICAgICAgdG86IHdpbmRvdy50byxcbiAgICAgICAgICBzZXZlcml0eTogJ0EnLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdmFsdWU6IGRhdGEudGhyb3VnaHB1dENvdW50LFxuICAgICAgICAgIGRlbHRhOiB7XG4gICAgICAgICAgICB2YWx1ZTogMTIsXG4gICAgICAgICAgICBkaXJlY3Rpb246ICd1cCcsXG4gICAgICAgICAgICB0b25lOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNwYXJrbGluZTogW3sgeDogJzIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWicsIHk6IDEgfV0sXG4gICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICBlbnRpdHlJZDogJ3Rhc2tzJyxcbiAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICBzb3J0OiAnQ1JFQVRFRF9BVF9ERVNDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnZmFpbHVyZS1yYXRlJyxcbiAgICAgIGtpbmQ6ICdzbGFHYXVnZScsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB2YWx1ZTogZGF0YS5mYWlsdXJlUmF0ZSxcbiAgICAgICAgICBtYXg6IDEsXG4gICAgICAgICAgdGhyZXNob2xkOiAwLjA1LFxuICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICB0b25lOiAnd2FybmluZycsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndG9wLWZhaWx1cmVzJyxcbiAgICAgIGtpbmQ6ICdicmVha2Rvd25MaXN0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gZGF0YS50b3BGYWlsdXJlcy5tYXAoKGZhaWx1cmUpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGZhaWx1cmUuaWQsXG4gICAgICAgICAgICBsYWJlbDogKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZS5sYWJlbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWx1ZTogZmFpbHVyZS5jb3VudCxcbiAgICAgICAgICAgIHRvbmU6ICdkYW5nZXInLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3RpbWVsaW5lJyxcbiAgICAgIGtpbmQ6ICd0aW1lbGluZUNoYXJ0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICBhcmlhTGFiZWw6IGxhYmVsLFxuICAgICAgY2hhcnQ6ICdiYXInLFxuICAgICAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZXJpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aHJvdWdocHV0JyxcbiAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgIGNvbG9yOiAnIzI1NjNlYicsXG4gICAgICAgICAgICAgIGRhdGE6IGRhdGEuYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB4OiBidWNrZXQuYnVja2V0LFxuICAgICAgICAgICAgICAgICAgeTogYnVja2V0LmNvdW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3Jpc2stcXVldWUnLFxuICAgICAga2luZDogJ3Jpc2tRdWV1ZScsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnZGVhZC1vdXRib3gnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBzZXZlcml0eTogJ2RhbmdlcicsXG4gICAgICAgICAgICB2YWx1ZTogNCxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3Nwb3RsaWdodCcsXG4gICAgICBraW5kOiAnZW50aXR5U3BvdGxpZ2h0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgICAgIHRvbmU6ICdpbmZvJyxcbiAgICAgICAgICBtZXRhOiBbeyBpZDogJ2FnZScsIGxhYmVsLCB2YWx1ZTogJzQ1IG1pbicgfV0sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnaGVhbHRoJyxcbiAgICAgIGtpbmQ6ICdoZWFsdGhNYXRyaXgnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3dvcmsnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBjZWxsczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICd0YXNrcycsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgICAgICAgdG9uZTogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0KHtcbiAgICAgIGlkOiAnYWN0aW9ucycsXG4gICAgICBraW5kOiAncXVpY2tBY3Rpb25zJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIHRhcmdldDogZGVmaW5lQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQoJy91c2VycycpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KSxcbiAgXSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZE9wZXJhdGlvbj4oKSh7XG4gIGlkOiAnaW52YWxpZC11c2VycycsXG4gIGtpbmQ6ICdtZXRyaWNHcm91cCcsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgdmFyaWFibGVzOiB7fSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3VzZXJzJyxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIHdpZGdldCByZXNvbHZlIGRhdGEgaXMgdHlwZWQgZnJvbSB0aGUgb3BlcmF0aW9uIHJlc3BvbnNlLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIHZhbHVlOiBkYXRhLnByb2plY3RzLnRvdGFsQ291bnQsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICBpZDogJ2ludmFsaWQtd2luZG93LXZhcmlhYmxlcycsXG4gIGtpbmQ6ICd0cmVuZE1ldHJpYycsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgd2lkZ2V0IHZhcmlhYmxlcyBtdXN0IG1hdGNoIHRoZSBvcGVyYXRpb24gdmFyaWFibGVzLlxuICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb206IHdpbmRvdy5mcm9tLFxuICAgIH07XG4gIH0sXG4gIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsLFxuICAgICAgdmFsdWU6IGRhdGEudGhyb3VnaHB1dENvdW50LFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZExpc3RUYXJnZXQ8VGVzdExpc3RPcGVyYXRpb24+KCkoe1xuICBlbnRpdHlJZDogJ3Rhc2tzJyxcbiAgc3RhdGU6IHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCBsaXN0IHRhcmdldCB3aGVyZSBtdXN0IG1hdGNoIHRoZSB0YXJnZXQgbGlzdCBvcGVyYXRpb24gd2hlcmUgaW5wdXQuXG4gICAgd2hlcmU6IHsgb3JnYW5pemF0aW9uSWQ6ICdvcmctMScgfSxcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIGVudGl0eUlkOiAndGFza3MnLFxuICBzdGF0ZToge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIGxpc3QgdGFyZ2V0IHNvcnQgbXVzdCBtYXRjaCB0aGUgdGFyZ2V0IGxpc3Qgb3BlcmF0aW9uIHNvcnQgaW5wdXQuXG4gICAgc29ydDogJ1VQREFURURfQVRfREVTQycsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWREYXNoYm9hcmRDb25maWc6IEJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcgPSB7XG4gIHRpdGxlOiBsYWJlbCxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgY29uZmlncyBkbyBub3Qgc3VwcG9ydCBnbG9iYWwgcXVlcmllcy5cbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICB3aWRnZXRzOiBbXSxcbn07XG5cbi8vIEB0cy1leHBlY3QtZXJyb3IgZGF0YS1kcml2ZW4gZGFzaGJvYXJkIHdpZGdldHMgbXVzdCBkZWNsYXJlIGEgcXVlcnkuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZE9wZXJhdGlvbj4oKSh7XG4gIGlkOiAnbWlzc2luZy1xdWVyeScsXG4gIGtpbmQ6ICdtZXRyaWNHcm91cCcsXG4gIHZhcmlhYmxlczoge30sXG4gIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd1c2VycycsXG4gICAgICAgIGxhYmVsLFxuICAgICAgICB2YWx1ZTogZGF0YS51c2Vycy50b3RhbENvdW50LFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlcjxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIHRhcmdldDogJ3Byb2plY3RzJyxcbiAgd2hlcmVLZXk6ICdwcm9qZWN0SWQnLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlcjxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIHRhcmdldDogJ3Byb2plY3RzJyxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBvcmdhbml6YXRpb25JZCBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIHRhcmdldCBsaXN0IHdoZXJlIGlucHV0LlxuICB3aGVyZUtleTogJ29yZ2FuaXphdGlvbklkJyxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbWlzc2luZ0ZpZWxkIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgb3BlcmF0aW9uIHdoZXJlIGlucHV0LlxuICBlbnRpdHlJZEZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAnbWlzc2luZ0ZpZWxkJz4oXG4gICAgJ21pc3NpbmdGaWVsZCcsXG4gICAge1xuICAgICAgZW50aXR5OiAncHJvamVjdHMnLFxuICAgICAgbGFiZWwsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIGVudW1GaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zOiBbXG4gICAgICAnQScsXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEMgaXMgbm90IGEgdmFsaWQgVGVzdEtpbmQgdmFsdWUuXG4gICAgICAnQycsXG4gICAgXSxcbiAgfSksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGtpbmQgaXMgYW4gZW51bSBzdHJpbmcgZmllbGQsIG5vdCBhIG51bWJlciBmaWVsZC5cbiAgbnVtYmVyRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdraW5kJz4oJ2tpbmQnLCB7XG4gICAgbGFiZWwsXG4gIH0pLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBhdHRlbXB0IGlzIGEgbnVtYmVyIGZpZWxkLCBub3QgYSBkYXRldGltZSBzdHJpbmcgZmllbGQuXG4gIGRhdGV0aW1lRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdhdHRlbXB0Jz4oXG4gICAgJ2F0dGVtcHQnLFxuICAgIHtcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBVUERBVEVEX0FUX0RFU0MgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBvcGVyYXRpb24gc29ydC5cbiAgeyBpZDogJ1VQREFURURfQVRfREVTQycsIGxhYmVsIH0sXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0PFRlc3RMaXN0T3BlcmF0aW9uLCBUZXN0Q291bnRPcGVyYXRpb24+KCkoe1xuICB0aXRsZTogbGFiZWwsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBjb3VudDoge1xuICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICBidWlsZFZhcmlhYmxlczogKHsgd2hlcmUgfSkgPT4ge1xuICAgICAgcmV0dXJuIHsgd2hlcmUgfTtcbiAgICB9LFxuICAgIGdldENvdW50OiAoZGF0YSkgPT4ge1xuICAgICAgcmV0dXJuIChkYXRhIGFzIFRlc3RDb3VudE9wZXJhdGlvblsncmVzcG9uc2UnXSkucm93c0NvdW50O1xuICAgIH0sXG4gIH0sXG4gIGZpbHRlcnMsXG4gIHNvcnRzOiBkZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAgIHsgaWQ6ICdDUkVBVEVEX0FUX0FTQycsIGxhYmVsIH0sXG4gIF0pLFxuICBkZWZhdWx0U3RhdGU6IHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG9yZ2FuaXphdGlvbklkIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgbGlzdCB3aGVyZSBpbnB1dC5cbiAgICB3aGVyZTogeyBvcmdhbml6YXRpb25JZDogJ29yZy0xJyB9LFxuICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0FTQycsXG4gIH0sXG4gIGdldENvbm5lY3Rpb246ICgpID0+IHtcbiAgICByZXR1cm4geyBlZGdlczogW10gfTtcbiAgfSxcbiAgdG9Sb3c6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93O1xuICB9LFxuICBnZXRSb3dJZDogKCkgPT4ge1xuICAgIHJldHVybiAncm93JztcbiAgfSxcbiAgY29sdW1uczogW10sXG59KTtcblxuZGVmaW5lQmFja29mZmljZVBpY2tlcjxUZXN0UGlja2VyT3BlcmF0aW9uPigpKHtcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICBmcmFnbWVudDoge30gYXMgbmV2ZXIsXG4gIGdldENvbm5lY3Rpb246ICgpID0+IHtcbiAgICByZXR1cm4geyBlZGdlczogW10gfTtcbiAgfSxcbiAgdG9Sb3c6ICgpID0+IHtcbiAgICByZXR1cm4geyBpZDogJ3JvdycsIHRpdGxlOiAnUm93JyB9O1xuICB9LFxuICBnZXRSb3dJZDogKHJvdykgPT4ge1xuICAgIHJldHVybiByb3cuaWQ7XG4gIH0sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgcmV0dXJuZWQgd2hlcmUgc2hhcGUgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBwaWNrZXIgb3BlcmF0aW9uLlxuICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoeyBzY29wZSB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHByb2plY3RJZDogKHNjb3BlIGFzIHsgcHJvamVjdElkPzogc3RyaW5nIH0gfCB1bmRlZmluZWQpPy5wcm9qZWN0SWQsXG4gICAgICB9LFxuICAgICAgY291bnQ6IDIwLFxuICAgICAgY3Vyc29yOiBudWxsLFxuICAgIH07XG4gIH0sXG59KTtcbiJdfQ==
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -231,6 +231,10 @@ export type BackofficeDetailPageManifestItem = {
|
|
|
231
231
|
label: I18nLabel;
|
|
232
232
|
isDefault?: boolean;
|
|
233
233
|
};
|
|
234
|
+
export type BackofficeDetailPageManifest = readonly [
|
|
235
|
+
BackofficeDetailPageManifestItem,
|
|
236
|
+
...BackofficeDetailPageManifestItem[]
|
|
237
|
+
];
|
|
234
238
|
export type BackofficeDetailPageRouteSpec<LayoutView = unknown> = {
|
|
235
239
|
id: string;
|
|
236
240
|
path: string;
|
|
@@ -1322,23 +1326,30 @@ type BackofficeEntityManifestBase = {
|
|
|
1322
1326
|
label: I18nLabel;
|
|
1323
1327
|
detailLabel?: I18nLabel;
|
|
1324
1328
|
routes: BackofficeEntityRouteManifest;
|
|
1325
|
-
detailPages?: readonly BackofficeDetailPageManifestItem[];
|
|
1326
|
-
defaultDetailPageId?: string;
|
|
1327
1329
|
};
|
|
1328
1330
|
export type BackofficeListDetailManifestItem<Where extends Record<string, unknown> = Record<string, unknown>, Sort extends string = string, S extends Schema = Schema> = BackofficeEntityManifestBase & {
|
|
1329
1331
|
kind: 'list-detail';
|
|
1330
|
-
|
|
1332
|
+
detailPages: BackofficeDetailPageManifest;
|
|
1333
|
+
defaultDetailPageId: string;
|
|
1331
1334
|
} & ({
|
|
1332
1335
|
hasList: true;
|
|
1333
1336
|
listNavigation: BackofficeListNavigation<Where, Sort, S>;
|
|
1337
|
+
facets: BackofficeListDetailFacetLoaderMap & {
|
|
1338
|
+
list: BackofficeListFacetLoader;
|
|
1339
|
+
};
|
|
1334
1340
|
} | {
|
|
1335
1341
|
hasList: false;
|
|
1336
1342
|
listNavigation?: never;
|
|
1343
|
+
facets: Omit<BackofficeListDetailFacetLoaderMap, 'list'> & {
|
|
1344
|
+
list?: never;
|
|
1345
|
+
};
|
|
1337
1346
|
});
|
|
1338
1347
|
export type BackofficeToolManifestItem = BackofficeEntityManifestBase & {
|
|
1339
1348
|
kind: 'tool';
|
|
1340
1349
|
hasList: false;
|
|
1341
1350
|
listNavigation?: never;
|
|
1351
|
+
detailPages?: never;
|
|
1352
|
+
defaultDetailPageId?: never;
|
|
1342
1353
|
facets: BackofficeToolFacetLoaderMap;
|
|
1343
1354
|
};
|
|
1344
1355
|
export type BackofficeEntityManifestItem<Where extends Record<string, unknown> = Record<string, unknown>, Sort extends string = string, S extends Schema = Schema> = BackofficeListDetailManifestItem<Where, Sort, S> | BackofficeToolManifestItem;
|