@plumile/backoffice-core 0.1.199 → 0.1.201

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 (41) hide show
  1. package/README.md +3 -1
  2. package/lib/esm/builders.d.ts +11 -5
  3. package/lib/esm/builders.d.ts.map +1 -1
  4. package/lib/esm/builders.js +1 -1
  5. package/lib/esm/config/entity-builders.d.ts +3 -3
  6. package/lib/esm/config/entity-builders.d.ts.map +1 -1
  7. package/lib/esm/config/entity-builders.js +3 -5
  8. package/lib/esm/detailParams.d.ts +8 -2
  9. package/lib/esm/detailParams.d.ts.map +1 -1
  10. package/lib/esm/detailParams.js +3 -3
  11. package/lib/esm/index.d.ts +1 -0
  12. package/lib/esm/index.d.ts.map +1 -1
  13. package/lib/esm/index.js +1 -1
  14. package/lib/esm/resolve.d.ts +2 -1
  15. package/lib/esm/resolve.d.ts.map +1 -1
  16. package/lib/esm/resolve.js +1 -1
  17. package/lib/esm/runtimeErasure.d.ts +2 -0
  18. package/lib/esm/runtimeErasure.d.ts.map +1 -0
  19. package/lib/esm/runtimeErasure.js +2 -0
  20. package/lib/esm/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
  21. package/lib/esm/type-tests/operation-bound-config.test-d.js +1 -1
  22. package/lib/esm/types.d.ts +27 -24
  23. package/lib/esm/types.d.ts.map +1 -1
  24. package/lib/esm/types.js +1 -1
  25. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  26. package/lib/types/builders.d.ts +11 -5
  27. package/lib/types/builders.d.ts.map +1 -1
  28. package/lib/types/config/entity-builders.d.ts +3 -3
  29. package/lib/types/config/entity-builders.d.ts.map +1 -1
  30. package/lib/types/detailParams.d.ts +8 -2
  31. package/lib/types/detailParams.d.ts.map +1 -1
  32. package/lib/types/index.d.ts +1 -0
  33. package/lib/types/index.d.ts.map +1 -1
  34. package/lib/types/resolve.d.ts +2 -1
  35. package/lib/types/resolve.d.ts.map +1 -1
  36. package/lib/types/runtimeErasure.d.ts +2 -0
  37. package/lib/types/runtimeErasure.d.ts.map +1 -0
  38. package/lib/types/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
  39. package/lib/types/types.d.ts +27 -24
  40. package/lib/types/types.d.ts.map +1 -1
  41. package/package.json +3 -3
package/README.md CHANGED
@@ -83,7 +83,9 @@ construction instead of during navigation.
83
83
  ### URL and encoding helpers
84
84
 
85
85
  - `encodeBackofficeDetailParams`
86
- - `decodeBackofficeDetailParams`
86
+ - `decodeBackofficeDetailParams(value, decoder)` parses the transport payload
87
+ as `unknown` and returns a value only when the caller-provided decoder
88
+ validates it
87
89
  - `createBackofficeListNavigation`
88
90
  - `defineBackofficeListNavigation`
89
91
  - `createBackofficeListUrlCodec`
@@ -46,10 +46,10 @@ export type DefineBackofficeDashboardStaticWidgetInput<Kind extends BackofficeDa
46
46
  type AnyDefineBackofficeDashboardStaticWidgetInput = {
47
47
  [Kind in BackofficeDashboardStaticWidgetKind]: DefineBackofficeDashboardStaticWidgetInput<Kind>;
48
48
  }[BackofficeDashboardStaticWidgetKind];
49
- export type DefineBackofficeConnectionListInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = Omit<BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>, 'kind' | 'buildQueryVariables'> & {
49
+ export type DefineBackofficeConnectionListInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = OperationType, TEntityId extends string = string> = Omit<BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>, 'kind' | 'buildQueryVariables'> & {
50
50
  buildQueryVariables?: (input: BackofficeListQueryInput<TOperation, TWhere, TSort>) => TOperation['variables'];
51
51
  };
52
- export type DefineBackofficeListFacetInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = Omit<BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>, 'list'> & {
52
+ export type DefineBackofficeListFacetInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = OperationType, TEntityId extends string = string> = Omit<BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>, 'list'> & {
53
53
  list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>;
54
54
  };
55
55
  export type DefineBackofficePickerInput<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>> = Omit<BackofficeEntityPickerConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>, 'buildQueryVariables'> & {
@@ -59,9 +59,15 @@ export declare const defineBackofficeDashboardConfig: <const Config extends Back
59
59
  export declare const defineBackofficeQuery: <TOperation extends OperationType>(node: GraphQLTaggedNode) => BackofficeQuerySpec<TOperation>;
60
60
  export declare const defineBackofficeFragment: <TKey, TData>(node: GraphQLTaggedNode) => BackofficeFragmentSpec<TKey, TData>;
61
61
  export declare const defineBackofficePaginationFragment: <TQuery extends OperationType, TKey, TData>(node: GraphQLTaggedNode) => BackofficePaginationFragmentSpec<TQuery, TKey, TData>;
62
- export declare const defineBackofficeMutationAction: <TOperation extends OperationType, Node>() => <const Action extends BackofficeEntityMutationActionSpec<Node, TOperation>>(action: Omit<Action, 'relayOperationBound'>) => Action;
63
- export declare const defineBackofficeFormMutationAction: <TOperation extends OperationType, Node, FormValues extends object, InitialValues extends object = Partial<FormValues>>() => <const Action extends BackofficeEntityFormMutationActionSpec<Node, TOperation, FormValues, InitialValues>>(action: Omit<Action, 'relayOperationBound'>) => Action;
64
- export declare const defineBackofficeDashboardQueryWidget: <TOperation extends OperationType>() => <const Widget extends AnyDefineBackofficeDashboardQueryWidgetInput<TOperation>>(widget: Widget) => BackofficeDashboardQueryWidget<Widget['kind']>;
62
+ export declare const defineBackofficeMutationAction: <TOperation extends OperationType, Node>() => <const Action extends BackofficeEntityMutationActionSpec<Node, TOperation>>(action: Omit<Action, 'relayOperationBound'>) => Omit<Action, 'relayOperationBound'> & {
63
+ relayOperationBound: true;
64
+ };
65
+ export declare const defineBackofficeFormMutationAction: <TOperation extends OperationType, Node, FormValues extends object, InitialValues extends object = Partial<FormValues>>() => <const Action extends BackofficeEntityFormMutationActionSpec<Node, TOperation, FormValues, InitialValues>>(action: Omit<Action, 'relayOperationBound'>) => Omit<Action, 'relayOperationBound'> & {
66
+ relayOperationBound: true;
67
+ };
68
+ export declare const defineBackofficeDashboardQueryWidget: <TOperation extends OperationType>() => <const Widget extends AnyDefineBackofficeDashboardQueryWidgetInput<TOperation>>(widget: Widget) => Widget & {
69
+ dataSource: 'query';
70
+ };
65
71
  export declare const defineBackofficeDashboardStaticWidget: (widget: AnyDefineBackofficeDashboardStaticWidgetInput) => Extract<BackofficeDashboardWidget, {
66
72
  dataSource: 'static';
67
73
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"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"}
@@ -423,4 +423,4 @@ export const createToolManifest = (config) => {
423
423
  defaultDetailPageId: undefined,
424
424
  };
425
425
  };
426
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc09BLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBRzdDLE1BQWMsRUFDTixFQUFFO0lBQ1YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsSUFBdUIsRUFDVSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxJQUF1QixFQUNjLEVBQUU7SUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLENBS2hELElBQXVCLEVBQ2dDLEVBQUU7SUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEdBRzFDLEVBQUU7SUFDSixPQUFPLENBR0wsTUFBMkMsRUFDbkMsRUFBRTtRQUNWLE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxtQkFBbUIsRUFBRSxJQUFJO1NBQ2hCLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxHQUs5QyxFQUFFO0lBQ0osT0FBTyxDQVFMLE1BQTJDLEVBQ25DLEVBQUU7UUFDVixPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsbUJBQW1CLEVBQUUsSUFBSTtTQUNoQixDQUFDO0lBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsR0FFaEQsRUFBRTtJQUNKLE9BQU8sQ0FJTCxNQUFjLEVBQ2tDLEVB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QUNiLG1DQUFtQyxNQUFNLENBQUMsRUFBRSw4QkFBOEIsQ0FDM0UsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUl0QyxNQUFlLEVBQ29CLEVBQUU7SUFDckMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxhQUFhO0tBQ3BCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQVNoQyxNQUFlLEVBTWYsRUFBRTtJQUNGLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxLQUFLO1FBQ2QsV0FBVyxFQUFFLFNBQVM7UUFDdEIsbUJBQW1CLEVBQUUsU0FBUztLQUMvQixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHcmFwaFFMVGFnZ2VkTm9kZSwgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ3JlbGF5LXJ1bnRpbWUnO1xuaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VBdWRpdEJsb2NrU3BlYyxcbiAgQmFja29mZmljZUNvdW50UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZUNvbnRleHRTdGFja0Jsb2NrU3BlYyxcbiAgQmFja29mZmljZURhc2hib2FyZENvbmZpZyxcbiAgQmFja29mZmljZURhc2hib2FyZENvbnRleHQsXG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRFbnRpdHlMaXN0VGFyZ2V0LFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkSHJlZlRhcmdldCxcbiAgQmFja29mZmljZURhc2hib2FyZFdpZGdldFZhcmlhYmxlcyxcbiAgQmFja29mZmljZURhc2hib2FyZFdpZGdldCxcbiAgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlTWV0cmljR3JvdXBCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VQYXlsb2FkQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlUmVmZXJlbmNlR3JvdXBCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VSZWxhdGlvblN1bW1hcnlHcm91cEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVNlbWFudGljRGV0YWlsQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlU3RhdGVHcm91cEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVN1bW1hcnlCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VUZWNobmljYWxGYWN0c0Jsb2NrU3BlYyxcbiAgQmFja29mZmljZVRpbWVsaW5lQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZyxcbiAgQmFja29mZmljZUVudGl0eUZvcm1NdXRhdGlvbkFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlNdXRhdGlvbkFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlDb3VudENvbmZpZyxcbiAgQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZyxcbiAgQmFja29mZmljZUZpbHRlclBsYWNlbWVudCxcbiAgQmFja29mZmljZUZpbHRlclNwZWMsXG4gIEJhY2tvZmZpY2VGcmFnbWVudFNwZWMsXG4gIEJhY2tvZmZpY2VMaXN0RGV0YWlsRmFjZXRMb2FkZXJNYXAsXG4gIEJhY2tvZmZpY2VMaXN0RGV0YWlsTWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlTGlzdEZhY2V0TG9hZGVyLFxuICBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb24sXG4gIEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dCxcbiAgQmFja29mZmljZVBhZ2luYXRpb25GcmFnbWVudFNwZWMsXG4gIEJhY2tvZmZpY2VRdWVyeVNwZWMsXG4gIEJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlclNwZWMsXG4gIEJhY2tvZmZpY2VTb3J0U3BlYyxcbiAgQmFja29mZmljZVRvb2xFbnRpdHlDb25maWcsXG4gIEJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VUb29sTWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0TG9hZGVyTWFwLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBWYWx1ZT4gPSBFeHRyYWN0PFxuICB7XG4gICAgW0tleSBpbiBrZXlvZiBXaGVyZV06IE5vbk51bGxhYmxlPFdoZXJlW0tleV0+IGV4dGVuZHMgVmFsdWUgPyBLZXkgOiBuZXZlcjtcbiAgfVtrZXlvZiBXaGVyZV0sXG4gIHN0cmluZ1xuPjtcblxudHlwZSBTdHJpbmdGaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgc3RyaW5nPjtcbnR5cGUgQm9vbGVhbkZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBib29sZWFuPjtcbnR5cGUgTnVtYmVyRmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIG51bWJlcj47XG50eXBlIFN0cmluZ0xpc3RGaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgcmVhZG9ubHkgc3RyaW5nW10+O1xuXG50eXBlIFN0YW5kYXJkTGlzdFZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBzb3J0PzogVFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdGFuZGFyZFBpY2tlclZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+ID1cbiAgVE9wZXJhdGlvblsndmFyaWFibGVzJ10gZXh0ZW5kcyBTdGFuZGFyZExpc3RWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG50eXBlIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPiA9XG4gIFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddIGV4dGVuZHMgU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmQgPSBFeHRyYWN0PFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LFxuICB7IGRhdGFTb3VyY2U6ICdxdWVyeScgfVxuPlsna2luZCddO1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRLaW5kID0gRXh0cmFjdDxcbiAgQmFja29mZmljZURhc2hib2FyZFdpZGdldCxcbiAgeyBkYXRhU291cmNlOiAnc3RhdGljJyB9XG4+WydraW5kJ107XG5cbnR5cGUgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFxuICBLaW5kIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0S2luZCxcbj4gPSBFeHRyYWN0PEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsIHsgZGF0YVNvdXJjZTogJ3F1ZXJ5Jzsga2luZDogS2luZCB9PjtcblxudHlwZSBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0PFxuICBLaW5kIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldEtpbmQsXG4+ID0gRXh0cmFjdDxCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LCB7IGRhdGFTb3VyY2U6ICdzdGF0aWMnOyBraW5kOiBLaW5kIH0+O1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldFJlc3VsdDxcbiAgS2luZCBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmQsXG4+ID0gUmV0dXJuVHlwZTxCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8S2luZD5bJ3Jlc29sdmUnXT47XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgS2luZCBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmQsXG4+ID0gT21pdDxcbiAgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PEtpbmQ+LFxuICAnZGF0YVNvdXJjZScgfCAndmFyaWFibGVzJyB8ICdyZXNvbHZlJ1xuPiAmIHtcbiAgdmFyaWFibGVzOiBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0VmFyaWFibGVzPFRPcGVyYXRpb24+O1xuICByZXNvbHZlOiAoXG4gICAgZGF0YTogVE9wZXJhdGlvblsncmVzcG9uc2UnXSxcbiAgICBjb250ZXh0OiBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29udGV4dCxcbiAgKSA9PiBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRSZXN1bHQ8S2luZD47XG59O1xuXG50eXBlIEFueURlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4gPSB7XG4gIFtcbiAgICBLaW5kIGluIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmRcbiAgXTogRGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0SW5wdXQ8VE9wZXJhdGlvbiwgS2luZD47XG59W0JhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmRdO1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0SW5wdXQ8XG4gIEtpbmQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0S2luZCxcbj4gPSBPbWl0PEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQ8S2luZD4sICdkYXRhU291cmNlJz47XG5cbnR5cGUgQW55RGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldElucHV0ID0ge1xuICBbXG4gICAgS2luZCBpbiBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0S2luZFxuICBdOiBEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0SW5wdXQ8S2luZD47XG59W0JhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRLaW5kXTtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlID0gYW55LFxuICBURW50aXR5SWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uLFxuICAgIFRFbnRpdHlJZFxuICA+LFxuICAna2luZCcgfCAnYnVpbGRRdWVyeVZhcmlhYmxlcydcbj4gJiB7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmUsIFRTb3J0PixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUgPSBhbnksXG4gIFRFbnRpdHlJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uLFxuICAgIFRFbnRpdHlJZFxuICA+LFxuICAnbGlzdCdcbj4gJiB7XG4gIGxpc3Q6IEJhY2tvZmZpY2VFbnRpdHlMaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uLFxuICAgIFRFbnRpdHlJZFxuICA+O1xufTtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZVBpY2tlcklucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPiA9IE9taXQ8XG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4sXG4gICdidWlsZFF1ZXJ5VmFyaWFibGVzJ1xuPiAmIHtcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnID0gPFxuICBjb25zdCBDb25maWcgZXh0ZW5kcyBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuPihcbiAgY29uZmlnOiBDb25maWcsXG4pOiBDb25maWcgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VRdWVyeSA9IDxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4oXG4gIG5vZGU6IEdyYXBoUUxUYWdnZWROb2RlLFxuKTogQmFja29mZmljZVF1ZXJ5U3BlYzxUT3BlcmF0aW9uPiA9PiB7XG4gIHJldHVybiB7IG5vZGUgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRnJhZ21lbnQgPSA8VEtleSwgVERhdGE+KFxuICBub2RlOiBHcmFwaFFMVGFnZ2VkTm9kZSxcbik6IEJhY2tvZmZpY2VGcmFnbWVudFNwZWM8VEtleSwgVERhdGE+ID0+IHtcbiAgcmV0dXJuIHsgbm9kZSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VQYWdpbmF0aW9uRnJhZ21lbnQgPSA8XG4gIFRRdWVyeSBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRLZXksXG4gIFREYXRhLFxuPihcbiAgbm9kZTogR3JhcGhRTFRhZ2dlZE5vZGUsXG4pOiBCYWNrb2ZmaWNlUGFnaW5hdGlvbkZyYWdtZW50U3BlYzxUUXVlcnksIFRLZXksIFREYXRhPiA9PiB7XG4gIHJldHVybiB7IG5vZGUgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlTXV0YXRpb25BY3Rpb24gPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBOb2RlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxcbiAgICBjb25zdCBBY3Rpb24gZXh0ZW5kcyBCYWNrb2ZmaWNlRW50aXR5TXV0YXRpb25BY3Rpb25TcGVjPE5vZGUsIFRPcGVyYXRpb24+LFxuICA+KFxuICAgIGFjdGlvbjogT21pdDxBY3Rpb24sICdyZWxheU9wZXJhdGlvbkJvdW5kJz4sXG4gICk6IEFjdGlvbiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjdGlvbixcbiAgICAgIHJlbGF5T3BlcmF0aW9uQm91bmQ6IHRydWUsXG4gICAgfSBhcyBBY3Rpb247XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUZvcm1NdXRhdGlvbkFjdGlvbiA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIE5vZGUsXG4gIEZvcm1WYWx1ZXMgZXh0ZW5kcyBvYmplY3QsXG4gIEluaXRpYWxWYWx1ZXMgZXh0ZW5kcyBvYmplY3QgPSBQYXJ0aWFsPEZvcm1WYWx1ZXM+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxcbiAgICBjb25zdCBBY3Rpb24gZXh0ZW5kcyBCYWNrb2ZmaWNlRW50aXR5Rm9ybU11dGF0aW9uQWN0aW9uU3BlYzxcbiAgICAgIE5vZGUsXG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgRm9ybVZhbHVlcyxcbiAgICAgIEluaXRpYWxWYWx1ZXNcbiAgICA+LFxuICA+KFxuICAgIGFjdGlvbjogT21pdDxBY3Rpb24sICdyZWxheU9wZXJhdGlvbkJvdW5kJz4sXG4gICk6IEFjdGlvbiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjdGlvbixcbiAgICAgIHJlbGF5T3BlcmF0aW9uQm91bmQ6IHRydWUsXG4gICAgfSBhcyBBY3Rpb247XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgV2lkZ2V0IGV4dGVuZHNcbiAgICAgIEFueURlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldElucHV0PFRPcGVyYXRpb24+LFxuICA+KFxuICAgIHdpZGdldDogV2lkZ2V0LFxuICApOiBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8V2lkZ2V0WydraW5kJ10+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ud2lkZ2V0LFxuICAgICAgZGF0YVNvdXJjZTogJ3F1ZXJ5JyxcbiAgICB9IGFzIHVua25vd24gYXMgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFdpZGdldFsna2luZCddPjtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0ID0gKFxuICB3aWRnZXQ6IEFueURlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRJbnB1dCxcbik6IEV4dHJhY3Q8QmFja29mZmljZURhc2hib2FyZFdpZGdldCwgeyBkYXRhU291cmNlOiAnc3RhdGljJyB9PiA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4ud2lkZ2V0LFxuICAgIGRhdGFTb3VyY2U6ICdzdGF0aWMnLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRIcmVmVGFyZ2V0ID0gKFxuICBocmVmOiBzdHJpbmcsXG4pOiBCYWNrb2ZmaWNlRGFzaGJvYXJkSHJlZlRhcmdldCA9PiB7XG4gIHJldHVybiB7XG4gICAga2luZDogJ2hyZWYnLFxuICAgIGhyZWYsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZURhc2hib2FyZExpc3RUYXJnZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IE9taXQ8XG4gICAgICBCYWNrb2ZmaWNlRGFzaGJvYXJkRW50aXR5TGlzdFRhcmdldDxcbiAgICAgICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICAgICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPlxuICAgICAgPixcbiAgICAgICdraW5kJ1xuICAgID4sXG4gICk6IEJhY2tvZmZpY2VEYXNoYm9hcmRFbnRpdHlMaXN0VGFyZ2V0PFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPlxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGFyZ2V0LFxuICAgICAga2luZDogJ2VudGl0eS1saXN0JyxcbiAgICB9O1xuICB9O1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oXG4gIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIHJldHVybiB7XG4gICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICB9O1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZFBpY2tlclZhcmlhYmxlcyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPihcbiAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIGNvbnN0IHNlYXJjaCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gIGxldCB3aGVyZTogVFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gIGlmIChpbnB1dC5zY29wZSAhPSBudWxsKSB7XG4gICAgY29uc3Qgc2NvcGVkV2hlcmUgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhpbnB1dC5zY29wZSkuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICAgIH0pLFxuICAgICk7XG4gICAgd2hlcmUgPSBzY29wZWRXaGVyZSBhcyBUV2hlcmU7XG4gIH1cbiAgbGV0IHNlYXJjaFZhcmlhYmxlOiBzdHJpbmcgfCBudWxsID0gc2VhcmNoO1xuICBpZiAoc2VhcmNoID09PSAnJykge1xuICAgIHNlYXJjaFZhcmlhYmxlID0gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdoZXJlLFxuICAgIHNlYXJjaDogc2VhcmNoVmFyaWFibGUsXG4gICAgY291bnQ6IDIwLFxuICAgIGN1cnNvcjogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gICAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgICAgQmFja29mZmljZU9wZXJhdGlvblNvcnQ8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICAgIFRDb3VudE9wZXJhdGlvblxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgICAgY29uZmlnLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz8gYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdElucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlLFxuICAgICAgVFNvcnQsXG4gICAgICBUQ291bnRPcGVyYXRpb25cbiAgICA+ICYge1xuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydCxcbiAgICBUQ291bnRPcGVyYXRpb25cbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUxpc3RGYWNldElucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgICBUQ291bnRPcGVyYXRpb25cbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbUxpc3RGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUxpc3RGYWNldElucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlLFxuICAgICAgVFNvcnQsXG4gICAgICBUQ291bnRPcGVyYXRpb25cbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlciA9IDxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVBpY2tlcklucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tUGlja2VyID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlXG4gICAgPiAmIHtcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6IChcbiAgICAgICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlckZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21QaWNrZXJGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXIgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiAoXG4gICAgcmVsYXRpb246IEJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlclNwZWM8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgKTogQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYzxUT3BlcmF0aW9uLCBUV2hlcmU+ID0+IHtcbiAgICByZXR1cm4gcmVsYXRpb247XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUVudGl0eUNvdW50ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGNvdW50OiBPbWl0PFxuICAgICAgQmFja29mZmljZUVudGl0eUNvdW50Q29uZmlnPFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICAgICAnYnVpbGRWYXJpYWJsZXMnIHwgJ2dldENvdW50J1xuICAgID4gJiB7XG4gICAgICBidWlsZFZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZUNvdW50UXVlcnlJbnB1dDxUV2hlcmU+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICAgIGdldENvdW50OiAoZGF0YTogVE9wZXJhdGlvblsncmVzcG9uc2UnXSkgPT4gbnVtYmVyIHwgbnVsbDtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlRW50aXR5Q291bnRDb25maWc8VE9wZXJhdGlvbiwgVFdoZXJlPiA9PiB7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRFbnRpdHlJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgRmlsdGVycyBleHRlbmRzIHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFRXaGVyZSwgVEVudGl0eUlkPltdLFxuICA+KFxuICAgIGZpbHRlcnM6IEZpbHRlcnMsXG4gICk6IEZpbHRlcnMgPT4ge1xuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VTb3J0cyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPGNvbnN0IFNvcnRzIGV4dGVuZHMgcmVhZG9ubHkgQmFja29mZmljZVNvcnRTcGVjPFRTb3J0PltdPihcbiAgICBzb3J0czogU29ydHMsXG4gICk6IFNvcnRzID0+IHtcbiAgICByZXR1cm4gc29ydHM7XG4gIH07XG59O1xuXG50eXBlIEZpbHRlckNvbmZpZyA9IHtcbiAgbGFiZWw6IEkxOG5MYWJlbDtcbiAgcGxhY2VtZW50PzogQmFja29mZmljZUZpbHRlclBsYWNlbWVudDtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IGNvbnN0IGVudGl0eUlkRmlsdGVyID0gPFxuICBXaGVyZSxcbiAgS2V5IGV4dGVuZHMgU3RyaW5nRmllbGRLZXk8V2hlcmU+LFxuICBFbnRpdHlJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHsgZW50aXR5OiBFbnRpdHlJZCB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmUsIEVudGl0eUlkPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnZW50aXR5SWQnLFxuICAgIGVudGl0eTogY29uZmlnLmVudGl0eSxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGVudGl0eUlkTGlzdEZpbHRlciA9IDxcbiAgV2hlcmUsXG4gIEtleSBleHRlbmRzIFN0cmluZ0xpc3RGaWVsZEtleTxXaGVyZT4sXG4gIEVudGl0eUlkIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuPihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYgeyBlbnRpdHk6IEVudGl0eUlkIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZSwgRW50aXR5SWQ+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdlbnRpdHlJZExpc3QnLFxuICAgIGVudGl0eTogY29uZmlnLmVudGl0eSxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICAgIGZyb21HcmFwaFFMOiAod2hlcmUpID0+IHtcbiAgICAgIGNvbnN0IHJhdyA9IHdoZXJlW2tleV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByYXcuZmlsdGVyKChlbnRyeSk6IGVudHJ5IGlzIHN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgZW50cnkgPT09ICdzdHJpbmcnICYmIGVudHJ5LnRyaW0oKSAhPT0gJyc7XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAndGV4dCcsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZXRpbWVGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBtb2RlPzogJ2Zyb20nIHwgJ3RvJyB8ICdleGFjdCc7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2RhdGV0aW1lJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIG1vZGU6IGNvbmZpZy5tb2RlLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBudW1iZXJGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIE51bWJlckZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICBpbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ251bWJlcicsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgaW5wdXRNb2RlOiBjb25maWcuaW5wdXRNb2RlLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGVudW1GaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBvcHRpb25zOiByZWFkb25seSAoXG4gICAgICB8IEV4dHJhY3Q8Tm9uTnVsbGFibGU8V2hlcmVbS2V5XT4sIHN0cmluZz5cbiAgICAgIHwge1xuICAgICAgICAgIHZhbHVlOiBFeHRyYWN0PE5vbk51bGxhYmxlPFdoZXJlW0tleV0+LCBzdHJpbmc+O1xuICAgICAgICAgIGxhYmVsOiBJMThuTGFiZWw7XG4gICAgICAgIH1cbiAgICApW107XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2VudW0nLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBvcHRpb24sXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb247XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgIGxhYmVsOiBvcHRpb24ubGFiZWwsXG4gICAgICB9O1xuICAgIH0pLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHN0cmluZ0xpc3RGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0xpc3RGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ3N0cmluZ0xpc3QnLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogY29uZmlnLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBjb25maWcucGxhY2Vob2xkZXJUZXh0LFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSB2YWx1ZVxuICAgICAgICAuc3BsaXQoL1tcXG4sXSsvdSlcbiAgICAgICAgLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZW50cnkudHJpbSgpO1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKChlbnRyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRyeSAhPT0gJyc7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlcyB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gICAgZnJvbUdyYXBoUUw6ICh3aGVyZSkgPT4ge1xuICAgICAgY29uc3QgcmF3ID0gd2hlcmVba2V5XTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyYXcpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWVzID0gcmF3XG4gICAgICAgIC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBlbnRyeSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGVudHJ5LnRyaW0oKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZW50cnkgIT09ICcnO1xuICAgICAgICB9KTtcbiAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlcy5qb2luKCcsICcpO1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYm9vbGVhbkZpbHRlciA9IDxXaGVyZSwgS2V5IGV4dGVuZHMgQm9vbGVhbkZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICB0cnVlTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgZmFsc2VMYWJlbD86IEkxOG5MYWJlbDtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICB0cnVlTGFiZWw6IGNvbmZpZy50cnVlTGFiZWwsXG4gICAgZmFsc2VMYWJlbDogY29uZmlnLmZhbHNlTGFiZWwsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3VzdG9tRmlsdGVyID0gPFdoZXJlLCBWYWx1ZT4oXG4gIGZpbHRlcjogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ICYge1xuICAgIHRvR3JhcGhRTDogKHZhbHVlOiBWYWx1ZSkgPT4gUGFydGlhbDxXaGVyZT47XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4gZmlsdGVyO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VUb29sRW50aXR5ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZVRvb2xFbnRpdHlDb25maWcsXG4+KFxuICBjb25maWc6IFQsXG4pOiBUID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZXRhaWxMYXlvdXRGYWNldCA9IDxcbiAgVCBleHRlbmRzIEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURldGFpbFBhZ2VGYWNldCA9IDxcbiAgVCBleHRlbmRzIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4+KFxuICBjb25maWc6IFQsXG4pOiBUID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVEZXRhaWxCbG9ja3MgPSA8Tm9kZT4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgQmxvY2tzIGV4dGVuZHMgcmVhZG9ubHkgQmFja29mZmljZVNlbWFudGljRGV0YWlsQmxvY2tTcGVjPE5vZGU+W10sXG4gID4oXG4gICAgYmxvY2tzOiBCbG9ja3MsXG4gICk6IEJsb2NrcyA9PiB7XG4gICAgcmV0dXJuIGJsb2NrcztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVTdW1tYXJ5QmxvY2sgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlU3VtbWFyeUJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VTdW1tYXJ5QmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZU1ldHJpY0dyb3VwID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZU1ldHJpY0dyb3VwQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZU1ldHJpY0dyb3VwQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVN0YXRlR3JvdXAgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlU3RhdGVHcm91cEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VTdGF0ZUdyb3VwQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUNvbnRleHRTdGFjayA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VDb250ZXh0U3RhY2tCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlQ29udGV4dFN0YWNrQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVJlbGF0aW9uU3VtbWFyeUdyb3VwID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVJlbGF0aW9uU3VtbWFyeUdyb3VwQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVJlbGF0aW9uU3VtbWFyeUdyb3VwQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVRpbWVsaW5lID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVRpbWVsaW5lQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVRpbWVsaW5lQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUF1ZGl0ID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZUF1ZGl0QmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZUF1ZGl0QmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVJlZmVyZW5jZUdyb3VwID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVJlZmVyZW5jZUdyb3VwQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVJlZmVyZW5jZUdyb3VwQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVBheWxvYWQgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlUGF5bG9hZEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VQYXlsb2FkQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVRlY2huaWNhbEZhY3RzID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVRlY2huaWNhbEZhY3RzQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVRlY2huaWNhbEZhY3RzQmxvY2tTcGVjPE5vZGU+ID0+IHtcbiAgcmV0dXJuIGJsb2NrO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xGYWNldCA9IDxUIGV4dGVuZHMgQmFja29mZmljZVRvb2xGYWNldENvbmZpZz4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxudHlwZSBCYWNrb2ZmaWNlTGlzdERldGFpbE1hbmlmZXN0Q29uZmlnPFxuICBURmFjZXRzIGV4dGVuZHMgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbj4gPVxuICB8IChPbWl0PFxuICAgICAgRXh0cmFjdDxCYWNrb2ZmaWNlTGlzdERldGFpbE1hbmlmZXN0SXRlbSwgeyBoYXNMaXN0OiB0cnVlIH0+LFxuICAgICAgJ2tpbmQnIHwgJ2ZhY2V0cycgfCAnbGlzdE5hdmlnYXRpb24nXG4gICAgPiAmIHtcbiAgICAgIGZhY2V0czogVEZhY2V0cyAmIHsgbGlzdDogQmFja29mZmljZUxpc3RGYWNldExvYWRlciB9O1xuICAgICAgbGlzdE5hdmlnYXRpb246IEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgc3RyaW5nPjtcbiAgICB9KVxuICB8IChPbWl0PFxuICAgICAgRXh0cmFjdDxCYWNrb2ZmaWNlTGlzdERldGFpbE1hbmlmZXN0SXRlbSwgeyBoYXNMaXN0OiBmYWxzZSB9PixcbiAgICAgICdraW5kJyB8ICdmYWNldHMnXG4gICAgPiAmIHtcbiAgICAgIGZhY2V0czogT21pdDxURmFjZXRzLCAnbGlzdCc+ICYgeyBsaXN0PzogbmV2ZXIgfTtcbiAgICB9KTtcblxuY29uc3QgYXNzZXJ0TGlzdERldGFpbE1hbmlmZXN0Q29uZmlnID0gKFxuICBjb25maWc6IEJhY2tvZmZpY2VMaXN0RGV0YWlsTWFuaWZlc3RDb25maWc8QmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcD4sXG4pOiB2b2lkID0+IHtcbiAgaWYgKGNvbmZpZy5kZXRhaWxQYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQmFja29mZmljZSBsaXN0LWRldGFpbCBtYW5pZmVzdCAke2NvbmZpZy5pZH0gbXVzdCBkZWNsYXJlIGF0IGxlYXN0IG9uZSBkZXRhaWwgcGFnZS5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBwYWdlSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHBhZ2VQYXRoU2VnbWVudHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBwYWdlIG9mIGNvbmZpZy5kZXRhaWxQYWdlcykge1xuICAgIGlmIChwYWdlSWRzLmhhcyhwYWdlLmlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQmFja29mZmljZSBsaXN0LWRldGFpbCBtYW5pZmVzdCAke2NvbmZpZy5pZH0gZGVjbGFyZXMgZHVwbGljYXRlIGRldGFpbCBwYWdlIGlkICR7cGFnZS5pZH0uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwYWdlUGF0aFNlZ21lbnRzLmhhcyhwYWdlLnBhdGhTZWdtZW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQmFja29mZmljZSBsaXN0LWRldGFpbCBtYW5pZmVzdCAke2NvbmZpZy5pZH0gZGVjbGFyZXMgZHVwbGljYXRlIGRldGFpbCBwYWdlIHBhdGggJHtwYWdlLnBhdGhTZWdtZW50fS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcGFnZUlkcy5hZGQocGFnZS5pZCk7XG4gICAgcGFnZVBhdGhTZWdtZW50cy5hZGQocGFnZS5wYXRoU2VnbWVudCk7XG4gIH1cblxuICBpZiAoIXBhZ2VJZHMuaGFzKGNvbmZpZy5kZWZhdWx0RGV0YWlsUGFnZUlkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBCYWNrb2ZmaWNlIGxpc3QtZGV0YWlsIG1hbmlmZXN0ICR7Y29uZmlnLmlkfSBoYXMgdW5rbm93biBkZWZhdWx0IGRldGFpbCBwYWdlICR7Y29uZmlnLmRlZmF1bHREZXRhaWxQYWdlSWR9LmAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRQYWdlcyA9IGNvbmZpZy5kZXRhaWxQYWdlcy5maWx0ZXIoKHBhZ2UpID0+IHtcbiAgICByZXR1cm4gcGFnZS5pc0RlZmF1bHQgPT09IHRydWU7XG4gIH0pO1xuICBpZiAoXG4gICAgZGVmYXVsdFBhZ2VzLmxlbmd0aCAhPT0gMSB8fFxuICAgIGRlZmF1bHRQYWdlc1swXT8uaWQgIT09IGNvbmZpZy5kZWZhdWx0RGV0YWlsUGFnZUlkXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBCYWNrb2ZmaWNlIGxpc3QtZGV0YWlsIG1hbmlmZXN0ICR7Y29uZmlnLmlkfSBtdXN0IG1hcmsgZXhhY3RseSBpdHMgZGVmYXVsdCBkZXRhaWwgcGFnZSAke2NvbmZpZy5kZWZhdWx0RGV0YWlsUGFnZUlkfS5gLFxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbmZpZy5mYWNldHMuZGV0YWlsTGF5b3V0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEJhY2tvZmZpY2UgbGlzdC1kZXRhaWwgbWFuaWZlc3QgJHtjb25maWcuaWR9IG11c3QgZGVjbGFyZSBhIGRldGFpbC1sYXlvdXQgbG9hZGVyLmAsXG4gICAgKTtcbiAgfVxuICBpZiAodHlwZW9mIGNvbmZpZy5mYWNldHMuZGV0YWlsUGFnZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBCYWNrb2ZmaWNlIGxpc3QtZGV0YWlsIG1hbmlmZXN0ICR7Y29uZmlnLmlkfSBtdXN0IGRlY2xhcmUgYSBkZXRhaWwtcGFnZSBsb2FkZXIuYCxcbiAgICApO1xuICB9XG4gIGlmIChjb25maWcuaGFzTGlzdCAmJiB0eXBlb2YgY29uZmlnLmZhY2V0cy5saXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEJhY2tvZmZpY2UgbGlzdC1kZXRhaWwgbWFuaWZlc3QgJHtjb25maWcuaWR9IG11c3QgZGVjbGFyZSBhIGxpc3QgbG9hZGVyLmAsXG4gICAgKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VMaXN0RGV0YWlsRmFjZXRMb2FkZXJNYXAsXG4gIFRDb25maWcgZXh0ZW5kcyBCYWNrb2ZmaWNlTGlzdERldGFpbE1hbmlmZXN0Q29uZmlnPFRGYWNldHM+LFxuPihcbiAgY29uZmlnOiBUQ29uZmlnLFxuKTogVENvbmZpZyAmIHsga2luZDogJ2xpc3QtZGV0YWlsJyB9ID0+IHtcbiAgYXNzZXJ0TGlzdERldGFpbE1hbmlmZXN0Q29uZmlnKGNvbmZpZyk7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIGtpbmQ6ICdsaXN0LWRldGFpbCcsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVG9vbE1hbmlmZXN0ID0gPFxuICBURmFjZXRzIGV4dGVuZHMgQmFja29mZmljZVRvb2xGYWNldExvYWRlck1hcCxcbiAgVENvbmZpZyBleHRlbmRzIE9taXQ8XG4gICAgQmFja29mZmljZVRvb2xNYW5pZmVzdEl0ZW0sXG4gICAgJ2tpbmQnIHwgJ2hhc0xpc3QnIHwgJ2RldGFpbFBhZ2VzJyB8ICdkZWZhdWx0RGV0YWlsUGFnZUlkJyB8ICdmYWNldHMnXG4gID4gJiB7XG4gICAgZmFjZXRzOiBURmFjZXRzO1xuICB9LFxuPihcbiAgY29uZmlnOiBUQ29uZmlnLFxuKTogVENvbmZpZyAmIHtcbiAga2luZDogJ3Rvb2wnO1xuICBoYXNMaXN0OiBmYWxzZTtcbiAgZGV0YWlsUGFnZXM6IHVuZGVmaW5lZDtcbiAgZGVmYXVsdERldGFpbFBhZ2VJZDogdW5kZWZpbmVkO1xufSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIGtpbmQ6ICd0b29sJyxcbiAgICBoYXNMaXN0OiBmYWxzZSxcbiAgICBkZXRhaWxQYWdlczogdW5kZWZpbmVkLFxuICAgIGRlZmF1bHREZXRhaWxQYWdlSWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn07XG4iXX0=
426
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc09BLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBRzdDLE1BQWMsRUFDTixFQUFFO0lBQ1YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsSUFBdUIsRUFDVSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxJQUF1QixFQUNjLEVBQUU7SUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLENBS2hELElBQXVCLEVBQ2dDLEVBQUU7SUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEdBRzFDLEVBQUU7SUFDSixPQUFPLENBR0wsTUFBMkMsRUFDMEIsRUFBRTtRQUN2RSxPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsbUJBQW1CLEVBQUUsSUFBSTtTQUMxQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsR0FLOUMsRUFBRTtJQUNKLE9BQU8sQ0FRTCxNQUEyQyxFQUMwQixFQUFFO1FBQ3ZFLE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxtQkFBbUIsRUFBRSxJQUFJO1NBQzFCLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxHQUVoRCxFQUFFO0lBQ0osT0FBTyxDQUlMLE1BQWMsRUFDb0Is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LENBQ2IsbUNBQW1DLE1BQU0sQ0FBQyxFQUFFLDhCQUE4QixDQUMzRSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBSXRDLE1BQWUsRUFDb0IsRUFBRTtJQUNyQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsSUFBSSxFQUFFLGFBQWE7S0FDcEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBU2hDLE1BQWUsRUFNZixFQUFFO0lBQ0YsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxXQUFXLEVBQUUsU0FBUztRQUN0QixtQkFBbUIsRUFBRSxTQUFTO0tBQy9CLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZyxcbiAgQmFja29mZmljZUF1ZGl0QmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlQ291bnRRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlQ29udGV4dFN0YWNrQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29udGV4dCxcbiAgQmFja29mZmljZURhc2hib2FyZEVudGl0eUxpc3RUYXJnZXQsXG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRIcmVmVGFyZ2V0LFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0VmFyaWFibGVzLFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VNZXRyaWNHcm91cEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVBheWxvYWRCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VSZWZlcmVuY2VHcm91cEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVJlbGF0aW9uU3VtbWFyeUdyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlU2VtYW50aWNEZXRhaWxCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VTdGF0ZUdyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlU3VtbWFyeUJsb2NrU3BlYyxcbiAgQmFja29mZmljZVRlY2huaWNhbEZhY3RzQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlVGltZWxpbmVCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlMaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5Rm9ybU11dGF0aW9uQWN0aW9uU3BlYyxcbiAgQmFja29mZmljZUVudGl0eU11dGF0aW9uQWN0aW9uU3BlYyxcbiAgQmFja29mZmljZUVudGl0eUNvdW50Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnLFxuICBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50LFxuICBCYWNrb2ZmaWNlRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZUZyYWdtZW50U3BlYyxcbiAgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgQmFja29mZmljZUxpc3REZXRhaWxNYW5pZmVzdEl0ZW0sXG4gIEJhY2tvZmZpY2VMaXN0RmFjZXRMb2FkZXIsXG4gIEJhY2tvZmZpY2VMaXN0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbixcbiAgQmFja29mZmljZUxpc3RRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlUGFnaW5hdGlvbkZyYWdtZW50U3BlYyxcbiAgQmFja29mZmljZVF1ZXJ5U3BlYyxcbiAgQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZVNvcnRTcGVjLFxuICBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldENvbmZpZyxcbiAgQmFja29mZmljZVRvb2xNYW5pZmVzdEl0ZW0sXG4gIEJhY2tvZmZpY2VUb29sRmFjZXRMb2FkZXJNYXAsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgRmllbGRLZXlPZlR5cGU8V2hlcmUsIFZhbHVlPiA9IEV4dHJhY3Q8XG4gIHtcbiAgICBbS2V5IGluIGtleW9mIFdoZXJlXTogTm9uTnVsbGFibGU8V2hlcmVbS2V5XT4gZXh0ZW5kcyBWYWx1ZSA/IEtleSA6IG5ldmVyO1xuICB9W2tleW9mIFdoZXJlXSxcbiAgc3RyaW5nXG4+O1xuXG50eXBlIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBzdHJpbmc+O1xudHlwZSBCb29sZWFuRmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIGJvb2xlYW4+O1xudHlwZSBOdW1iZXJGaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgbnVtYmVyPjtcbnR5cGUgU3RyaW5nTGlzdEZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCByZWFkb25seSBzdHJpbmdbXT47XG5cbnR5cGUgU3RhbmRhcmRMaXN0VmFyaWFibGVzPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+ID0ge1xuICB3aGVyZT86IFRXaGVyZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHNvcnQ/OiBUU29ydCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvdW50OiBudW1iZXI7XG4gIGN1cnNvcj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG59O1xuXG50eXBlIFN0YW5kYXJkUGlja2VyVmFyaWFibGVzPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+ID0ge1xuICB3aGVyZT86IFRXaGVyZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvdW50OiBudW1iZXI7XG4gIGN1cnNvcj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG59O1xuXG50eXBlIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4gPVxuICBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSBleHRlbmRzIFN0YW5kYXJkTGlzdFZhcmlhYmxlczxUT3BlcmF0aW9uPlxuICAgID8gVE9wZXJhdGlvblxuICAgIDogbmV2ZXI7XG5cbnR5cGUgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+ID1cbiAgVE9wZXJhdGlvblsndmFyaWFibGVzJ10gZXh0ZW5kcyBTdGFuZGFyZFBpY2tlclZhcmlhYmxlczxUT3BlcmF0aW9uPlxuICAgID8gVE9wZXJhdGlvblxuICAgIDogbmV2ZXI7XG5cbnR5cGUgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0S2luZCA9IEV4dHJhY3Q8XG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsXG4gIHsgZGF0YVNvdXJjZTogJ3F1ZXJ5JyB9XG4+WydraW5kJ107XG5cbnR5cGUgQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldEtpbmQgPSBFeHRyYWN0PFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LFxuICB7IGRhdGFTb3VyY2U6ICdzdGF0aWMnIH1cbj5bJ2tpbmQnXTtcblxudHlwZSBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8XG4gIEtpbmQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRLaW5kLFxuPiA9IEV4dHJhY3Q8QmFja29mZmljZURhc2hib2FyZFdpZGdldCwgeyBkYXRhU291cmNlOiAncXVlcnknOyBraW5kOiBLaW5kIH0+O1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQ8XG4gIEtpbmQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0S2luZCxcbj4gPSBFeHRyYWN0PEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsIHsgZGF0YVNvdXJjZTogJ3N0YXRpYyc7IGtpbmQ6IEtpbmQgfT47XG5cbnR5cGUgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0UmVzdWx0PFxuICBLaW5kIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0S2luZCxcbj4gPSBSZXR1cm5UeXBlPEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxLaW5kPlsncmVzb2x2ZSddPjtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0SW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBLaW5kIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0S2luZCxcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8S2luZD4sXG4gICdkYXRhU291cmNlJyB8ICd2YXJpYWJsZXMnIHwgJ3Jlc29sdmUnXG4+ICYge1xuICB2YXJpYWJsZXM6IEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXRWYXJpYWJsZXM8VE9wZXJhdGlvbj47XG4gIHJlc29sdmU6IChcbiAgICBkYXRhOiBUT3BlcmF0aW9uWydyZXNwb25zZSddLFxuICAgIGNvbnRleHQ6IEJhY2tvZmZpY2VEYXNoYm9hcmRDb250ZXh0LFxuICApID0+IEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldFJlc3VsdDxLaW5kPjtcbn07XG5cbnR5cGUgQW55RGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0SW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPiA9IHtcbiAgW1xuICAgIEtpbmQgaW4gQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0S2luZFxuICBdOiBEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRJbnB1dDxUT3BlcmF0aW9uLCBLaW5kPjtcbn1bQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0S2luZF07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRJbnB1dDxcbiAgS2luZCBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRLaW5kLFxuPiA9IE9taXQ8QmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldDxLaW5kPiwgJ2RhdGFTb3VyY2UnPjtcblxudHlwZSBBbnlEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0SW5wdXQgPSB7XG4gIFtcbiAgICBLaW5kIGluIEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRLaW5kXG4gIF06IERlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRJbnB1dDxLaW5kPjtcbn1bQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldEtpbmRdO1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUgPSBPcGVyYXRpb25UeXBlLFxuICBURW50aXR5SWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uLFxuICAgIFRFbnRpdHlJZFxuICA+LFxuICAna2luZCcgfCAnYnVpbGRRdWVyeVZhcmlhYmxlcydcbj4gJiB7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmUsIFRTb3J0PixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUgPSBPcGVyYXRpb25UeXBlLFxuICBURW50aXR5SWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvbixcbiAgICBURW50aXR5SWRcbiAgPixcbiAgJ2xpc3QnXG4+ICYge1xuICBsaXN0OiBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvbixcbiAgICBURW50aXR5SWRcbiAgPjtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgUGlja2VyRnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZVxuICA+LFxuICAnYnVpbGRRdWVyeVZhcmlhYmxlcydcbj4gJiB7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyA9IDxcbiAgY29uc3QgQ29uZmlnIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZENvbmZpZyxcbj4oXG4gIGNvbmZpZzogQ29uZmlnLFxuKTogQ29uZmlnID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUXVlcnkgPSA8VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+KFxuICBub2RlOiBHcmFwaFFMVGFnZ2VkTm9kZSxcbik6IEJhY2tvZmZpY2VRdWVyeVNwZWM8VE9wZXJhdGlvbj4gPT4ge1xuICByZXR1cm4geyBub2RlIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUZyYWdtZW50ID0gPFRLZXksIFREYXRhPihcbiAgbm9kZTogR3JhcGhRTFRhZ2dlZE5vZGUsXG4pOiBCYWNrb2ZmaWNlRnJhZ21lbnRTcGVjPFRLZXksIFREYXRhPiA9PiB7XG4gIHJldHVybiB7IG5vZGUgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUGFnaW5hdGlvbkZyYWdtZW50ID0gPFxuICBUUXVlcnkgZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUS2V5LFxuICBURGF0YSxcbj4oXG4gIG5vZGU6IEdyYXBoUUxUYWdnZWROb2RlLFxuKTogQmFja29mZmljZVBhZ2luYXRpb25GcmFnbWVudFNwZWM8VFF1ZXJ5LCBUS2V5LCBURGF0YT4gPT4ge1xuICByZXR1cm4geyBub2RlIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZU11dGF0aW9uQWN0aW9uID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgTm9kZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgQWN0aW9uIGV4dGVuZHMgQmFja29mZmljZUVudGl0eU11dGF0aW9uQWN0aW9uU3BlYzxOb2RlLCBUT3BlcmF0aW9uPixcbiAgPihcbiAgICBhY3Rpb246IE9taXQ8QWN0aW9uLCAncmVsYXlPcGVyYXRpb25Cb3VuZCc+LFxuICApOiBPbWl0PEFjdGlvbiwgJ3JlbGF5T3BlcmF0aW9uQm91bmQnPiAmIHsgcmVsYXlPcGVyYXRpb25Cb3VuZDogdHJ1ZSB9ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYWN0aW9uLFxuICAgICAgcmVsYXlPcGVyYXRpb25Cb3VuZDogdHJ1ZSxcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb24gPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBOb2RlLFxuICBGb3JtVmFsdWVzIGV4dGVuZHMgb2JqZWN0LFxuICBJbml0aWFsVmFsdWVzIGV4dGVuZHMgb2JqZWN0ID0gUGFydGlhbDxGb3JtVmFsdWVzPixcbj4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgQWN0aW9uIGV4dGVuZHMgQmFja29mZmljZUVudGl0eUZvcm1NdXRhdGlvbkFjdGlvblNwZWM8XG4gICAgICBOb2RlLFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIEZvcm1WYWx1ZXMsXG4gICAgICBJbml0aWFsVmFsdWVzXG4gICAgPixcbiAgPihcbiAgICBhY3Rpb246IE9taXQ8QWN0aW9uLCAncmVsYXlPcGVyYXRpb25Cb3VuZCc+LFxuICApOiBPbWl0PEFjdGlvbiwgJ3JlbGF5T3BlcmF0aW9uQm91bmQnPiAmIHsgcmVsYXlPcGVyYXRpb25Cb3VuZDogdHJ1ZSB9ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYWN0aW9uLFxuICAgICAgcmVsYXlPcGVyYXRpb25Cb3VuZDogdHJ1ZSxcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IFdpZGdldCBleHRlbmRzXG4gICAgICBBbnlEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRJbnB1dDxUT3BlcmF0aW9uPixcbiAgPihcbiAgICB3aWRnZXQ6IFdpZGdldCxcbiAgKTogV2lkZ2V0ICYgeyBkYXRhU291cmNlOiAncXVlcnknIH0gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi53aWRnZXQsXG4gICAgICBkYXRhU291cmNlOiAncXVlcnknIGFzIGNvbnN0LFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldCA9IChcbiAgd2lkZ2V0OiBBbnlEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0SW5wdXQsXG4pOiBFeHRyYWN0PEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsIHsgZGF0YVNvdXJjZTogJ3N0YXRpYycgfT4gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLndpZGdldCxcbiAgICBkYXRhU291cmNlOiAnc3RhdGljJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkSHJlZlRhcmdldCA9IChcbiAgaHJlZjogc3RyaW5nLFxuKTogQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQgPT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdocmVmJyxcbiAgICBocmVmLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBPbWl0PFxuICAgICAgQmFja29mZmljZURhc2hib2FyZEVudGl0eUxpc3RUYXJnZXQ8XG4gICAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgICAgICAgQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj5cbiAgICAgID4sXG4gICAgICAna2luZCdcbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlRGFzaGJvYXJkRW50aXR5TGlzdFRhcmdldDxcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gICAgQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj5cbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRhcmdldCxcbiAgICAgIGtpbmQ6ICdlbnRpdHktbGlzdCcsXG4gICAgfTtcbiAgfTtcbn07XG5cbmNvbnN0IGJ1aWxkU3RhbmRhcmRMaXN0VmFyaWFibGVzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+KFxuICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuKTogVE9wZXJhdGlvblsndmFyaWFibGVzJ10gPT4ge1xuICByZXR1cm4ge1xuICAgIHdoZXJlOiBpbnB1dC53aGVyZSxcbiAgICBzb3J0OiBpbnB1dC5zb3J0LFxuICAgIGNvdW50OiBpbnB1dC5jb3VudCxcbiAgICBjdXJzb3I6IGlucHV0LmN1cnNvcixcbiAgfTtcbn07XG5cbmNvbnN0IGJ1aWxkU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oXG4gIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuKTogVE9wZXJhdGlvblsndmFyaWFibGVzJ10gPT4ge1xuICBjb25zdCBzZWFyY2ggPSBpbnB1dC5zZWFyY2gudHJpbSgpO1xuICBsZXQgd2hlcmU6IFRXaGVyZSB8IG51bGwgPSBudWxsO1xuICBpZiAoaW5wdXQuc2NvcGUgIT0gbnVsbCkge1xuICAgIGNvbnN0IHNjb3BlZFdoZXJlID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoaW5wdXQuc2NvcGUpLmZpbHRlcigoWywgdmFsdWVdKSA9PiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSAhPT0gJyc7XG4gICAgICB9KSxcbiAgICApO1xuICAgIHdoZXJlID0gc2NvcGVkV2hlcmUgYXMgVFdoZXJlO1xuICB9XG4gIGxldCBzZWFyY2hWYXJpYWJsZTogc3RyaW5nIHwgbnVsbCA9IHNlYXJjaDtcbiAgaWYgKHNlYXJjaCA9PT0gJycpIHtcbiAgICBzZWFyY2hWYXJpYWJsZSA9IG51bGw7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aGVyZSxcbiAgICBzZWFyY2g6IHNlYXJjaFZhcmlhYmxlLFxuICAgIGNvdW50OiAyMCxcbiAgICBjdXJzb3I6IG51bGwsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVENvdW50T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdElucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgICBUQ291bnRPcGVyYXRpb25cbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgQmFja29mZmljZU9wZXJhdGlvblNvcnQ8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICBUQ291bnRPcGVyYXRpb25cbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRMaXN0VmFyaWFibGVzLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbUNvbm5lY3Rpb25MaXN0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVENvdW50T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgTGlzdEZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBEZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZSxcbiAgICAgIFRTb3J0LFxuICAgICAgVENvdW50T3BlcmF0aW9uXG4gICAgPiAmIHtcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6IChcbiAgICAgICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmUsIFRTb3J0PixcbiAgICAgICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG4gICAgfSxcbiAgKTogQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID4gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBraW5kOiAnY29ubmVjdGlvbicsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlTGlzdEZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVENvdW50T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgICAgVENvdW50T3BlcmF0aW9uXG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21MaXN0RmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZSxcbiAgICAgIFRTb3J0LFxuICAgICAgVENvdW50T3BlcmF0aW9uXG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VQaWNrZXIgPSA8VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgUGlja2VyRnJhZ21lbnREYXRhXG4gID4gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgICBjb25maWcuYnVpbGRRdWVyeVZhcmlhYmxlcyA/PyBidWlsZFN0YW5kYXJkUGlja2VyVmFyaWFibGVzLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbVBpY2tlciA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBEZWZpbmVCYWNrb2ZmaWNlUGlja2VySW5wdXQ8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZVxuICAgID4gJiB7XG4gICAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoXG4gICAgICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VQaWNrZXJGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tUGlja2VyRmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgICBUV2hlcmVcbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+KCkgPT4ge1xuICByZXR1cm4gKFxuICAgIHJlbGF0aW9uOiBCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXJTcGVjPFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICk6IEJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlclNwZWM8VE9wZXJhdGlvbiwgVFdoZXJlPiA9PiB7XG4gICAgcmV0dXJuIHJlbGF0aW9uO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VFbnRpdHlDb3VudCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPigpID0+IHtcbiAgcmV0dXJuIChcbiAgICBjb3VudDogT21pdDxcbiAgICAgIEJhY2tvZmZpY2VFbnRpdHlDb3VudENvbmZpZzxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuICAgICAgJ2J1aWxkVmFyaWFibGVzJyB8ICdnZXRDb3VudCdcbiAgICA+ICYge1xuICAgICAgYnVpbGRWYXJpYWJsZXM6IChcbiAgICAgICAgaW5wdXQ6IEJhY2tvZmZpY2VDb3VudFF1ZXJ5SW5wdXQ8VFdoZXJlPixcbiAgICAgICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG4gICAgICBnZXRDb3VudDogKGRhdGE6IFRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10pID0+IG51bWJlciB8IG51bGw7XG4gICAgfSxcbiAgKTogQmFja29mZmljZUVudGl0eUNvdW50Q29uZmlnPFRPcGVyYXRpb24sIFRXaGVyZT4gPT4ge1xuICAgIHJldHVybiBjb3VudDtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRmlsdGVycyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBURW50aXR5SWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IEZpbHRlcnMgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxUV2hlcmUsIFRFbnRpdHlJZD5bXSxcbiAgPihcbiAgICBmaWx0ZXJzOiBGaWx0ZXJzLFxuICApOiBGaWx0ZXJzID0+IHtcbiAgICByZXR1cm4gZmlsdGVycztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlU29ydHMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxjb25zdCBTb3J0cyBleHRlbmRzIHJlYWRvbmx5IEJhY2tvZmZpY2VTb3J0U3BlYzxUU29ydD5bXT4oXG4gICAgc29ydHM6IFNvcnRzLFxuICApOiBTb3J0cyA9PiB7XG4gICAgcmV0dXJuIHNvcnRzO1xuICB9O1xufTtcblxudHlwZSBGaWx0ZXJDb25maWcgPSB7XG4gIGxhYmVsOiBJMThuTGFiZWw7XG4gIHBsYWNlbWVudD86IEJhY2tvZmZpY2VGaWx0ZXJQbGFjZW1lbnQ7XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBlbnRpdHlJZEZpbHRlciA9IDxcbiAgV2hlcmUsXG4gIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPixcbiAgRW50aXR5SWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7IGVudGl0eTogRW50aXR5SWQgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlLCBFbnRpdHlJZD4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2VudGl0eUlkJyxcbiAgICBlbnRpdHk6IGNvbmZpZy5lbnRpdHksXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBlbnRpdHlJZExpc3RGaWx0ZXIgPSA8XG4gIFdoZXJlLFxuICBLZXkgZXh0ZW5kcyBTdHJpbmdMaXN0RmllbGRLZXk8V2hlcmU+LFxuICBFbnRpdHlJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHsgZW50aXR5OiBFbnRpdHlJZCB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmUsIEVudGl0eUlkPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnZW50aXR5SWRMaXN0JyxcbiAgICBlbnRpdHk6IGNvbmZpZy5lbnRpdHksXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgICBmcm9tR3JhcGhRTDogKHdoZXJlKSA9PiB7XG4gICAgICBjb25zdCByYXcgPSB3aGVyZVtrZXldO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJhdykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmF3LmZpbHRlcigoZW50cnkpOiBlbnRyeSBpcyBzdHJpbmcgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGVudHJ5ID09PSAnc3RyaW5nJyAmJiBlbnRyeS50cmltKCkgIT09ICcnO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0ZXh0RmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ3RleHQnLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogY29uZmlnLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBjb25maWcucGxhY2Vob2xkZXJUZXh0LFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRhdGV0aW1lRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgbW9kZT86ICdmcm9tJyB8ICd0bycgfCAnZXhhY3QnO1xuICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdkYXRldGltZScsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBtb2RlOiBjb25maWcubW9kZSxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgbnVtYmVyRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBOdW1iZXJGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gICAgaW5wdXRNb2RlPzogJ251bWVyaWMnIHwgJ2RlY2ltYWwnO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdudW1iZXInLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogY29uZmlnLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBjb25maWcucGxhY2Vob2xkZXJUZXh0LFxuICAgIGlucHV0TW9kZTogY29uZmlnLmlucHV0TW9kZSxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBlbnVtRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgb3B0aW9uczogcmVhZG9ubHkgKFxuICAgICAgfCBFeHRyYWN0PE5vbk51bGxhYmxlPFdoZXJlW0tleV0+LCBzdHJpbmc+XG4gICAgICB8IHtcbiAgICAgICAgICB2YWx1ZTogRXh0cmFjdDxOb25OdWxsYWJsZTxXaGVyZVtLZXldPiwgc3RyaW5nPjtcbiAgICAgICAgICBsYWJlbDogSTE4bkxhYmVsO1xuICAgICAgICB9XG4gICAgKVtdO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdlbnVtJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIG9wdGlvbnM6IGNvbmZpZy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdMaXN0RmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdMaXN0RmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdzdHJpbmdMaXN0JyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gdmFsdWVcbiAgICAgICAgLnNwbGl0KC9bXFxuLF0rL3UpXG4gICAgICAgIC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudHJ5LnRyaW0oKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZW50cnkgIT09ICcnO1xuICAgICAgICB9KTtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZXMgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICAgIGZyb21HcmFwaFFMOiAod2hlcmUpID0+IHtcbiAgICAgIGNvbnN0IHJhdyA9IHdoZXJlW2tleV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbHVlcyA9IHJhd1xuICAgICAgICAubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgZW50cnkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBlbnRyeS50cmltKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudHJ5ICE9PSAnJztcbiAgICAgICAgfSk7XG4gICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXMuam9pbignLCAnKTtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJvb2xlYW5GaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIEJvb2xlYW5GaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgdHJ1ZUxhYmVsPzogSTE4bkxhYmVsO1xuICAgIGZhbHNlTGFiZWw/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgdHJ1ZUxhYmVsOiBjb25maWcudHJ1ZUxhYmVsLFxuICAgIGZhbHNlTGFiZWw6IGNvbmZpZy5mYWxzZUxhYmVsLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGN1c3RvbUZpbHRlciA9IDxXaGVyZSwgVmFsdWU+KFxuICBmaWx0ZXI6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiAmIHtcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZTogVmFsdWUpID0+IFBhcnRpYWw8V2hlcmU+O1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIGZpbHRlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlVG9vbEVudGl0eSA9IDxcbiAgVCBleHRlbmRzIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGV0YWlsTGF5b3V0RmFjZXQgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4+KFxuICBjb25maWc6IFQsXG4pOiBUID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZXRhaWxQYWdlRmFjZXQgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lRGV0YWlsQmxvY2tzID0gPE5vZGU+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IEJsb2NrcyBleHRlbmRzIHJlYWRvbmx5IEJhY2tvZmZpY2VTZW1hbnRpY0RldGFpbEJsb2NrU3BlYzxOb2RlPltdLFxuICA+KFxuICAgIGJsb2NrczogQmxvY2tzLFxuICApOiBCbG9ja3MgPT4ge1xuICAgIHJldHVybiBibG9ja3M7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lU3VtbWFyeUJsb2NrID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVN1bW1hcnlCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlU3VtbWFyeUJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVNZXRyaWNHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VNZXRyaWNHcm91cEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VNZXRyaWNHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVTdGF0ZUdyb3VwID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVN0YXRlR3JvdXBCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlU3RhdGVHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVDb250ZXh0U3RhY2sgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlQ29udGV4dFN0YWNrQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZUNvbnRleHRTdGFja0Jsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVSZWxhdGlvblN1bW1hcnlHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VSZWxhdGlvblN1bW1hcnlHcm91cEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VSZWxhdGlvblN1bW1hcnlHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVUaW1lbGluZSA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VUaW1lbGluZUJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VUaW1lbGluZUJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVBdWRpdCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VBdWRpdEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VBdWRpdEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVSZWZlcmVuY2VHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VSZWZlcmVuY2VHcm91cEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VSZWZlcmVuY2VHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVQYXlsb2FkID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVBheWxvYWRCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlUGF5bG9hZEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVUZWNobmljYWxGYWN0cyA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VUZWNobmljYWxGYWN0c0Jsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VUZWNobmljYWxGYWN0c0Jsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb29sRmFjZXQgPSA8VCBleHRlbmRzIEJhY2tvZmZpY2VUb29sRmFjZXRDb25maWc+KFxuICBjb25maWc6IFQsXG4pOiBUID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbnR5cGUgQmFja29mZmljZUxpc3REZXRhaWxNYW5pZmVzdENvbmZpZzxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VMaXN0RGV0YWlsRmFjZXRMb2FkZXJNYXAsXG4+ID1cbiAgfCAoT21pdDxcbiAgICAgIEV4dHJhY3Q8QmFja29mZmljZUxpc3REZXRhaWxNYW5pZmVzdEl0ZW0sIHsgaGFzTGlzdDogdHJ1ZSB9PixcbiAgICAgICdraW5kJyB8ICdmYWNldHMnIHwgJ2xpc3ROYXZpZ2F0aW9uJ1xuICAgID4gJiB7XG4gICAgICBmYWNldHM6IFRGYWNldHMgJiB7IGxpc3Q6IEJhY2tvZmZpY2VMaXN0RmFjZXRMb2FkZXIgfTtcbiAgICAgIGxpc3ROYXZpZ2F0aW9uOiBCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb248UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIHN0cmluZz47XG4gICAgfSlcbiAgfCAoT21pdDxcbiAgICAgIEV4dHJhY3Q8QmFja29mZmljZUxpc3REZXRhaWxNYW5pZmVzdEl0ZW0sIHsgaGFzTGlzdDogZmFsc2UgfT4sXG4gICAgICAna2luZCcgfCAnZmFjZXRzJ1xuICAgID4gJiB7XG4gICAgICBmYWNldHM6IE9taXQ8VEZhY2V0cywgJ2xpc3QnPiAmIHsgbGlzdD86IG5ldmVyIH07XG4gICAgfSk7XG5cbmNvbnN0IGFzc2VydExpc3REZXRhaWxNYW5pZmVzdENvbmZpZyA9IChcbiAgY29uZmlnOiBCYWNrb2ZmaWNlTGlzdERldGFpbE1hbmlmZXN0Q29uZmlnPEJhY2tvZmZpY2VMaXN0RGV0YWlsRmFjZXRMb2FkZXJNYXA+LFxuKTogdm9pZCA9PiB7XG4gIGlmIChjb25maWcuZGV0YWlsUGFnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEJhY2tvZmZpY2UgbGlzdC1kZXRhaWwgbWFuaWZlc3QgJHtjb25maWcuaWR9IG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgZGV0YWlsIHBhZ2UuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgcGFnZUlkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBwYWdlUGF0aFNlZ21lbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgcGFnZSBvZiBjb25maWcuZGV0YWlsUGFnZXMpIHtcbiAgICBpZiAocGFnZUlkcy5oYXMocGFnZS5pZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEJhY2tvZmZpY2UgbGlzdC1kZXRhaWwgbWFuaWZlc3QgJHtjb25maWcuaWR9IGRlY2xhcmVzIGR1cGxpY2F0ZSBkZXRhaWwgcGFnZSBpZCAke3BhZ2UuaWR9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocGFnZVBhdGhTZWdtZW50cy5oYXMocGFnZS5wYXRoU2VnbWVudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEJhY2tvZmZpY2UgbGlzdC1kZXRhaWwgbWFuaWZlc3QgJHtjb25maWcuaWR9IGRlY2xhcmVzIGR1cGxpY2F0ZSBkZXRhaWwgcGFnZSBwYXRoICR7cGFnZS5wYXRoU2VnbWVudH0uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHBhZ2VJZHMuYWRkKHBhZ2UuaWQpO1xuICAgIHBhZ2VQYXRoU2VnbWVudHMuYWRkKHBhZ2UucGF0aFNlZ21lbnQpO1xuICB9XG5cbiAgaWYgKCFwYWdlSWRzLmhhcyhjb25maWcuZGVmYXVsdERldGFpbFBhZ2VJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQmFja29mZmljZSBsaXN0LWRldGFpbCBtYW5pZmVzdCAke2NvbmZpZy5pZH0gaGFzIHVua25vd24gZGVmYXVsdCBkZXRhaWwgcGFnZSAke2NvbmZpZy5kZWZhdWx0RGV0YWlsUGFnZUlkfS5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBkZWZhdWx0UGFnZXMgPSBjb25maWcuZGV0YWlsUGFnZXMuZmlsdGVyKChwYWdlKSA9PiB7XG4gICAgcmV0dXJuIHBhZ2UuaXNEZWZhdWx0ID09PSB0cnVlO1xuICB9KTtcbiAgaWYgKFxuICAgIGRlZmF1bHRQYWdlcy5sZW5ndGggIT09IDEgfHxcbiAgICBkZWZhdWx0UGFnZXNbMF0/LmlkICE9PSBjb25maWcuZGVmYXVsdERldGFpbFBhZ2VJZFxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQmFja29mZmljZSBsaXN0LWRldGFpbCBtYW5pZmVzdCAke2NvbmZpZy5pZH0gbXVzdCBtYXJrIGV4YWN0bHkgaXRzIGRlZmF1bHQgZGV0YWlsIHBhZ2UgJHtjb25maWcuZGVmYXVsdERldGFpbFBhZ2VJZH0uYCxcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjb25maWcuZmFjZXRzLmRldGFpbExheW91dCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBCYWNrb2ZmaWNlIGxpc3QtZGV0YWlsIG1hbmlmZXN0ICR7Y29uZmlnLmlkfSBtdXN0IGRlY2xhcmUgYSBkZXRhaWwtbGF5b3V0IGxvYWRlci5gLFxuICAgICk7XG4gIH1cbiAgaWYgKHR5cGVvZiBjb25maWcuZmFjZXRzLmRldGFpbFBhZ2UgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQmFja29mZmljZSBsaXN0LWRldGFpbCBtYW5pZmVzdCAke2NvbmZpZy5pZH0gbXVzdCBkZWNsYXJlIGEgZGV0YWlsLXBhZ2UgbG9hZGVyLmAsXG4gICAgKTtcbiAgfVxuICBpZiAoY29uZmlnLmhhc0xpc3QgJiYgdHlwZW9mIGNvbmZpZy5mYWNldHMubGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBCYWNrb2ZmaWNlIGxpc3QtZGV0YWlsIG1hbmlmZXN0ICR7Y29uZmlnLmlkfSBtdXN0IGRlY2xhcmUgYSBsaXN0IGxvYWRlci5gLFxuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3QgPSA8XG4gIFRGYWNldHMgZXh0ZW5kcyBCYWNrb2ZmaWNlTGlzdERldGFpbEZhY2V0TG9hZGVyTWFwLFxuICBUQ29uZmlnIGV4dGVuZHMgQmFja29mZmljZUxpc3REZXRhaWxNYW5pZmVzdENvbmZpZzxURmFjZXRzPixcbj4oXG4gIGNvbmZpZzogVENvbmZpZyxcbik6IFRDb25maWcgJiB7IGtpbmQ6ICdsaXN0LWRldGFpbCcgfSA9PiB7XG4gIGFzc2VydExpc3REZXRhaWxNYW5pZmVzdENvbmZpZyhjb25maWcpO1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBraW5kOiAnbGlzdC1kZXRhaWwnLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VUb29sRmFjZXRMb2FkZXJNYXAsXG4gIFRDb25maWcgZXh0ZW5kcyBPbWl0PFxuICAgIEJhY2tvZmZpY2VUb29sTWFuaWZlc3RJdGVtLFxuICAgICdraW5kJyB8ICdoYXNMaXN0JyB8ICdkZXRhaWxQYWdlcycgfCAnZGVmYXVsdERldGFpbFBhZ2VJZCcgfCAnZmFjZXRzJ1xuICA+ICYge1xuICAgIGZhY2V0czogVEZhY2V0cztcbiAgfSxcbj4oXG4gIGNvbmZpZzogVENvbmZpZyxcbik6IFRDb25maWcgJiB7XG4gIGtpbmQ6ICd0b29sJztcbiAgaGFzTGlzdDogZmFsc2U7XG4gIGRldGFpbFBhZ2VzOiB1bmRlZmluZWQ7XG4gIGRlZmF1bHREZXRhaWxQYWdlSWQ6IHVuZGVmaW5lZDtcbn0gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBraW5kOiAndG9vbCcsXG4gICAgaGFzTGlzdDogZmFsc2UsXG4gICAgZGV0YWlsUGFnZXM6IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0RGV0YWlsUGFnZUlkOiB1bmRlZmluZWQsXG4gIH07XG59O1xuIl19
@@ -1,5 +1,5 @@
1
1
  import type { GraphQLTaggedNode, OperationType } from 'relay-runtime';
2
- import type { BackofficeAliasedPickerValueResponse, BackofficeColumnSpec, BackofficeConnection, BackofficeConnectionListConfig, BackofficeDetailContentSpec, BackofficeDetailLayoutProfile, BackofficeDetailPageSpec, BackofficeDetailVariables, BackofficeEntityActionSpec, BackofficeEntityDetailConfig, BackofficeEntityPickerConfig, BackofficeEntityRelationSpec, BackofficeListQueryInput, BackofficeListResponsiveProfile, BackofficeListState, BackofficeListUiConfig, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerQueryInput, BackofficePickerValueConfig, BackofficeRuntimeEntityCountConfig, BackofficeRowFlagSpec, I18nLabel } from '../types.js';
2
+ import type { BackofficeAliasedPickerValueResponse, BackofficeColumnSpec, BackofficeConnection, BackofficeConnectionListConfig, BackofficeDetailContentSpec, BackofficeDetailLayoutProfile, BackofficeDetailPageSpec, BackofficeDetailVariables, BackofficeEntityActionSpec, BackofficeEntityDetailConfig, BackofficeEntityPickerConfig, BackofficeEntityRelationSpec, BackofficeListQueryInput, BackofficeListResponsiveProfile, BackofficeListState, BackofficeListUiConfig, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerQueryInput, BackofficePickerValueConfig, BackofficeRuntimeEntityCountConfig, BackofficeRuntimeOperation, BackofficeRowFlagSpec, I18nLabel } from '../types.js';
3
3
  import { type BackofficeLegacyFilterSpec } from './filters.js';
4
4
  import { type BackofficeLegacySortSpec } from './sorts.js';
5
5
  export type BackofficeWhereEntry = {
@@ -54,7 +54,7 @@ export declare const buildBackofficeConnectionListConfig: <TOperation extends Op
54
54
  buildQueryVariables?: (input: BackofficeListQueryInput<TOperation, Where, Sort>) => TOperation['variables'];
55
55
  responsive?: BackofficeListResponsiveProfile<RowView>;
56
56
  ui?: BackofficeListUiConfig;
57
- }) => BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, Where, Sort, any, EntityId>;
57
+ }) => BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, Where, Sort, BackofficeRuntimeOperation, EntityId>;
58
58
  export declare function buildBackofficeDetailPageConfig<DetailView extends {
59
59
  id: string;
60
60
  }, DetailData = DetailView, LayoutView = DetailView, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = {
@@ -96,7 +96,7 @@ export declare const buildBackofficeEntityDetailConfig: <LayoutData extends obje
96
96
  actions?: readonly BackofficeEntityActionSpec<MainView>[];
97
97
  layoutQuery?: GraphQLTaggedNode;
98
98
  layoutFragment?: GraphQLTaggedNode;
99
- layoutToView?: (data: LayoutData) => LayoutView;
99
+ layoutToView: (data: LayoutData) => LayoutView;
100
100
  header?: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>['header'];
101
101
  resolveNode: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>['mainPage']['resolveNode'];
102
102
  layoutResolveNode: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>['layoutPage']['resolveNode'];
@@ -1 +1 @@
1
- {"version":3,"file":"entity-builders.d.ts","sourceRoot":"","sources":["../../../src/config/entity-builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-builders.d.ts","sourceRoot":"","sources":["../../../src/config/entity-builders.ts"],"names":[],"mappings":"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"}