@nlabs/metropolisjs 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/actions/appActions/appActions.d.ts +0 -1
- package/lib/actions/awsRumActions/awsRumActions.d.ts +4 -4
- package/lib/actions/awsRumActions/awsRumActions.js +81 -29
- package/lib/actions/connectionActions/connectionActions.d.ts +0 -1
- package/lib/actions/contentActions/contentActions.d.ts +0 -1
- package/lib/actions/conversationActions/conversationActions.d.ts +0 -1
- package/lib/actions/crmActions/crmActions.d.ts +32 -33
- package/lib/actions/eventActions/eventActions.d.ts +0 -1
- package/lib/actions/groupActions/groupActions.d.ts +0 -1
- package/lib/actions/imageActions/imageActions.d.ts +0 -1
- package/lib/actions/imageActions/imageActions.js +5 -4
- package/lib/actions/index.d.ts +0 -1
- package/lib/actions/locationActions/locationActions.d.ts +0 -1
- package/lib/actions/messageActions/messageActions.d.ts +0 -1
- package/lib/actions/permissionActions/permissionActions.d.ts +0 -1
- package/lib/actions/personaActions/personaActions.d.ts +0 -1
- package/lib/actions/postActions/postActions.d.ts +0 -1
- package/lib/actions/reactionActions/reactionActions.d.ts +0 -1
- package/lib/actions/restActions/restActions.d.ts +2 -3
- package/lib/actions/sseActions/sseActions.d.ts +0 -1
- package/lib/actions/sseActions/sseActions.js +1 -1
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts +0 -1
- package/lib/actions/tagActions/tagActions.d.ts +0 -1
- package/lib/actions/tagActions/tagActions.js +1 -1
- package/lib/actions/translationActions/translationActions.d.ts +0 -1
- package/lib/actions/userActions/userActions.d.ts +0 -1
- package/lib/actions/videoActions/videoActions.d.ts +0 -1
- package/lib/actions/websocketActions/websocketActions.d.ts +0 -1
- package/lib/adapters/appAdapter/appAdapter.d.ts +2 -3
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +2 -3
- package/lib/adapters/contentAdapter/contentAdapter.d.ts +2 -3
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +2 -3
- package/lib/adapters/eventAdapter/eventAdapter.d.ts +2 -3
- package/lib/adapters/fileAdapter/fileAdapter.d.ts +2 -3
- package/lib/adapters/groupAdapter/groupAdapter.d.ts +2 -3
- package/lib/adapters/imageAdapter/imageAdapter.d.ts +2 -3
- package/lib/adapters/index.d.ts +0 -1
- package/lib/adapters/locationAdapter/locationAdapter.d.ts +2 -3
- package/lib/adapters/messageAdapter/messageAdapter.d.ts +2 -3
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +2 -3
- package/lib/adapters/permissionAdapter/permissionAdapter.js +1 -1
- package/lib/adapters/personaAdapter/personaAdapter.d.ts +2 -3
- package/lib/adapters/postAdapter/postAdapter.d.ts +2 -3
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +2 -3
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +2 -3
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +2 -3
- package/lib/adapters/tagAdapter/tagAdapter.d.ts +2 -3
- package/lib/adapters/translationAdapter/translationAdapter.d.ts +2 -3
- package/lib/adapters/userAdapter/userAdapter.d.ts +2 -3
- package/lib/adapters/videoAdapter/videoAdapter.d.ts +2 -3
- package/lib/config/index.d.ts +2 -1
- package/lib/config/index.js +7 -3
- package/lib/constants/Collections.d.ts +43 -44
- package/lib/constants/MetropolisConstants.d.ts +0 -1
- package/lib/graphql/message.d.ts +0 -1
- package/lib/graphql/notification.d.ts +0 -1
- package/lib/graphql/session.d.ts +0 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +31 -1
- package/lib/stores/appStore.d.ts +13 -14
- package/lib/stores/contentStore.d.ts +11 -12
- package/lib/stores/conversationStore.d.ts +11 -12
- package/lib/stores/eventStore.d.ts +13 -17
- package/lib/stores/groupStore.d.ts +11 -15
- package/lib/stores/imageStore.d.ts +16 -20
- package/lib/stores/index.d.ts +0 -1
- package/lib/stores/locationStore.d.ts +12 -15
- package/lib/stores/messageStore.d.ts +14 -20
- package/lib/stores/notificationStore.d.ts +3 -6
- package/lib/stores/permissionStore.d.ts +13 -14
- package/lib/stores/personaStore.d.ts +1 -2
- package/lib/stores/postStore.d.ts +11 -14
- package/lib/stores/reactionStore.d.ts +9 -10
- package/lib/stores/subscriptionStore.d.ts +13 -14
- package/lib/stores/tagStore.d.ts +16 -19
- package/lib/stores/translationStore.d.ts +8 -9
- package/lib/stores/userStore.d.ts +41 -42
- package/lib/stores/userStore.js +7 -1
- package/lib/stores/videoStore.d.ts +12 -13
- package/lib/stores/websocketStore.d.ts +5 -6
- package/lib/types/apps.types.d.ts +0 -1
- package/lib/types/common.types.d.ts +0 -1
- package/lib/types/conversations.types.d.ts +0 -1
- package/lib/types/crm.types.d.ts +0 -1
- package/lib/types/edges.types.d.ts +0 -1
- package/lib/types/groups.types.d.ts +0 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/subscriptions.types.d.ts +0 -1
- package/lib/types/videos.types.d.ts +0 -1
- package/lib/utils/MetropolisProvider.d.ts +0 -1
- package/lib/utils/actionFactory.d.ts +2 -3
- package/lib/utils/actionFactory.js +27 -2
- package/lib/utils/api.d.ts +1 -2
- package/lib/utils/api.js +34 -18
- package/lib/utils/app.d.ts +0 -1
- package/lib/utils/baseActionFactory.d.ts +2 -3
- package/lib/utils/configUtils.d.ts +0 -1
- package/lib/utils/dateUtils.d.ts +0 -1
- package/lib/utils/file.d.ts +0 -1
- package/lib/utils/i18n.d.ts +0 -1
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/location.d.ts +1 -2
- package/lib/utils/permissionUtils.d.ts +0 -1
- package/lib/utils/requestCache.d.ts +1 -2
- package/lib/utils/session.d.ts +0 -1
- package/lib/utils/useConversationTyping.d.ts +0 -1
- package/lib/utils/useMetropolis.d.ts +0 -1
- package/lib/utils/useMetropolis.js +9 -5
- package/lib/utils/useTranslations.d.ts +0 -1
- package/lib/utils/useTranslations.js +1 -1
- package/lib/utils/validatorFactory.d.ts +1 -2
- package/package.json +3 -3
- package/tsconfig.test.json +4 -0
- package/lib/actions/appActions/appActions.d.ts.map +0 -1
- package/lib/actions/awsRumActions/awsRumActions.d.ts.map +0 -1
- package/lib/actions/connectionActions/connectionActions.d.ts.map +0 -1
- package/lib/actions/contentActions/contentActions.d.ts.map +0 -1
- package/lib/actions/conversationActions/conversationActions.d.ts.map +0 -1
- package/lib/actions/crmActions/crmActions.d.ts.map +0 -1
- package/lib/actions/eventActions/eventActions.d.ts.map +0 -1
- package/lib/actions/groupActions/groupActions.d.ts.map +0 -1
- package/lib/actions/imageActions/imageActions.d.ts.map +0 -1
- package/lib/actions/index.d.ts.map +0 -1
- package/lib/actions/locationActions/locationActions.d.ts.map +0 -1
- package/lib/actions/messageActions/messageActions.d.ts.map +0 -1
- package/lib/actions/permissionActions/permissionActions.d.ts.map +0 -1
- package/lib/actions/personaActions/personaActions.d.ts.map +0 -1
- package/lib/actions/postActions/postActions.d.ts.map +0 -1
- package/lib/actions/reactionActions/reactionActions.d.ts.map +0 -1
- package/lib/actions/restActions/restActions.d.ts.map +0 -1
- package/lib/actions/sseActions/sseActions.d.ts.map +0 -1
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +0 -1
- package/lib/actions/tagActions/tagActions.d.ts.map +0 -1
- package/lib/actions/translationActions/translationActions.d.ts.map +0 -1
- package/lib/actions/userActions/userActions.d.ts.map +0 -1
- package/lib/actions/videoActions/videoActions.d.ts.map +0 -1
- package/lib/actions/websocketActions/websocketActions.d.ts.map +0 -1
- package/lib/adapters/appAdapter/appAdapter.d.ts.map +0 -1
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +0 -1
- package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +0 -1
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +0 -1
- package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +0 -1
- package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +0 -1
- package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +0 -1
- package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +0 -1
- package/lib/adapters/index.d.ts.map +0 -1
- package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +0 -1
- package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +0 -1
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +0 -1
- package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +0 -1
- package/lib/adapters/postAdapter/postAdapter.d.ts.map +0 -1
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +0 -1
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +0 -1
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +0 -1
- package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +0 -1
- package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +0 -1
- package/lib/adapters/userAdapter/userAdapter.d.ts.map +0 -1
- package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +0 -1
- package/lib/config/index.d.ts.map +0 -1
- package/lib/constants/Collections.d.ts.map +0 -1
- package/lib/constants/MetropolisConstants.d.ts.map +0 -1
- package/lib/graphql/message.d.ts.map +0 -1
- package/lib/graphql/notification.d.ts.map +0 -1
- package/lib/graphql/session.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/stores/appStore.d.ts.map +0 -1
- package/lib/stores/contentStore.d.ts.map +0 -1
- package/lib/stores/conversationStore.d.ts.map +0 -1
- package/lib/stores/eventStore.d.ts.map +0 -1
- package/lib/stores/groupStore.d.ts.map +0 -1
- package/lib/stores/imageStore.d.ts.map +0 -1
- package/lib/stores/index.d.ts.map +0 -1
- package/lib/stores/locationStore.d.ts.map +0 -1
- package/lib/stores/messageStore.d.ts.map +0 -1
- package/lib/stores/notificationStore.d.ts.map +0 -1
- package/lib/stores/permissionStore.d.ts.map +0 -1
- package/lib/stores/personaStore.d.ts.map +0 -1
- package/lib/stores/postStore.d.ts.map +0 -1
- package/lib/stores/reactionStore.d.ts.map +0 -1
- package/lib/stores/subscriptionStore.d.ts.map +0 -1
- package/lib/stores/tagStore.d.ts.map +0 -1
- package/lib/stores/translationStore.d.ts.map +0 -1
- package/lib/stores/userStore.d.ts.map +0 -1
- package/lib/stores/videoStore.d.ts.map +0 -1
- package/lib/stores/websocketStore.d.ts.map +0 -1
- package/lib/tests/actionTestScenarios.d.ts +0 -20
- package/lib/tests/actionTestScenarios.d.ts.map +0 -1
- package/lib/tests/actionTestScenarios.js +0 -851
- package/lib/tests/testGraphQLServer.d.ts +0 -22
- package/lib/tests/testGraphQLServer.d.ts.map +0 -1
- package/lib/tests/testGraphQLServer.js +0 -197
- package/lib/tests/testGraphQLServerSimple.d.ts +0 -3
- package/lib/tests/testGraphQLServerSimple.d.ts.map +0 -1
- package/lib/tests/testGraphQLServerSimple.js +0 -52
- package/lib/types/apps.types.d.ts.map +0 -1
- package/lib/types/common.types.d.ts.map +0 -1
- package/lib/types/conversations.types.d.ts.map +0 -1
- package/lib/types/crm.types.d.ts.map +0 -1
- package/lib/types/edges.types.d.ts.map +0 -1
- package/lib/types/groups.types.d.ts.map +0 -1
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/subscriptions.types.d.ts.map +0 -1
- package/lib/types/videos.types.d.ts.map +0 -1
- package/lib/utils/MetropolisProvider.d.ts.map +0 -1
- package/lib/utils/actionFactory.d.ts.map +0 -1
- package/lib/utils/api.d.ts.map +0 -1
- package/lib/utils/app.d.ts.map +0 -1
- package/lib/utils/baseActionFactory.d.ts.map +0 -1
- package/lib/utils/configUtils.d.ts.map +0 -1
- package/lib/utils/dateUtils.d.ts.map +0 -1
- package/lib/utils/file.d.ts.map +0 -1
- package/lib/utils/i18n.d.ts.map +0 -1
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/location.d.ts.map +0 -1
- package/lib/utils/permissionUtils.d.ts.map +0 -1
- package/lib/utils/requestCache.d.ts.map +0 -1
- package/lib/utils/session.d.ts.map +0 -1
- package/lib/utils/useConversationTyping.d.ts.map +0 -1
- package/lib/utils/useMetropolis.d.ts.map +0 -1
- package/lib/utils/useTranslations.d.ts.map +0 -1
- package/lib/utils/validatorFactory.d.ts.map +0 -1
package/lib/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { MetropolisContext } from './utils/MetropolisProvider.js';
|
|
|
17
17
|
import { getRefreshWindowMinutes, hydrateSessionFromStorage, parseJwtExpiryMs } from './utils/session.js';
|
|
18
18
|
import { createAction } from './utils/actionFactory.js';
|
|
19
19
|
export { MetropolisContext, MetropolisProvider } from './utils/MetropolisProvider.js';
|
|
20
|
+
export const GOTHAM_ANALYTICS_EVENT = 'nlabs:gotham:analytics';
|
|
20
21
|
export const onInit = async (flux)=>{
|
|
21
22
|
if (!flux.getState('app.metropolisInitialized')) {
|
|
22
23
|
flux.addStores([
|
|
@@ -133,6 +134,13 @@ export const Metropolis = ({ adapters, children, config = {}, translations = {}
|
|
|
133
134
|
resolvedConfig.adapters,
|
|
134
135
|
adapters
|
|
135
136
|
]);
|
|
137
|
+
const rumOptions = useMemo(()=>({
|
|
138
|
+
...resolvedConfig.app?.rum,
|
|
139
|
+
appId: resolvedConfig.app?.rum?.appId || resolvedConfig.app?.name
|
|
140
|
+
}), [
|
|
141
|
+
resolvedConfig.app?.name,
|
|
142
|
+
resolvedConfig.app?.rum
|
|
143
|
+
]);
|
|
136
144
|
const sessionPersonaId = String(useFluxState('user.session.personaId', '') || '');
|
|
137
145
|
const sessionToken = String(useFluxState('user.session.token', '') || '');
|
|
138
146
|
const sessionHydrated = Boolean(useFluxState('app.sessionHydrated', false));
|
|
@@ -147,6 +155,28 @@ export const Metropolis = ({ adapters, children, config = {}, translations = {}
|
|
|
147
155
|
websocketsRef.current = createAction('websocket', flux);
|
|
148
156
|
}
|
|
149
157
|
const websockets = websocketsRef.current;
|
|
158
|
+
const awsRum = useMemo(()=>createAction('awsRum', flux, rumOptions), [
|
|
159
|
+
flux,
|
|
160
|
+
rumOptions
|
|
161
|
+
]);
|
|
162
|
+
useEffect(()=>{
|
|
163
|
+
if (typeof globalThis.window === 'undefined') {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const onGothamAnalytics = (event)=>{
|
|
167
|
+
const detail = event.detail;
|
|
168
|
+
if (detail && typeof detail === 'object') {
|
|
169
|
+
awsRum.track(detail);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
globalThis.window.addEventListener(GOTHAM_ANALYTICS_EVENT, onGothamAnalytics);
|
|
173
|
+
return ()=>{
|
|
174
|
+
globalThis.window.removeEventListener(GOTHAM_ANALYTICS_EVENT, onGothamAnalytics);
|
|
175
|
+
void awsRum.destroy();
|
|
176
|
+
};
|
|
177
|
+
}, [
|
|
178
|
+
awsRum
|
|
179
|
+
]);
|
|
150
180
|
useEffect(()=>{
|
|
151
181
|
initI18n(translations);
|
|
152
182
|
}, [
|
|
@@ -248,4 +278,4 @@ export * from './actions/videoActions/videoActions.js';
|
|
|
248
278
|
export * from './constants/Collections.js';
|
|
249
279
|
export * from './types/index.js';
|
|
250
280
|
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3VzZUZsdXgsIHVzZUZsdXhTdGF0ZX0gZnJvbSAnQG5sYWJzL2Fya2hhbWpzLXV0aWxzLXJlYWN0JztcbmltcG9ydCBpMThuIGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHtEYXRlVGltZX0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtJMThuZXh0UHJvdmlkZXJ9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQge2NyZWF0ZVdlYnNvY2tldEFjdGlvbnN9IGZyb20gJy4vYWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zL3dlYnNvY2tldEFjdGlvbnMuanMnO1xuaW1wb3J0IHtzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24sIHN5bmNQZXJzb25hVG9TZXNzaW9ufSBmcm9tICcuL2FjdGlvbnMvcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuaW1wb3J0IHtyZXNvbHZlRW52aXJvbm1lbnRDb25maWd9IGZyb20gJy4vY29uZmlnL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIGFwcCxcbiAgZXZlbnRzLFxuICBpbWFnZXMsXG4gIGxvY2F0aW9ucyxcbiAgbWVzc2FnZXMsXG4gIG5vdGlmaWNhdGlvbnMsXG4gIE5PVElGSUNBVElPTl9DT05TVEFOVFMsXG4gIHBlcm1pc3Npb25zLFxuICBQRVJTT05BX0NPTlNUQU5UUyxcbiAgcG9zdHMsXG4gIHN1YnNjcmlwdGlvbnMsXG4gIFRBR19DT05TVEFOVFMsXG4gIHRhZ3MsXG4gIFVTRVJfQ09OU1RBTlRTLFxuICB1c2VycyxcbiAgdmlkZW8sXG4gIHdlYnNvY2tldFxufSBmcm9tICcuL3N0b3Jlcy9pbmRleC5qcyc7XG5pbXBvcnQge3JlZnJlc2hTZXNzaW9ufSBmcm9tICcuL3V0aWxzL2FwaS5qcyc7XG5pbXBvcnQge2dldENvbmZpZ0Zyb21GbHV4fSBmcm9tICcuL3V0aWxzL2NvbmZpZ1V0aWxzLmpzJztcbmltcG9ydCB7aW5pdEkxOG59IGZyb20gJy4vdXRpbHMvaTE4bi5qcyc7XG5pbXBvcnQge01ldHJvcG9saXNDb250ZXh0fSBmcm9tICcuL3V0aWxzL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5pbXBvcnQge2dldFJlZnJlc2hXaW5kb3dNaW51dGVzLCBoeWRyYXRlU2Vzc2lvbkZyb21TdG9yYWdlLCBwYXJzZUp3dEV4cGlyeU1zfSBmcm9tICcuL3V0aWxzL3Nlc3Npb24uanMnO1xuaW1wb3J0IHtjcmVhdGVBY3Rpb259IGZyb20gJy4vdXRpbHMvYWN0aW9uRmFjdG9yeS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge01ldHJvcG9saXNDb25maWd1cmF0aW9uLCBNZXRyb3BvbGlzRW52aXJvbm1lbnRDb25maWd1cmF0aW9ufSBmcm9tICcuL2NvbmZpZy9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7TWV0cm9wb2xpc0FkYXB0ZXJzfSBmcm9tICcuL3V0aWxzL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5cbmV4cG9ydCB7TWV0cm9wb2xpc0NvbnRleHQsIE1ldHJvcG9saXNQcm92aWRlcn0gZnJvbSAnLi91dGlscy9NZXRyb3BvbGlzUHJvdmlkZXIuanMnO1xuXG5leHBvcnQgdHlwZSB7TWV0cm9wb2xpc0NvbmZpZ3VyYXRpb259IGZyb20gJy4vY29uZmlnL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHtNZXRyb3BvbGlzQWRhcHRlcnN9IGZyb20gJy4vdXRpbHMvTWV0cm9wb2xpc1Byb3ZpZGVyLmpzJztcblxuZXhwb3J0IGNvbnN0IG9uSW5pdCA9IGFzeW5jIChmbHV4OiBGbHV4RnJhbWV3b3JrKSA9PiB7XG4gIGlmKCFmbHV4LmdldFN0YXRlKCdhcHAubWV0cm9wb2xpc0luaXRpYWxpemVkJykpIHtcbiAgICBmbHV4LmFkZFN0b3JlcyhbXG4gICAgICBhcHAsXG4gICAgICBldmVudHMsXG4gICAgICBpbWFnZXMsXG4gICAgICBsb2NhdGlvbnMsXG4gICAgICBtZXNzYWdlcyxcbiAgICAgIG5vdGlmaWNhdGlvbnMsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIHBvc3RzLFxuICAgICAgc3Vic2NyaXB0aW9ucyxcbiAgICAgIHRhZ3MsXG4gICAgICB1c2VycyxcbiAgICAgIHZpZGVvLFxuICAgICAgd2Vic29ja2V0XG4gICAgXSk7XG4gICAgZmx1eC5vbihVU0VSX0NPTlNUQU5UUy5TSUdOX09VVF9TVUNDRVNTLCAoKSA9PiB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHt0eXBlOiBOT1RJRklDQVRJT05fQ09OU1RBTlRTLkNMRUFSX0lURU1TfSk7XG4gICAgfSk7XG4gICAgZmx1eC5vbihQRVJTT05BX0NPTlNUQU5UUy5BRERfSVRFTV9TVUNDRVNTLCBhc3luYyAoe3BlcnNvbmEgPSB7fX06IHtwZXJzb25hPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj59KSA9PiB7XG4gICAgICBzeW5jUGVyc29uYVRvU2Vzc2lvbihmbHV4LCBwZXJzb25hKTtcblxuICAgICAgaWYocGVyc29uYT8ucGVyc29uYUlkICYmICFBcnJheS5pc0FycmF5KHBlcnNvbmE/LnRhZ3MpKSB7XG4gICAgICAgIGF3YWl0IHN5bmNQZXJzb25hVGFnc1RvU2Vzc2lvbihmbHV4LCBTdHJpbmcocGVyc29uYS5wZXJzb25hSWQpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGZsdXgub24oUEVSU09OQV9DT05TVEFOVFMuVVBEQVRFX0lURU1fU1VDQ0VTUywgYXN5bmMgKHtwZXJzb25hID0ge319OiB7cGVyc29uYT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+fSkgPT4ge1xuICAgICAgc3luY1BlcnNvbmFUb1Nlc3Npb24oZmx1eCwgcGVyc29uYSk7XG5cbiAgICAgIGlmKHBlcnNvbmE/LnBlcnNvbmFJZCAmJiAhQXJyYXkuaXNBcnJheShwZXJzb25hPy50YWdzKSkge1xuICAgICAgICBhd2FpdCBzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24oZmx1eCwgU3RyaW5nKHBlcnNvbmEucGVyc29uYUlkKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBmbHV4Lm9uKFRBR19DT05TVEFOVFMuQUREX1BFUlNPTkFfU1VDQ0VTUywgKHt0YWd9OiB7dGFnPzoge25hbWU/OiBzdHJpbmc7IHRhZ0lkPzogc3RyaW5nfX0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiB7XG4gICAgICAgIHRhZ3M/OiBBcnJheTx7bmFtZT86IHN0cmluZzsgdGFnSWQ/OiBzdHJpbmd9PjtcbiAgICAgIH07XG4gICAgICBjb25zdCBjdXJyZW50VGFncyA9IEFycmF5LmlzQXJyYXkoY3VycmVudFNlc3Npb24udGFncykgPyBjdXJyZW50U2Vzc2lvbi50YWdzIDogW107XG4gICAgICBjb25zdCBuZXh0VGFnSWQgPSBTdHJpbmcodGFnPy50YWdJZCB8fCAnJykudHJpbSgpO1xuXG4gICAgICBpZighbmV4dFRhZ0lkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVyZ2VkVGFncyA9IFsuLi5jdXJyZW50VGFncy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtPy50YWdJZCB8fCAnJykudHJpbSgpICE9PSBuZXh0VGFnSWQpLCB0YWcgYXMge25hbWU/OiBzdHJpbmc7IHRhZ0lkPzogc3RyaW5nfV1cbiAgICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBTdHJpbmcobGVmdD8ubmFtZSB8fCAnJykubG9jYWxlQ29tcGFyZShTdHJpbmcocmlnaHQ/Lm5hbWUgfHwgJycpKSk7XG4gICAgICBjb25zdCBuZXh0U2Vzc2lvbiA9IHsuLi5jdXJyZW50U2Vzc2lvbiwgdGFnczogbWVyZ2VkVGFnc307XG5cbiAgICAgIHZvaWQgZmx1eC5zZXRTdGF0ZSgndXNlci5zZXNzaW9uJywgbmV4dFNlc3Npb24pO1xuICAgICAgZmx1eC5kaXNwYXRjaCh7dHlwZTogVVNFUl9DT05TVEFOVFMuVVBEQVRFX1NFU1NJT05fU1VDQ0VTUywgdXNlcjoge3RhZ3M6IG1lcmdlZFRhZ3N9fSk7XG4gICAgfSk7XG5cbiAgICBmbHV4Lm9uKFRBR19DT05TVEFOVFMuUkVNT1ZFX1BFUlNPTkFfU1VDQ0VTUywgKHt0YWd9OiB7dGFnPzoge3RhZ0lkPzogc3RyaW5nfX0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiB7XG4gICAgICAgIHRhZ3M/OiBBcnJheTx7bmFtZT86IHN0cmluZzsgdGFnSWQ/OiBzdHJpbmd9PjtcbiAgICAgIH07XG4gICAgICBjb25zdCBjdXJyZW50VGFncyA9IEFycmF5LmlzQXJyYXkoY3VycmVudFNlc3Npb24udGFncykgPyBjdXJyZW50U2Vzc2lvbi50YWdzIDogW107XG4gICAgICBjb25zdCBuZXh0VGFnSWQgPSBTdHJpbmcodGFnPy50YWdJZCB8fCAnJykudHJpbSgpO1xuXG4gICAgICBpZighbmV4dFRhZ0lkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV4dFRhZ3MgPSBjdXJyZW50VGFncy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtPy50YWdJZCB8fCAnJykudHJpbSgpICE9PSBuZXh0VGFnSWQpO1xuICAgICAgY29uc3QgbmV4dFNlc3Npb24gPSB7Li4uY3VycmVudFNlc3Npb24sIHRhZ3M6IG5leHRUYWdzfTtcblxuICAgICAgdm9pZCBmbHV4LnNldFN0YXRlKCd1c2VyLnNlc3Npb24nLCBuZXh0U2Vzc2lvbik7XG4gICAgICBmbHV4LmRpc3BhdGNoKHt0eXBlOiBVU0VSX0NPTlNUQU5UUy5VUERBVEVfU0VTU0lPTl9TVUNDRVNTLCB1c2VyOiB7dGFnczogbmV4dFRhZ3N9fSk7XG4gICAgfSk7XG4gICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZsdXguc2V0U3RhdGUoJ2FwcC5tZXRyb3BvbGlzSW5pdGlhbGl6ZWQnLCB0cnVlKSk7XG4gIH1cblxuICBjb25zdCB0b2tlbiA9IFN0cmluZyhmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24udG9rZW4nKSB8fCAnJyk7XG5cbiAgaWYodG9rZW4pIHtcbiAgICBjb25zdCBzZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMge2V4cGlyZXM/OiBudW1iZXI7IGlzc3VlZD86IG51bWJlcjsgdG9rZW4/OiBzdHJpbmd9O1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICAgIGNvbnN0IHRva2VuRXhwaXJlc0F0ID0gcGFyc2VKd3RFeHBpcnlNcyh0b2tlbik7XG4gICAgY29uc3Qgc2Vzc2lvbkxpZmV0aW1lTWludXRlcyA9IE1hdGgucm91bmQoKE51bWJlcihzZXNzaW9uLmV4cGlyZXMgfHwgMCkgLSBOdW1iZXIoc2Vzc2lvbi5pc3N1ZWQgfHwgMCkpIC8gKDEwMDAgKiA2MCkpO1xuICAgIGNvbnN0IHJlZnJlc2hXaW5kb3dNaW51dGVzID0gZ2V0UmVmcmVzaFdpbmRvd01pbnV0ZXMoXG4gICAgICBzZXNzaW9uTGlmZXRpbWVNaW51dGVzIHx8IDE1LFxuICAgICAgY29uZmlnLmFwcD8uc2Vzc2lvbiB8fCB7fVxuICAgICk7XG4gICAgY29uc3QgcmVmcmVzaEV4cGlyZXNNaW51dGVzID0gTWF0aC5tYXgoMSwgTnVtYmVyKGNvbmZpZy5hcHA/LnNlc3Npb24/Lm1heE1pbnV0ZXMgfHwgc2Vzc2lvbkxpZmV0aW1lTWludXRlcyB8fCAxNSkpO1xuICAgIGNvbnN0IGV4cGlyZXNBdCA9IE51bWJlcihzZXNzaW9uLmV4cGlyZXMgfHwgMCk7XG5cbiAgICBpZih0b2tlbkV4cGlyZXNBdCA+IDAgJiYgRGF0ZS5ub3coKSA+PSB0b2tlbkV4cGlyZXNBdCkge1xuICAgICAgYXdhaXQgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4sIHJlZnJlc2hFeHBpcmVzTWludXRlcyk7XG4gICAgfSBlbHNlIGlmKCFleHBpcmVzQXQpIHtcbiAgICAgIGF3YWl0IHJlZnJlc2hTZXNzaW9uKGZsdXgsIHRva2VuLCByZWZyZXNoRXhwaXJlc01pbnV0ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtaW51dGVzVW50aWxFeHBpcnkgPSBNYXRoLnJvdW5kKERhdGVUaW1lLmZyb21NaWxsaXMoZXhwaXJlc0F0KS5kaWZmKERhdGVUaW1lLmxvY2FsKCksICdtaW51dGVzJykudG9PYmplY3QoKS5taW51dGVzIHx8IDApO1xuXG4gICAgICBpZihtaW51dGVzVW50aWxFeHBpcnkgPD0gMCB8fCBtaW51dGVzVW50aWxFeHBpcnkgPD0gcmVmcmVzaFdpbmRvd01pbnV0ZXMpIHtcbiAgICAgICAgYXdhaXQgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4gYXMgc3RyaW5nLCByZWZyZXNoRXhwaXJlc01pbnV0ZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0ICogZnJvbSAnLi9zdG9yZXMvaW5kZXguanMnO1xuXG5leHBvcnQge1xuICBhcHBNdXRhdGlvbixcbiAgYXBwUXVlcnksXG4gIHB1YmxpY011dGF0aW9uLFxuICBwdWJsaWNRdWVyeSxcbiAgcnVtTXV0YXRpb24sXG4gIHJlZnJlc2hTZXNzaW9uLFxuICByZXNvbHZlUmVzdEVuZHBvaW50LFxuICByZXN0UmVxdWVzdCxcbiAgdXBsb2FkSW1hZ2UsXG4gIHR5cGUgQXBpUmVzdWx0c1R5cGUsXG4gIHR5cGUgUmVha3RvckRiQ29sbGVjdGlvbixcbiAgdHlwZSBSZXN0QXBpT3B0aW9ucyxcbiAgdHlwZSBSZXN0TWV0aG9kXG59IGZyb20gJy4vdXRpbHMvYXBpLmpzJztcblxuZXhwb3J0IHtyZXNvbHZlRW52aXJvbm1lbnRDb25maWd9IGZyb20gJy4vY29uZmlnL2luZGV4LmpzJztcbmV4cG9ydCB7Z2V0Q29uZmlnRnJvbUZsdXh9IGZyb20gJy4vdXRpbHMvY29uZmlnVXRpbHMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJvcG9saXNQcm9wcyB7XG4gIHJlYWRvbmx5IGFkYXB0ZXJzPzogTWV0cm9wb2xpc0FkYXB0ZXJzO1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0RWxlbWVudCB8IFJlYWN0LlJlYWN0RWxlbWVudFtdO1xuICByZWFkb25seSBjb25maWc/OiBNZXRyb3BvbGlzQ29uZmlndXJhdGlvbjtcbiAgcmVhZG9ubHkgdHJhbnNsYXRpb25zPzogU2ltcGxlVHJhbnNsYXRpb25zIHwgQ29tcGxleFRyYW5zbGF0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgU2ltcGxlVHJhbnNsYXRpb25zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV4VHJhbnNsYXRpb24ge1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuICByZWFkb25seSBsb2NhbGU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDb21wbGV4VHJhbnNsYXRpb25zID0gUmVjb3JkPHN0cmluZywgQ29tcGxleFRyYW5zbGF0aW9uPjtcblxuZXhwb3J0IGNvbnN0IE1ldHJvcG9saXMgPSAoe2FkYXB0ZXJzLCBjaGlsZHJlbiwgY29uZmlnID0ge30sIHRyYW5zbGF0aW9ucyA9IHt9fTogTWV0cm9wb2xpc1Byb3BzKSA9PiB7XG4gIGNvbnN0IGZsdXggPSB1c2VGbHV4KCk7XG4gIGNvbnN0IHJlc29sdmVkQ29uZmlnID0gdXNlTWVtbzxNZXRyb3BvbGlzRW52aXJvbm1lbnRDb25maWd1cmF0aW9uPigoKSA9PiByZXNvbHZlRW52aXJvbm1lbnRDb25maWcoY29uZmlnKSwgW2NvbmZpZ10pO1xuICBjb25zdCBtZXJnZWRBZGFwdGVycyA9IHVzZU1lbW8oKCkgPT4gKHsuLi5yZXNvbHZlZENvbmZpZy5hZGFwdGVycywgLi4uYWRhcHRlcnN9KSwgW3Jlc29sdmVkQ29uZmlnLmFkYXB0ZXJzLCBhZGFwdGVyc10pO1xuICBjb25zdCBzZXNzaW9uUGVyc29uYUlkID0gU3RyaW5nKHVzZUZsdXhTdGF0ZSgndXNlci5zZXNzaW9uLnBlcnNvbmFJZCcsICcnKSB8fCAnJyk7XG4gIGNvbnN0IHNlc3Npb25Ub2tlbiA9IFN0cmluZyh1c2VGbHV4U3RhdGUoJ3VzZXIuc2Vzc2lvbi50b2tlbicsICcnKSB8fCAnJyk7XG4gIGNvbnN0IHNlc3Npb25IeWRyYXRlZCA9IEJvb2xlYW4odXNlRmx1eFN0YXRlKCdhcHAuc2Vzc2lvbkh5ZHJhdGVkJywgZmFsc2UpKTtcbiAgY29uc3Qgc2Vzc2lvbiA9IHVzZUZsdXhTdGF0ZSgndXNlci5zZXNzaW9uJywge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCBub3RpZmljYXRpb25MaXN0ID0gdXNlRmx1eFN0YXRlKCdub3RpZmljYXRpb24ubGlzdCcsIFtdKSBhcyBBcnJheTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG4gIGNvbnN0IGNvbnZlcnNhdGlvbk1hcCA9IHVzZUZsdXhTdGF0ZSgnbWVzc2FnZS5jb252ZXJzYXRpb25zJywge30pIGFzIFJlY29yZDxzdHJpbmcsIEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pj47XG4gIGNvbnN0IG1lc3NhZ2VzID0gdXNlTWVtbygoKSA9PiBPYmplY3QudmFsdWVzKGNvbnZlcnNhdGlvbk1hcCkuZmxhdCgpLCBbY29udmVyc2F0aW9uTWFwXSk7XG5cbiAgY29uc3Qgd2Vic29ja2V0c1JlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVXZWJzb2NrZXRBY3Rpb25zPiB8IG51bGw+KG51bGwpO1xuICBpZighd2Vic29ja2V0c1JlZi5jdXJyZW50KSB7XG4gICAgd2Vic29ja2V0c1JlZi5jdXJyZW50ID0gY3JlYXRlQWN0aW9uKCd3ZWJzb2NrZXQnLCBmbHV4KSBhcyBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVXZWJzb2NrZXRBY3Rpb25zPjtcbiAgfVxuICBjb25zdCB3ZWJzb2NrZXRzID0gd2Vic29ja2V0c1JlZi5jdXJyZW50O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5pdEkxOG4odHJhbnNsYXRpb25zKTtcbiAgfSwgW3RyYW5zbGF0aW9uc10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGlzQWN0aXZlID0gdHJ1ZTtcblxuICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShmbHV4LnNldFN0YXRlKCdhcHAuY29uZmlnJywgcmVzb2x2ZWRDb25maWcpKTtcbiAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShmbHV4LnNldFN0YXRlKCdhcHAuc2Vzc2lvbkh5ZHJhdGVkJywgZmFsc2UpKTtcbiAgICAgIGF3YWl0IGh5ZHJhdGVTZXNzaW9uRnJvbVN0b3JhZ2UoZmx1eCk7XG5cbiAgICAgIGlmKCFpc0FjdGl2ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IG9uSW5pdChmbHV4KTtcblxuICAgICAgaWYoIWlzQWN0aXZlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZsdXguc2V0U3RhdGUoJ2FwcC5zZXNzaW9uSHlkcmF0ZWQnLCB0cnVlKSk7XG4gICAgfSkoKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIH07XG4gIH0sIFtmbHV4LCByZXNvbHZlZENvbmZpZ10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYoIXNlc3Npb25IeWRyYXRlZCkge1xuICAgICAgd2Vic29ja2V0cy53c0Nsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYoc2Vzc2lvblRva2VuKSB7XG4gICAgICB3ZWJzb2NrZXRzLndzSW5pdChzZXNzaW9uVG9rZW4sIHNlc3Npb25QZXJzb25hSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3ZWJzb2NrZXRzLndzQ2xvc2UoKTtcbiAgICB9XG4gIH0sIFtzZXNzaW9uSHlkcmF0ZWQsIHNlc3Npb25QZXJzb25hSWQsIHNlc3Npb25Ub2tlbiwgd2Vic29ja2V0c10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdlYnNvY2tldHMud3NDbG9zZSgpO1xuICAgIH07XG4gIH0sIFt3ZWJzb2NrZXRzXSk7XG5cbiAgY29uc3QgaXNBdXRoID0gdXNlTWVtbygoKSA9PiByZXNvbHZlZENvbmZpZy5pc0F1dGggfHwgKCgpID0+IHtcbiAgICBjb25zdCBzZXNzaW9uU3RhdGUgPSBmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSk7XG4gICAgcmV0dXJuICEhc2Vzc2lvblN0YXRlLnVzZXJBY3RpdmU7XG4gIH0pLCBbcmVzb2x2ZWRDb25maWcuaXNBdXRoLCBmbHV4XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TWV0cm9wb2xpc0NvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXt7XG4gICAgICAgIGFkYXB0ZXJzOiBtZXJnZWRBZGFwdGVycyxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlZENvbmZpZyxcbiAgICAgICAgZmx1eCxcbiAgICAgICAgaXNBdXRoLFxuICAgICAgICBtZXNzYWdlcyxcbiAgICAgICAgbm90aWZpY2F0aW9uczogbm90aWZpY2F0aW9uTGlzdCxcbiAgICAgICAgc2Vzc2lvbixcbiAgICAgICAgdXBkYXRlTWVzc2FnZTogKCkgPT4geyB9LFxuICAgICAgICB1cGRhdGVOb3RpZmljYXRpb246IHdlYnNvY2tldHMuc2VuZE5vdGlmaWNhdGlvblxuICAgICAgfX0+XG4gICAgICA8STE4bmV4dFByb3ZpZGVyIGkxOG49e2kxOG59PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0kxOG5leHRQcm92aWRlcj5cbiAgICA8L01ldHJvcG9saXNDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTWV0cm9wb2xpcztcblxuZXhwb3J0IHt1c2VUcmFuc2xhdGlvbn0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzL01ldHJvcG9saXNDb25zdGFudHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmFwaHFsL21lc3NhZ2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmFwaHFsL25vdGlmaWNhdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3Jlcy9pbmRleC5qcyc7XG5leHBvcnQge1xuICBjcmVhdGVBY3Rpb24sXG4gIGNyZWF0ZUFjdGlvbnMsXG4gIGNyZWF0ZUFsbEFjdGlvbnNcbn0gZnJvbSAnLi91dGlscy9hY3Rpb25GYWN0b3J5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvYXBwLmpzJztcbmV4cG9ydCB7Y3JlYXRlQmFzZUFjdGlvbnN9IGZyb20gJy4vdXRpbHMvYmFzZUFjdGlvbkZhY3RvcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9kYXRlVXRpbHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9maWxlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvbG9jYXRpb24uanMnO1xuZXhwb3J0IHtcbiAgdXNlQ29udGVudEFjdGlvbnMsXG4gIHVzZUF3c1J1bSxcbiAgdXNlQ3JtQWN0aW9ucyxcbiAgdXNlRXZlbnRBY3Rpb25zLFxuICB1c2VHcm91cEFjdGlvbnMsXG4gIHVzZUltYWdlQWN0aW9ucyxcbiAgdXNlTG9jYXRpb25BY3Rpb25zLFxuICB1c2VNZXNzYWdlQWN0aW9ucywgdXNlTWV0cm9wb2xpcyxcbiAgdXNlTWV0cm9wb2xpc0NvbmZpZyxcbiAgdXNlTWV0cm9wb2xpc0ZsdXgsIHVzZVBvc3RBY3Rpb25zLFxuICB1c2VQZXJzb25hQWN0aW9ucyxcbiAgdXNlUmVhY3Rpb25BY3Rpb25zLFxuICB1c2VSZXN0QWN0aW9ucyxcbiAgdXNlVGFnQWN0aW9ucyxcbiAgdXNlVHJhbnNsYXRpb25BY3Rpb25zLFxuICB1c2VVc2VyQWN0aW9ucyxcbiAgdXNlV2Vic29ja2V0QWN0aW9uc1xufSBmcm9tICcuL3V0aWxzL3VzZU1ldHJvcG9saXMuanMnO1xuZXhwb3J0IHt1c2VDb252ZXJzYXRpb25UeXBpbmd9IGZyb20gJy4vdXRpbHMvdXNlQ29udmVyc2F0aW9uVHlwaW5nLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29udmVyc2F0aW9uVHlwaW5nT3B0aW9ucyxcbiAgVXNlQ29udmVyc2F0aW9uVHlwaW5nT3B0aW9uc1xufSBmcm9tICcuL3V0aWxzL3VzZUNvbnZlcnNhdGlvblR5cGluZy5qcyc7XG5leHBvcnQge1xuICBjcmVhdGVWYWxpZGF0b3JGYWN0b3J5LFxuICBjcmVhdGVWYWxpZGF0b3JNYW5hZ2VyXG59IGZyb20gJy4vdXRpbHMvdmFsaWRhdG9yRmFjdG9yeS5qcyc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQWN0aW9uT3B0aW9ucyxcbiAgQWN0aW9uUmV0dXJuVHlwZSxcbiAgQWN0aW9uVHlwZSxcbiAgQWN0aW9uVHlwZXNcbn0gZnJvbSAnLi91dGlscy9hY3Rpb25GYWN0b3J5LmpzJztcbmV4cG9ydCB0eXBlIHtCYXNlQWN0aW9uT3B0aW9uc30gZnJvbSAnLi91dGlscy9iYXNlQWN0aW9uRmFjdG9yeS5qcyc7XG5leHBvcnQgdHlwZSB7QmFzZUFkYXB0ZXJPcHRpb25zfSBmcm9tICcuL3V0aWxzL3ZhbGlkYXRvckZhY3RvcnkuanMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvYXBwQWN0aW9ucy9hcHBBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hd3NSdW1BY3Rpb25zL2F3c1J1bUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2Nvbm5lY3Rpb25BY3Rpb25zL2Nvbm5lY3Rpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9jb252ZXJzYXRpb25BY3Rpb25zL2NvbnZlcnNhdGlvbkFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2NybUFjdGlvbnMvY3JtQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvcmVzdEFjdGlvbnMvcmVzdEFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL3ZpZGVvQWN0aW9ucy92aWRlb0FjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvQ29sbGVjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9pbmRleC5qcyc7XG4iXSwibmFtZXMiOlsidXNlRmx1eCIsInVzZUZsdXhTdGF0ZSIsImkxOG4iLCJEYXRlVGltZSIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJJMThuZXh0UHJvdmlkZXIiLCJzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24iLCJzeW5jUGVyc29uYVRvU2Vzc2lvbiIsInJlc29sdmVFbnZpcm9ubWVudENvbmZpZyIsImFwcCIsImV2ZW50cyIsImltYWdlcyIsImxvY2F0aW9ucyIsIm1lc3NhZ2VzIiwibm90aWZpY2F0aW9ucyIsIk5PVElGSUNBVElPTl9DT05TVEFOVFMiLCJwZXJtaXNzaW9ucyIsIlBFUlNPTkFfQ09OU1RBTlRTIiwicG9zdHMiLCJzdWJzY3JpcHRpb25zIiwiVEFHX0NPTlNUQU5UUyIsInRhZ3MiLCJVU0VSX0NPTlNUQU5UUyIsInVzZXJzIiwidmlkZW8iLCJ3ZWJzb2NrZXQiLCJyZWZyZXNoU2Vzc2lvbiIsImdldENvbmZpZ0Zyb21GbHV4IiwiaW5pdEkxOG4iLCJNZXRyb3BvbGlzQ29udGV4dCIsImdldFJlZnJlc2hXaW5kb3dNaW51dGVzIiwiaHlkcmF0ZVNlc3Npb25Gcm9tU3RvcmFnZSIsInBhcnNlSnd0RXhwaXJ5TXMiLCJjcmVhdGVBY3Rpb24iLCJNZXRyb3BvbGlzUHJvdmlkZXIiLCJvbkluaXQiLCJmbHV4IiwiZ2V0U3RhdGUiLCJhZGRTdG9yZXMiLCJvbiIsIlNJR05fT1VUX1NVQ0NFU1MiLCJkaXNwYXRjaCIsInR5cGUiLCJDTEVBUl9JVEVNUyIsIkFERF9JVEVNX1NVQ0NFU1MiLCJwZXJzb25hIiwicGVyc29uYUlkIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiVVBEQVRFX0lURU1fU1VDQ0VTUyIsIkFERF9QRVJTT05BX1NVQ0NFU1MiLCJ0YWciLCJjdXJyZW50U2Vzc2lvbiIsImN1cnJlbnRUYWdzIiwibmV4dFRhZ0lkIiwidGFnSWQiLCJ0cmltIiwibWVyZ2VkVGFncyIsImZpbHRlciIsIml0ZW0iLCJzb3J0IiwibGVmdCIsInJpZ2h0IiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJuZXh0U2Vzc2lvbiIsInNldFN0YXRlIiwiVVBEQVRFX1NFU1NJT05fU1VDQ0VTUyIsInVzZXIiLCJSRU1PVkVfUEVSU09OQV9TVUNDRVNTIiwibmV4dFRhZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRva2VuIiwic2Vzc2lvbiIsImNvbmZpZyIsInRva2VuRXhwaXJlc0F0Iiwic2Vzc2lvbkxpZmV0aW1lTWludXRlcyIsIk1hdGgiLCJyb3VuZCIsIk51bWJlciIsImV4cGlyZXMiLCJpc3N1ZWQiLCJyZWZyZXNoV2luZG93TWludXRlcyIsInJlZnJlc2hFeHBpcmVzTWludXRlcyIsIm1heCIsIm1heE1pbnV0ZXMiLCJleHBpcmVzQXQiLCJEYXRlIiwibm93IiwibWludXRlc1VudGlsRXhwaXJ5IiwiZnJvbU1pbGxpcyIsImRpZmYiLCJsb2NhbCIsInRvT2JqZWN0IiwibWludXRlcyIsImFwcE11dGF0aW9uIiwiYXBwUXVlcnkiLCJwdWJsaWNNdXRhdGlvbiIsInB1YmxpY1F1ZXJ5IiwicnVtTXV0YXRpb24iLCJyZXNvbHZlUmVzdEVuZHBvaW50IiwicmVzdFJlcXVlc3QiLCJ1cGxvYWRJbWFnZSIsIk1ldHJvcG9saXMiLCJhZGFwdGVycyIsImNoaWxkcmVuIiwidHJhbnNsYXRpb25zIiwicmVzb2x2ZWRDb25maWciLCJtZXJnZWRBZGFwdGVycyIsInNlc3Npb25QZXJzb25hSWQiLCJzZXNzaW9uVG9rZW4iLCJzZXNzaW9uSHlkcmF0ZWQiLCJCb29sZWFuIiwibm90aWZpY2F0aW9uTGlzdCIsImNvbnZlcnNhdGlvbk1hcCIsIk9iamVjdCIsInZhbHVlcyIsImZsYXQiLCJ3ZWJzb2NrZXRzUmVmIiwiY3VycmVudCIsIndlYnNvY2tldHMiLCJpc0FjdGl2ZSIsIndzQ2xvc2UiLCJ3c0luaXQiLCJpc0F1dGgiLCJzZXNzaW9uU3RhdGUiLCJ1c2VyQWN0aXZlIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInVwZGF0ZU1lc3NhZ2UiLCJ1cGRhdGVOb3RpZmljYXRpb24iLCJzZW5kTm90aWZpY2F0aW9uIiwidXNlVHJhbnNsYXRpb24iLCJjcmVhdGVBY3Rpb25zIiwiY3JlYXRlQWxsQWN0aW9ucyIsImNyZWF0ZUJhc2VBY3Rpb25zIiwidXNlQ29udGVudEFjdGlvbnMiLCJ1c2VBd3NSdW0iLCJ1c2VDcm1BY3Rpb25zIiwidXNlRXZlbnRBY3Rpb25zIiwidXNlR3JvdXBBY3Rpb25zIiwidXNlSW1hZ2VBY3Rpb25zIiwidXNlTG9jYXRpb25BY3Rpb25zIiwidXNlTWVzc2FnZUFjdGlvbnMiLCJ1c2VNZXRyb3BvbGlzIiwidXNlTWV0cm9wb2xpc0NvbmZpZyIsInVzZU1ldHJvcG9saXNGbHV4IiwidXNlUG9zdEFjdGlvbnMiLCJ1c2VQZXJzb25hQWN0aW9ucyIsInVzZVJlYWN0aW9uQWN0aW9ucyIsInVzZVJlc3RBY3Rpb25zIiwidXNlVGFnQWN0aW9ucyIsInVzZVRyYW5zbGF0aW9uQWN0aW9ucyIsInVzZVVzZXJBY3Rpb25zIiwidXNlV2Vic29ja2V0QWN0aW9ucyIsInVzZUNvbnZlcnNhdGlvblR5cGluZyIsImNyZWF0ZVZhbGlkYXRvckZhY3RvcnkiLCJjcmVhdGVWYWxpZGF0b3JNYW5hZ2VyIl0sIm1hcHBpbmdzIjoiO0FBQUE7OztDQUdDLEdBQ0QsU0FBUUEsT0FBTyxFQUFFQyxZQUFZLFFBQU8sOEJBQThCO0FBQ2xFLE9BQU9DLFVBQVUsVUFBVTtBQUMzQixTQUFRQyxRQUFRLFFBQU8sUUFBUTtBQUMvQixTQUFRQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFPLFFBQVE7QUFDakQsU0FBUUMsZUFBZSxRQUFPLGdCQUFnQjtBQUc5QyxTQUFRQyx3QkFBd0IsRUFBRUMsb0JBQW9CLFFBQU8sNkNBQTZDO0FBQzFHLFNBQVFDLHdCQUF3QixRQUFPLG9CQUFvQjtBQUMzRCxTQUNFQyxHQUFHLEVBQ0hDLE1BQU0sRUFDTkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLFFBQVEsRUFDUkMsYUFBYSxFQUNiQyxzQkFBc0IsRUFDdEJDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxLQUFLLEVBQ0xDLGFBQWEsRUFDYkMsYUFBYSxFQUNiQyxJQUFJLEVBQ0pDLGNBQWMsRUFDZEMsS0FBSyxFQUNMQyxLQUFLLEVBQ0xDLFNBQVMsUUFDSixvQkFBb0I7QUFDM0IsU0FBUUMsY0FBYyxRQUFPLGlCQUFpQjtBQUM5QyxTQUFRQyxpQkFBaUIsUUFBTyx5QkFBeUI7QUFDekQsU0FBUUMsUUFBUSxRQUFPLGtCQUFrQjtBQUN6QyxTQUFRQyxpQkFBaUIsUUFBTyxnQ0FBZ0M7QUFDaEUsU0FBUUMsdUJBQXVCLEVBQUVDLHlCQUF5QixFQUFFQyxnQkFBZ0IsUUFBTyxxQkFBcUI7QUFDeEcsU0FBUUMsWUFBWSxRQUFPLDJCQUEyQjtBQU10RCxTQUFRSixpQkFBaUIsRUFBRUssa0JBQWtCLFFBQU8sZ0NBQWdDO0FBS3BGLE9BQU8sTUFBTUMsU0FBUyxPQUFPQztJQUMzQixJQUFHLENBQUNBLEtBQUtDLFFBQVEsQ0FBQyw4QkFBOEI7UUFDOUNELEtBQUtFLFNBQVMsQ0FBQztZQUNiN0I7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUU7WUFDQUU7WUFDQUM7WUFDQUU7WUFDQUU7WUFDQUM7WUFDQUM7U0FDRDtRQUNEVyxLQUFLRyxFQUFFLENBQUNqQixlQUFla0IsZ0JBQWdCLEVBQUU7WUFDdkNKLEtBQUtLLFFBQVEsQ0FBQztnQkFBQ0MsTUFBTTNCLHVCQUF1QjRCLFdBQVc7WUFBQTtRQUN6RDtRQUNBUCxLQUFLRyxFQUFFLENBQUN0QixrQkFBa0IyQixnQkFBZ0IsRUFBRSxPQUFPLEVBQUNDLFVBQVUsQ0FBQyxDQUFDLEVBQXNDO1lBQ3BHdEMscUJBQXFCNkIsTUFBTVM7WUFFM0IsSUFBR0EsU0FBU0MsYUFBYSxDQUFDQyxNQUFNQyxPQUFPLENBQUNILFNBQVN4QixPQUFPO2dCQUN0RCxNQUFNZix5QkFBeUI4QixNQUFNYSxPQUFPSixRQUFRQyxTQUFTO1lBQy9EO1FBQ0Y7UUFFQVYsS0FBS0csRUFBRSxDQUFDdEIsa0JBQWtCaUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFDTCxVQUFVLENBQUMsQ0FBQyxFQUFzQztZQUN2R3RDLHFCQUFxQjZCLE1BQU1TO1lBRTNCLElBQUdBLFNBQVNDLGFBQWEsQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDSCxTQUFTeEIsT0FBTztnQkFDdEQsTUFBTWYseUJBQXlCOEIsTUFBTWEsT0FBT0osUUFBUUMsU0FBUztZQUMvRDtRQUNGO1FBRUFWLEtBQUtHLEVBQUUsQ0FBQ25CLGNBQWMrQixtQkFBbUIsRUFBRSxDQUFDLEVBQUNDLEdBQUcsRUFBMEM7WUFDeEYsTUFBTUMsaUJBQWtCakIsS0FBS0MsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUc5RCxNQUFNaUIsY0FBY1AsTUFBTUMsT0FBTyxDQUFDSyxlQUFlaEMsSUFBSSxJQUFJZ0MsZUFBZWhDLElBQUksR0FBRyxFQUFFO1lBQ2pGLE1BQU1rQyxZQUFZTixPQUFPRyxLQUFLSSxTQUFTLElBQUlDLElBQUk7WUFFL0MsSUFBRyxDQUFDRixXQUFXO2dCQUNiO1lBQ0Y7WUFFQSxNQUFNRyxhQUFhO21CQUFJSixZQUFZSyxNQUFNLENBQUMsQ0FBQ0MsT0FBU1gsT0FBT1csTUFBTUosU0FBUyxJQUFJQyxJQUFJLE9BQU9GO2dCQUFZSDthQUF1QyxDQUN6SVMsSUFBSSxDQUFDLENBQUNDLE1BQU1DLFFBQVVkLE9BQU9hLE1BQU1FLFFBQVEsSUFBSUMsYUFBYSxDQUFDaEIsT0FBT2MsT0FBT0MsUUFBUTtZQUN0RixNQUFNRSxjQUFjO2dCQUFDLEdBQUdiLGNBQWM7Z0JBQUVoQyxNQUFNcUM7WUFBVTtZQUV4RCxLQUFLdEIsS0FBSytCLFFBQVEsQ0FBQyxnQkFBZ0JEO1lBQ25DOUIsS0FBS0ssUUFBUSxDQUFDO2dCQUFDQyxNQUFNcEIsZUFBZThDLHNCQUFzQjtnQkFBRUMsTUFBTTtvQkFBQ2hELE1BQU1xQztnQkFBVTtZQUFDO1FBQ3RGO1FBRUF0QixLQUFLRyxFQUFFLENBQUNuQixjQUFja0Qsc0JBQXNCLEVBQUUsQ0FBQyxFQUFDbEIsR0FBRyxFQUEyQjtZQUM1RSxNQUFNQyxpQkFBa0JqQixLQUFLQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBRzlELE1BQU1pQixjQUFjUCxNQUFNQyxPQUFPLENBQUNLLGVBQWVoQyxJQUFJLElBQUlnQyxlQUFlaEMsSUFBSSxHQUFHLEVBQUU7WUFDakYsTUFBTWtDLFlBQVlOLE9BQU9HLEtBQUtJLFNBQVMsSUFBSUMsSUFBSTtZQUUvQyxJQUFHLENBQUNGLFdBQVc7Z0JBQ2I7WUFDRjtZQUVBLE1BQU1nQixXQUFXakIsWUFBWUssTUFBTSxDQUFDLENBQUNDLE9BQVNYLE9BQU9XLE1BQU1KLFNBQVMsSUFBSUMsSUFBSSxPQUFPRjtZQUNuRixNQUFNVyxjQUFjO2dCQUFDLEdBQUdiLGNBQWM7Z0JBQUVoQyxNQUFNa0Q7WUFBUTtZQUV0RCxLQUFLbkMsS0FBSytCLFFBQVEsQ0FBQyxnQkFBZ0JEO1lBQ25DOUIsS0FBS0ssUUFBUSxDQUFDO2dCQUFDQyxNQUFNcEIsZUFBZThDLHNCQUFzQjtnQkFBRUMsTUFBTTtvQkFBQ2hELE1BQU1rRDtnQkFBUTtZQUFDO1FBQ3BGO1FBQ0EsTUFBTUMsUUFBUUMsT0FBTyxDQUFDckMsS0FBSytCLFFBQVEsQ0FBQyw2QkFBNkI7SUFDbkU7SUFFQSxNQUFNTyxRQUFRekIsT0FBT2IsS0FBS0MsUUFBUSxDQUFDLHlCQUF5QjtJQUU1RCxJQUFHcUMsT0FBTztRQUNSLE1BQU1DLFVBQVd2QyxLQUFLQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1FBQ3ZELE1BQU11QyxTQUFTakQsa0JBQWtCUztRQUNqQyxNQUFNeUMsaUJBQWlCN0MsaUJBQWlCMEM7UUFDeEMsTUFBTUkseUJBQXlCQyxLQUFLQyxLQUFLLENBQUMsQUFBQ0MsQ0FBQUEsT0FBT04sUUFBUU8sT0FBTyxJQUFJLEtBQUtELE9BQU9OLFFBQVFRLE1BQU0sSUFBSSxFQUFDLElBQU0sQ0FBQSxPQUFPLEVBQUM7UUFDbEgsTUFBTUMsdUJBQXVCdEQsd0JBQzNCZ0QsMEJBQTBCLElBQzFCRixPQUFPbkUsR0FBRyxFQUFFa0UsV0FBVyxDQUFDO1FBRTFCLE1BQU1VLHdCQUF3Qk4sS0FBS08sR0FBRyxDQUFDLEdBQUdMLE9BQU9MLE9BQU9uRSxHQUFHLEVBQUVrRSxTQUFTWSxjQUFjVCwwQkFBMEI7UUFDOUcsTUFBTVUsWUFBWVAsT0FBT04sUUFBUU8sT0FBTyxJQUFJO1FBRTVDLElBQUdMLGlCQUFpQixLQUFLWSxLQUFLQyxHQUFHLE1BQU1iLGdCQUFnQjtZQUNyRCxNQUFNbkQsZUFBZVUsTUFBTXNDLE9BQU9XO1FBQ3BDLE9BQU8sSUFBRyxDQUFDRyxXQUFXO1lBQ3BCLE1BQU05RCxlQUFlVSxNQUFNc0MsT0FBT1c7UUFDcEMsT0FBTztZQUNMLE1BQU1NLHFCQUFxQlosS0FBS0MsS0FBSyxDQUFDL0UsU0FBUzJGLFVBQVUsQ0FBQ0osV0FBV0ssSUFBSSxDQUFDNUYsU0FBUzZGLEtBQUssSUFBSSxXQUFXQyxRQUFRLEdBQUdDLE9BQU8sSUFBSTtZQUU3SCxJQUFHTCxzQkFBc0IsS0FBS0Esc0JBQXNCUCxzQkFBc0I7Z0JBQ3hFLE1BQU0xRCxlQUFlVSxNQUFNc0MsT0FBaUJXO1lBQzlDO1FBQ0Y7SUFDRjtBQUNGLEVBQUU7QUFFRixjQUFjLG9CQUFvQjtBQUVsQyxTQUNFWSxXQUFXLEVBQ1hDLFFBQVEsRUFDUkMsY0FBYyxFQUNkQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWDNFLGNBQWMsRUFDZDRFLG1CQUFtQixFQUNuQkMsV0FBVyxFQUNYQyxXQUFXLFFBS04saUJBQWlCO0FBRXhCLFNBQVFoRyx3QkFBd0IsUUFBTyxvQkFBb0I7QUFDM0QsU0FBUW1CLGlCQUFpQixRQUFPLHlCQUF5QjtBQW1CekQsT0FBTyxNQUFNOEUsYUFBYSxDQUFDLEVBQUNDLFFBQVEsRUFBRUMsUUFBUSxFQUFFL0IsU0FBUyxDQUFDLENBQUMsRUFBRWdDLGVBQWUsQ0FBQyxDQUFDLEVBQWtCO0lBQzlGLE1BQU14RSxPQUFPdEM7SUFDYixNQUFNK0csaUJBQWlCMUcsUUFBNEMsSUFBTUsseUJBQXlCb0UsU0FBUztRQUFDQTtLQUFPO0lBQ25ILE1BQU1rQyxpQkFBaUIzRyxRQUFRLElBQU8sQ0FBQTtZQUFDLEdBQUcwRyxlQUFlSCxRQUFRO1lBQUUsR0FBR0EsUUFBUTtRQUFBLENBQUEsR0FBSTtRQUFDRyxlQUFlSCxRQUFRO1FBQUVBO0tBQVM7SUFDckgsTUFBTUssbUJBQW1COUQsT0FBT2xELGFBQWEsMEJBQTBCLE9BQU87SUFDOUUsTUFBTWlILGVBQWUvRCxPQUFPbEQsYUFBYSxzQkFBc0IsT0FBTztJQUN0RSxNQUFNa0gsa0JBQWtCQyxRQUFRbkgsYUFBYSx1QkFBdUI7SUFDcEUsTUFBTTRFLFVBQVU1RSxhQUFhLGdCQUFnQixDQUFDO0lBQzlDLE1BQU1vSCxtQkFBbUJwSCxhQUFhLHFCQUFxQixFQUFFO0lBQzdELE1BQU1xSCxrQkFBa0JySCxhQUFhLHlCQUF5QixDQUFDO0lBQy9ELE1BQU1jLFdBQVdWLFFBQVEsSUFBTWtILE9BQU9DLE1BQU0sQ0FBQ0YsaUJBQWlCRyxJQUFJLElBQUk7UUFBQ0g7S0FBZ0I7SUFFdkYsTUFBTUksZ0JBQWdCcEgsT0FBeUQ7SUFDL0UsSUFBRyxDQUFDb0gsY0FBY0MsT0FBTyxFQUFFO1FBQ3pCRCxjQUFjQyxPQUFPLEdBQUd4RixhQUFhLGFBQWFHO0lBQ3BEO0lBQ0EsTUFBTXNGLGFBQWFGLGNBQWNDLE9BQU87SUFFeEN2SCxVQUFVO1FBQ1IwQixTQUFTZ0Y7SUFDWCxHQUFHO1FBQUNBO0tBQWE7SUFFakIxRyxVQUFVO1FBQ1IsSUFBSXlILFdBQVc7UUFFZixLQUFLLEFBQUMsQ0FBQTtZQUNKLE1BQU1uRCxRQUFRQyxPQUFPLENBQUNyQyxLQUFLK0IsUUFBUSxDQUFDLGNBQWMwQztZQUNsRCxNQUFNckMsUUFBUUMsT0FBTyxDQUFDckMsS0FBSytCLFFBQVEsQ0FBQyx1QkFBdUI7WUFDM0QsTUFBTXBDLDBCQUEwQks7WUFFaEMsSUFBRyxDQUFDdUYsVUFBVTtnQkFDWjtZQUNGO1lBRUEsTUFBTXhGLE9BQU9DO1lBRWIsSUFBRyxDQUFDdUYsVUFBVTtnQkFDWjtZQUNGO1lBRUEsTUFBTW5ELFFBQVFDLE9BQU8sQ0FBQ3JDLEtBQUsrQixRQUFRLENBQUMsdUJBQXVCO1FBQzdELENBQUE7UUFFQSxPQUFPO1lBQ0x3RCxXQUFXO1FBQ2I7SUFDRixHQUFHO1FBQUN2RjtRQUFNeUU7S0FBZTtJQUV6QjNHLFVBQVU7UUFDUixJQUFHLENBQUMrRyxpQkFBaUI7WUFDbkJTLFdBQVdFLE9BQU87WUFDbEI7UUFDRjtRQUVBLElBQUdaLGNBQWM7WUFDZlUsV0FBV0csTUFBTSxDQUFDYixjQUFjRDtRQUNsQyxPQUFPO1lBQ0xXLFdBQVdFLE9BQU87UUFDcEI7SUFDRixHQUFHO1FBQUNYO1FBQWlCRjtRQUFrQkM7UUFBY1U7S0FBVztJQUVoRXhILFVBQVU7UUFDUixPQUFPO1lBQ0x3SCxXQUFXRSxPQUFPO1FBQ3BCO0lBQ0YsR0FBRztRQUFDRjtLQUFXO0lBRWYsTUFBTUksU0FBUzNILFFBQVEsSUFBTTBHLGVBQWVpQixNQUFNLElBQUssQ0FBQTtZQUNyRCxNQUFNQyxlQUFlM0YsS0FBS0MsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1lBQ3BELE9BQU8sQ0FBQyxDQUFDMEYsYUFBYUMsVUFBVTtRQUNsQyxDQUFBLEdBQUk7UUFBQ25CLGVBQWVpQixNQUFNO1FBQUUxRjtLQUFLO0lBRWpDLHFCQUNFLEtBQUNQLGtCQUFrQm9HLFFBQVE7UUFDekJDLE9BQU87WUFDTHhCLFVBQVVJO1lBQ1ZsQyxRQUFRaUM7WUFDUnpFO1lBQ0EwRjtZQUNBakg7WUFDQUMsZUFBZXFHO1lBQ2Z4QztZQUNBd0QsZUFBZSxLQUFRO1lBQ3ZCQyxvQkFBb0JWLFdBQVdXLGdCQUFnQjtRQUNqRDtrQkFDQSxjQUFBLEtBQUNoSTtZQUFnQkwsTUFBTUE7c0JBQ3BCMkc7OztBQUlULEVBQUU7QUFFRixlQUFlRixXQUFXO0FBRTFCLFNBQVE2QixjQUFjLFFBQU8sZ0JBQWdCO0FBQzdDLGNBQWMsc0JBQXNCO0FBQ3BDLGNBQWMscUNBQXFDO0FBQ25ELGNBQWMsdUJBQXVCO0FBQ3JDLGNBQWMsNEJBQTRCO0FBQzFDLGNBQWMsb0JBQW9CO0FBQ2xDLFNBQ0VyRyxZQUFZLEVBQ1pzRyxhQUFhLEVBQ2JDLGdCQUFnQixRQUNYLDJCQUEyQjtBQUNsQyxjQUFjLGlCQUFpQjtBQUMvQixTQUFRQyxpQkFBaUIsUUFBTywrQkFBK0I7QUFDL0QsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyxrQkFBa0I7QUFDaEMsY0FBYyxzQkFBc0I7QUFDcEMsU0FDRUMsaUJBQWlCLEVBQ2pCQyxTQUFTLEVBQ1RDLGFBQWEsRUFDYkMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsa0JBQWtCLEVBQ2xCQyxpQkFBaUIsRUFBRUMsYUFBYSxFQUNoQ0MsbUJBQW1CLEVBQ25CQyxpQkFBaUIsRUFBRUMsY0FBYyxFQUNqQ0MsaUJBQWlCLEVBQ2pCQyxrQkFBa0IsRUFDbEJDLGNBQWMsRUFDZEMsYUFBYSxFQUNiQyxxQkFBcUIsRUFDckJDLGNBQWMsRUFDZEMsbUJBQW1CLFFBQ2QsMkJBQTJCO0FBQ2xDLFNBQVFDLHFCQUFxQixRQUFPLG1DQUFtQztBQUt2RSxTQUNFQyxzQkFBc0IsRUFDdEJDLHNCQUFzQixRQUNqQiw4QkFBOEI7QUFXckMsY0FBYyxxQ0FBcUM7QUFDbkQsY0FBYywyQ0FBMkM7QUFDekQsY0FBYyxtREFBbUQ7QUFDakUsY0FBYyx1REFBdUQ7QUFDckUsY0FBYyxxQ0FBcUM7QUFDbkQsY0FBYyx1Q0FBdUM7QUFDckQsY0FBYyx5Q0FBeUM7QUFDdkQsY0FBYyw2QkFBNkI7QUFDM0MsY0FBYyxtQkFBbUIifQ==
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3VzZUZsdXgsIHVzZUZsdXhTdGF0ZX0gZnJvbSAnQG5sYWJzL2Fya2hhbWpzLXV0aWxzLXJlYWN0JztcbmltcG9ydCBpMThuIGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHtEYXRlVGltZX0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtJMThuZXh0UHJvdmlkZXJ9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQge2NyZWF0ZVdlYnNvY2tldEFjdGlvbnN9IGZyb20gJy4vYWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zL3dlYnNvY2tldEFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge0F3c1J1bUFjdGlvbnMsIEF3c1J1bVRyYWNrSW5wdXR9IGZyb20gJy4vYWN0aW9ucy9hd3NSdW1BY3Rpb25zL2F3c1J1bUFjdGlvbnMuanMnO1xuaW1wb3J0IHtzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24sIHN5bmNQZXJzb25hVG9TZXNzaW9ufSBmcm9tICcuL2FjdGlvbnMvcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuaW1wb3J0IHtyZXNvbHZlRW52aXJvbm1lbnRDb25maWd9IGZyb20gJy4vY29uZmlnL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIGFwcCxcbiAgZXZlbnRzLFxuICBpbWFnZXMsXG4gIGxvY2F0aW9ucyxcbiAgbWVzc2FnZXMsXG4gIG5vdGlmaWNhdGlvbnMsXG4gIE5PVElGSUNBVElPTl9DT05TVEFOVFMsXG4gIHBlcm1pc3Npb25zLFxuICBQRVJTT05BX0NPTlNUQU5UUyxcbiAgcG9zdHMsXG4gIHN1YnNjcmlwdGlvbnMsXG4gIFRBR19DT05TVEFOVFMsXG4gIHRhZ3MsXG4gIFVTRVJfQ09OU1RBTlRTLFxuICB1c2VycyxcbiAgdmlkZW8sXG4gIHdlYnNvY2tldFxufSBmcm9tICcuL3N0b3Jlcy9pbmRleC5qcyc7XG5pbXBvcnQge3JlZnJlc2hTZXNzaW9ufSBmcm9tICcuL3V0aWxzL2FwaS5qcyc7XG5pbXBvcnQge2dldENvbmZpZ0Zyb21GbHV4fSBmcm9tICcuL3V0aWxzL2NvbmZpZ1V0aWxzLmpzJztcbmltcG9ydCB7aW5pdEkxOG59IGZyb20gJy4vdXRpbHMvaTE4bi5qcyc7XG5pbXBvcnQge01ldHJvcG9saXNDb250ZXh0fSBmcm9tICcuL3V0aWxzL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5pbXBvcnQge2dldFJlZnJlc2hXaW5kb3dNaW51dGVzLCBoeWRyYXRlU2Vzc2lvbkZyb21TdG9yYWdlLCBwYXJzZUp3dEV4cGlyeU1zfSBmcm9tICcuL3V0aWxzL3Nlc3Npb24uanMnO1xuaW1wb3J0IHtjcmVhdGVBY3Rpb259IGZyb20gJy4vdXRpbHMvYWN0aW9uRmFjdG9yeS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge01ldHJvcG9saXNDb25maWd1cmF0aW9uLCBNZXRyb3BvbGlzRW52aXJvbm1lbnRDb25maWd1cmF0aW9ufSBmcm9tICcuL2NvbmZpZy9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7TWV0cm9wb2xpc0FkYXB0ZXJzfSBmcm9tICcuL3V0aWxzL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5cbmV4cG9ydCB7TWV0cm9wb2xpc0NvbnRleHQsIE1ldHJvcG9saXNQcm92aWRlcn0gZnJvbSAnLi91dGlscy9NZXRyb3BvbGlzUHJvdmlkZXIuanMnO1xuXG5leHBvcnQgdHlwZSB7TWV0cm9wb2xpc0NvbmZpZ3VyYXRpb259IGZyb20gJy4vY29uZmlnL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHtNZXRyb3BvbGlzQWRhcHRlcnN9IGZyb20gJy4vdXRpbHMvTWV0cm9wb2xpc1Byb3ZpZGVyLmpzJztcblxuZXhwb3J0IGNvbnN0IEdPVEhBTV9BTkFMWVRJQ1NfRVZFTlQgPSAnbmxhYnM6Z290aGFtOmFuYWx5dGljcyc7XG5cbmV4cG9ydCBjb25zdCBvbkluaXQgPSBhc3luYyAoZmx1eDogRmx1eEZyYW1ld29yaykgPT4ge1xuICBpZighZmx1eC5nZXRTdGF0ZSgnYXBwLm1ldHJvcG9saXNJbml0aWFsaXplZCcpKSB7XG4gICAgZmx1eC5hZGRTdG9yZXMoW1xuICAgICAgYXBwLFxuICAgICAgZXZlbnRzLFxuICAgICAgaW1hZ2VzLFxuICAgICAgbG9jYXRpb25zLFxuICAgICAgbWVzc2FnZXMsXG4gICAgICBub3RpZmljYXRpb25zLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBwb3N0cyxcbiAgICAgIHN1YnNjcmlwdGlvbnMsXG4gICAgICB0YWdzLFxuICAgICAgdXNlcnMsXG4gICAgICB2aWRlbyxcbiAgICAgIHdlYnNvY2tldFxuICAgIF0pO1xuICAgIGZsdXgub24oVVNFUl9DT05TVEFOVFMuU0lHTl9PVVRfU1VDQ0VTUywgKCkgPT4ge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7dHlwZTogTk9USUZJQ0FUSU9OX0NPTlNUQU5UUy5DTEVBUl9JVEVNU30pO1xuICAgIH0pO1xuICAgIGZsdXgub24oUEVSU09OQV9DT05TVEFOVFMuQUREX0lURU1fU1VDQ0VTUywgYXN5bmMgKHtwZXJzb25hID0ge319OiB7cGVyc29uYT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+fSkgPT4ge1xuICAgICAgc3luY1BlcnNvbmFUb1Nlc3Npb24oZmx1eCwgcGVyc29uYSk7XG5cbiAgICAgIGlmKHBlcnNvbmE/LnBlcnNvbmFJZCAmJiAhQXJyYXkuaXNBcnJheShwZXJzb25hPy50YWdzKSkge1xuICAgICAgICBhd2FpdCBzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24oZmx1eCwgU3RyaW5nKHBlcnNvbmEucGVyc29uYUlkKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBmbHV4Lm9uKFBFUlNPTkFfQ09OU1RBTlRTLlVQREFURV9JVEVNX1NVQ0NFU1MsIGFzeW5jICh7cGVyc29uYSA9IHt9fToge3BlcnNvbmE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0pID0+IHtcbiAgICAgIHN5bmNQZXJzb25hVG9TZXNzaW9uKGZsdXgsIHBlcnNvbmEpO1xuXG4gICAgICBpZihwZXJzb25hPy5wZXJzb25hSWQgJiYgIUFycmF5LmlzQXJyYXkocGVyc29uYT8udGFncykpIHtcbiAgICAgICAgYXdhaXQgc3luY1BlcnNvbmFUYWdzVG9TZXNzaW9uKGZsdXgsIFN0cmluZyhwZXJzb25hLnBlcnNvbmFJZCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZmx1eC5vbihUQUdfQ09OU1RBTlRTLkFERF9QRVJTT05BX1NVQ0NFU1MsICh7dGFnfToge3RhZz86IHtuYW1lPzogc3RyaW5nOyB0YWdJZD86IHN0cmluZ319KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50U2Vzc2lvbiA9IChmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSkgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYge1xuICAgICAgICB0YWdzPzogQXJyYXk8e25hbWU/OiBzdHJpbmc7IHRhZ0lkPzogc3RyaW5nfT47XG4gICAgICB9O1xuICAgICAgY29uc3QgY3VycmVudFRhZ3MgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRTZXNzaW9uLnRhZ3MpID8gY3VycmVudFNlc3Npb24udGFncyA6IFtdO1xuICAgICAgY29uc3QgbmV4dFRhZ0lkID0gU3RyaW5nKHRhZz8udGFnSWQgfHwgJycpLnRyaW0oKTtcblxuICAgICAgaWYoIW5leHRUYWdJZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1lcmdlZFRhZ3MgPSBbLi4uY3VycmVudFRhZ3MuZmlsdGVyKChpdGVtKSA9PiBTdHJpbmcoaXRlbT8udGFnSWQgfHwgJycpLnRyaW0oKSAhPT0gbmV4dFRhZ0lkKSwgdGFnIGFzIHtuYW1lPzogc3RyaW5nOyB0YWdJZD86IHN0cmluZ31dXG4gICAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gU3RyaW5nKGxlZnQ/Lm5hbWUgfHwgJycpLmxvY2FsZUNvbXBhcmUoU3RyaW5nKHJpZ2h0Py5uYW1lIHx8ICcnKSkpO1xuICAgICAgY29uc3QgbmV4dFNlc3Npb24gPSB7Li4uY3VycmVudFNlc3Npb24sIHRhZ3M6IG1lcmdlZFRhZ3N9O1xuXG4gICAgICB2b2lkIGZsdXguc2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIG5leHRTZXNzaW9uKTtcbiAgICAgIGZsdXguZGlzcGF0Y2goe3R5cGU6IFVTRVJfQ09OU1RBTlRTLlVQREFURV9TRVNTSU9OX1NVQ0NFU1MsIHVzZXI6IHt0YWdzOiBtZXJnZWRUYWdzfX0pO1xuICAgIH0pO1xuXG4gICAgZmx1eC5vbihUQUdfQ09OU1RBTlRTLlJFTU9WRV9QRVJTT05BX1NVQ0NFU1MsICh7dGFnfToge3RhZz86IHt0YWdJZD86IHN0cmluZ319KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50U2Vzc2lvbiA9IChmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSkgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYge1xuICAgICAgICB0YWdzPzogQXJyYXk8e25hbWU/OiBzdHJpbmc7IHRhZ0lkPzogc3RyaW5nfT47XG4gICAgICB9O1xuICAgICAgY29uc3QgY3VycmVudFRhZ3MgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRTZXNzaW9uLnRhZ3MpID8gY3VycmVudFNlc3Npb24udGFncyA6IFtdO1xuICAgICAgY29uc3QgbmV4dFRhZ0lkID0gU3RyaW5nKHRhZz8udGFnSWQgfHwgJycpLnRyaW0oKTtcblxuICAgICAgaWYoIW5leHRUYWdJZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5leHRUYWdzID0gY3VycmVudFRhZ3MuZmlsdGVyKChpdGVtKSA9PiBTdHJpbmcoaXRlbT8udGFnSWQgfHwgJycpLnRyaW0oKSAhPT0gbmV4dFRhZ0lkKTtcbiAgICAgIGNvbnN0IG5leHRTZXNzaW9uID0gey4uLmN1cnJlbnRTZXNzaW9uLCB0YWdzOiBuZXh0VGFnc307XG5cbiAgICAgIHZvaWQgZmx1eC5zZXRTdGF0ZSgndXNlci5zZXNzaW9uJywgbmV4dFNlc3Npb24pO1xuICAgICAgZmx1eC5kaXNwYXRjaCh7dHlwZTogVVNFUl9DT05TVEFOVFMuVVBEQVRFX1NFU1NJT05fU1VDQ0VTUywgdXNlcjoge3RhZ3M6IG5leHRUYWdzfX0pO1xuICAgIH0pO1xuICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShmbHV4LnNldFN0YXRlKCdhcHAubWV0cm9wb2xpc0luaXRpYWxpemVkJywgdHJ1ZSkpO1xuICB9XG5cbiAgY29uc3QgdG9rZW4gPSBTdHJpbmcoZmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uLnRva2VuJykgfHwgJycpO1xuXG4gIGlmKHRva2VuKSB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IChmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSkgfHwge30pIGFzIHtleHBpcmVzPzogbnVtYmVyOyBpc3N1ZWQ/OiBudW1iZXI7IHRva2VuPzogc3RyaW5nfTtcbiAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgICBjb25zdCB0b2tlbkV4cGlyZXNBdCA9IHBhcnNlSnd0RXhwaXJ5TXModG9rZW4pO1xuICAgIGNvbnN0IHNlc3Npb25MaWZldGltZU1pbnV0ZXMgPSBNYXRoLnJvdW5kKChOdW1iZXIoc2Vzc2lvbi5leHBpcmVzIHx8IDApIC0gTnVtYmVyKHNlc3Npb24uaXNzdWVkIHx8IDApKSAvICgxMDAwICogNjApKTtcbiAgICBjb25zdCByZWZyZXNoV2luZG93TWludXRlcyA9IGdldFJlZnJlc2hXaW5kb3dNaW51dGVzKFxuICAgICAgc2Vzc2lvbkxpZmV0aW1lTWludXRlcyB8fCAxNSxcbiAgICAgIGNvbmZpZy5hcHA/LnNlc3Npb24gfHwge31cbiAgICApO1xuICAgIGNvbnN0IHJlZnJlc2hFeHBpcmVzTWludXRlcyA9IE1hdGgubWF4KDEsIE51bWJlcihjb25maWcuYXBwPy5zZXNzaW9uPy5tYXhNaW51dGVzIHx8IHNlc3Npb25MaWZldGltZU1pbnV0ZXMgfHwgMTUpKTtcbiAgICBjb25zdCBleHBpcmVzQXQgPSBOdW1iZXIoc2Vzc2lvbi5leHBpcmVzIHx8IDApO1xuXG4gICAgaWYodG9rZW5FeHBpcmVzQXQgPiAwICYmIERhdGUubm93KCkgPj0gdG9rZW5FeHBpcmVzQXQpIHtcbiAgICAgIGF3YWl0IHJlZnJlc2hTZXNzaW9uKGZsdXgsIHRva2VuLCByZWZyZXNoRXhwaXJlc01pbnV0ZXMpO1xuICAgIH0gZWxzZSBpZighZXhwaXJlc0F0KSB7XG4gICAgICBhd2FpdCByZWZyZXNoU2Vzc2lvbihmbHV4LCB0b2tlbiwgcmVmcmVzaEV4cGlyZXNNaW51dGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWludXRlc1VudGlsRXhwaXJ5ID0gTWF0aC5yb3VuZChEYXRlVGltZS5mcm9tTWlsbGlzKGV4cGlyZXNBdCkuZGlmZihEYXRlVGltZS5sb2NhbCgpLCAnbWludXRlcycpLnRvT2JqZWN0KCkubWludXRlcyB8fCAwKTtcblxuICAgICAgaWYobWludXRlc1VudGlsRXhwaXJ5IDw9IDAgfHwgbWludXRlc1VudGlsRXhwaXJ5IDw9IHJlZnJlc2hXaW5kb3dNaW51dGVzKSB7XG4gICAgICAgIGF3YWl0IHJlZnJlc2hTZXNzaW9uKGZsdXgsIHRva2VuIGFzIHN0cmluZywgcmVmcmVzaEV4cGlyZXNNaW51dGVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCAqIGZyb20gJy4vc3RvcmVzL2luZGV4LmpzJztcblxuZXhwb3J0IHtcbiAgYXBwTXV0YXRpb24sXG4gIGFwcFF1ZXJ5LFxuICBwdWJsaWNNdXRhdGlvbixcbiAgcHVibGljUXVlcnksXG4gIHJ1bU11dGF0aW9uLFxuICByZWZyZXNoU2Vzc2lvbixcbiAgcmVzb2x2ZVJlc3RFbmRwb2ludCxcbiAgcmVzdFJlcXVlc3QsXG4gIHVwbG9hZEltYWdlLFxuICB0eXBlIEFwaVJlc3VsdHNUeXBlLFxuICB0eXBlIFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHR5cGUgUmVzdEFwaU9wdGlvbnMsXG4gIHR5cGUgUmVzdE1ldGhvZFxufSBmcm9tICcuL3V0aWxzL2FwaS5qcyc7XG5cbmV4cG9ydCB7cmVzb2x2ZUVudmlyb25tZW50Q29uZmlnfSBmcm9tICcuL2NvbmZpZy9pbmRleC5qcyc7XG5leHBvcnQge2dldENvbmZpZ0Zyb21GbHV4fSBmcm9tICcuL3V0aWxzL2NvbmZpZ1V0aWxzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZXRyb3BvbGlzUHJvcHMge1xuICByZWFkb25seSBhZGFwdGVycz86IE1ldHJvcG9saXNBZGFwdGVycztcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBSZWFjdC5SZWFjdEVsZW1lbnRbXTtcbiAgcmVhZG9ubHkgY29uZmlnPzogTWV0cm9wb2xpc0NvbmZpZ3VyYXRpb247XG4gIHJlYWRvbmx5IHRyYW5zbGF0aW9ucz86IFNpbXBsZVRyYW5zbGF0aW9ucyB8IENvbXBsZXhUcmFuc2xhdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIFNpbXBsZVRyYW5zbGF0aW9ucyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxleFRyYW5zbGF0aW9uIHtcbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYWxlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ29tcGxleFRyYW5zbGF0aW9ucyA9IFJlY29yZDxzdHJpbmcsIENvbXBsZXhUcmFuc2xhdGlvbj47XG5cbmV4cG9ydCBjb25zdCBNZXRyb3BvbGlzID0gKHthZGFwdGVycywgY2hpbGRyZW4sIGNvbmZpZyA9IHt9LCB0cmFuc2xhdGlvbnMgPSB7fX06IE1ldHJvcG9saXNQcm9wcykgPT4ge1xuICBjb25zdCBmbHV4ID0gdXNlRmx1eCgpO1xuICBjb25zdCByZXNvbHZlZENvbmZpZyA9IHVzZU1lbW88TWV0cm9wb2xpc0Vudmlyb25tZW50Q29uZmlndXJhdGlvbj4oKCkgPT4gcmVzb2x2ZUVudmlyb25tZW50Q29uZmlnKGNvbmZpZyksIFtjb25maWddKTtcbiAgY29uc3QgbWVyZ2VkQWRhcHRlcnMgPSB1c2VNZW1vKCgpID0+ICh7Li4ucmVzb2x2ZWRDb25maWcuYWRhcHRlcnMsIC4uLmFkYXB0ZXJzfSksIFtyZXNvbHZlZENvbmZpZy5hZGFwdGVycywgYWRhcHRlcnNdKTtcbiAgY29uc3QgcnVtT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICAuLi5yZXNvbHZlZENvbmZpZy5hcHA/LnJ1bSxcbiAgICBhcHBJZDogcmVzb2x2ZWRDb25maWcuYXBwPy5ydW0/LmFwcElkIHx8IHJlc29sdmVkQ29uZmlnLmFwcD8ubmFtZVxuICB9KSwgW3Jlc29sdmVkQ29uZmlnLmFwcD8ubmFtZSwgcmVzb2x2ZWRDb25maWcuYXBwPy5ydW1dKTtcbiAgY29uc3Qgc2Vzc2lvblBlcnNvbmFJZCA9IFN0cmluZyh1c2VGbHV4U3RhdGUoJ3VzZXIuc2Vzc2lvbi5wZXJzb25hSWQnLCAnJykgfHwgJycpO1xuICBjb25zdCBzZXNzaW9uVG9rZW4gPSBTdHJpbmcodXNlRmx1eFN0YXRlKCd1c2VyLnNlc3Npb24udG9rZW4nLCAnJykgfHwgJycpO1xuICBjb25zdCBzZXNzaW9uSHlkcmF0ZWQgPSBCb29sZWFuKHVzZUZsdXhTdGF0ZSgnYXBwLnNlc3Npb25IeWRyYXRlZCcsIGZhbHNlKSk7XG4gIGNvbnN0IHNlc3Npb24gPSB1c2VGbHV4U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY29uc3Qgbm90aWZpY2F0aW9uTGlzdCA9IHVzZUZsdXhTdGF0ZSgnbm90aWZpY2F0aW9uLmxpc3QnLCBbXSkgYXMgQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuICBjb25zdCBjb252ZXJzYXRpb25NYXAgPSB1c2VGbHV4U3RhdGUoJ21lc3NhZ2UuY29udmVyc2F0aW9ucycsIHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCBBcnJheTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+O1xuICBjb25zdCBtZXNzYWdlcyA9IHVzZU1lbW8oKCkgPT4gT2JqZWN0LnZhbHVlcyhjb252ZXJzYXRpb25NYXApLmZsYXQoKSwgW2NvbnZlcnNhdGlvbk1hcF0pO1xuXG4gIGNvbnN0IHdlYnNvY2tldHNSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlV2Vic29ja2V0QWN0aW9ucz4gfCBudWxsPihudWxsKTtcbiAgaWYoIXdlYnNvY2tldHNSZWYuY3VycmVudCkge1xuICAgIHdlYnNvY2tldHNSZWYuY3VycmVudCA9IGNyZWF0ZUFjdGlvbignd2Vic29ja2V0JywgZmx1eCkgYXMgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlV2Vic29ja2V0QWN0aW9ucz47XG4gIH1cbiAgY29uc3Qgd2Vic29ja2V0cyA9IHdlYnNvY2tldHNSZWYuY3VycmVudDtcbiAgY29uc3QgYXdzUnVtID0gdXNlTWVtbyhcbiAgICAoKSA9PiBjcmVhdGVBY3Rpb24oJ2F3c1J1bScsIGZsdXgsIHJ1bU9wdGlvbnMpIGFzIEF3c1J1bUFjdGlvbnMsXG4gICAgW2ZsdXgsIHJ1bU9wdGlvbnNdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZih0eXBlb2YgZ2xvYmFsVGhpcy53aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb25Hb3RoYW1BbmFseXRpY3MgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBkZXRhaWwgPSAoZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8QXdzUnVtVHJhY2tJbnB1dD4pLmRldGFpbDtcblxuICAgICAgaWYoZGV0YWlsICYmIHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGF3c1J1bS50cmFjayhkZXRhaWwpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBnbG9iYWxUaGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKEdPVEhBTV9BTkFMWVRJQ1NfRVZFTlQsIG9uR290aGFtQW5hbHl0aWNzKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBnbG9iYWxUaGlzLndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEdPVEhBTV9BTkFMWVRJQ1NfRVZFTlQsIG9uR290aGFtQW5hbHl0aWNzKTtcbiAgICAgIHZvaWQgYXdzUnVtLmRlc3Ryb3koKTtcbiAgICB9O1xuICB9LCBbYXdzUnVtXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbml0STE4bih0cmFuc2xhdGlvbnMpO1xuICB9LCBbdHJhbnNsYXRpb25zXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZsdXguc2V0U3RhdGUoJ2FwcC5jb25maWcnLCByZXNvbHZlZENvbmZpZykpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZsdXguc2V0U3RhdGUoJ2FwcC5zZXNzaW9uSHlkcmF0ZWQnLCBmYWxzZSkpO1xuICAgICAgYXdhaXQgaHlkcmF0ZVNlc3Npb25Gcm9tU3RvcmFnZShmbHV4KTtcblxuICAgICAgaWYoIWlzQWN0aXZlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgb25Jbml0KGZsdXgpO1xuXG4gICAgICBpZighaXNBY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoZmx1eC5zZXRTdGF0ZSgnYXBwLnNlc3Npb25IeWRyYXRlZCcsIHRydWUpKTtcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgfTtcbiAgfSwgW2ZsdXgsIHJlc29sdmVkQ29uZmlnXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZighc2Vzc2lvbkh5ZHJhdGVkKSB7XG4gICAgICB3ZWJzb2NrZXRzLndzQ2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZihzZXNzaW9uVG9rZW4pIHtcbiAgICAgIHdlYnNvY2tldHMud3NJbml0KHNlc3Npb25Ub2tlbiwgc2Vzc2lvblBlcnNvbmFJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdlYnNvY2tldHMud3NDbG9zZSgpO1xuICAgIH1cbiAgfSwgW3Nlc3Npb25IeWRyYXRlZCwgc2Vzc2lvblBlcnNvbmFJZCwgc2Vzc2lvblRva2VuLCB3ZWJzb2NrZXRzXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2Vic29ja2V0cy53c0Nsb3NlKCk7XG4gICAgfTtcbiAgfSwgW3dlYnNvY2tldHNdKTtcblxuICBjb25zdCBpc0F1dGggPSB1c2VNZW1vKCgpID0+IHJlc29sdmVkQ29uZmlnLmlzQXV0aCB8fCAoKCkgPT4ge1xuICAgIGNvbnN0IHNlc3Npb25TdGF0ZSA9IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KTtcbiAgICByZXR1cm4gISFzZXNzaW9uU3RhdGUudXNlckFjdGl2ZTtcbiAgfSksIFtyZXNvbHZlZENvbmZpZy5pc0F1dGgsIGZsdXhdKTtcblxuICByZXR1cm4gKFxuICAgIDxNZXRyb3BvbGlzQ29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgYWRhcHRlcnM6IG1lcmdlZEFkYXB0ZXJzLFxuICAgICAgICBjb25maWc6IHJlc29sdmVkQ29uZmlnLFxuICAgICAgICBmbHV4LFxuICAgICAgICBpc0F1dGgsXG4gICAgICAgIG1lc3NhZ2VzLFxuICAgICAgICBub3RpZmljYXRpb25zOiBub3RpZmljYXRpb25MaXN0LFxuICAgICAgICBzZXNzaW9uLFxuICAgICAgICB1cGRhdGVNZXNzYWdlOiAoKSA9PiB7IH0sXG4gICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogd2Vic29ja2V0cy5zZW5kTm90aWZpY2F0aW9uXG4gICAgICB9fT5cbiAgICAgIDxJMThuZXh0UHJvdmlkZXIgaTE4bj17aTE4bn0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvSTE4bmV4dFByb3ZpZGVyPlxuICAgIDwvTWV0cm9wb2xpc0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZXRyb3BvbGlzO1xuXG5leHBvcnQge3VzZVRyYW5zbGF0aW9ufSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vYWRhcHRlcnMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvTWV0cm9wb2xpc0NvbnN0YW50cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2dyYXBocWwvbWVzc2FnZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2dyYXBocWwvbm90aWZpY2F0aW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmVzL2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZUFjdGlvbixcbiAgY3JlYXRlQWN0aW9ucyxcbiAgY3JlYXRlQWxsQWN0aW9uc1xufSBmcm9tICcuL3V0aWxzL2FjdGlvbkZhY3RvcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9hcHAuanMnO1xuZXhwb3J0IHtjcmVhdGVCYXNlQWN0aW9uc30gZnJvbSAnLi91dGlscy9iYXNlQWN0aW9uRmFjdG9yeS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2RhdGVVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2ZpbGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9sb2NhdGlvbi5qcyc7XG5leHBvcnQge1xuICB1c2VDb250ZW50QWN0aW9ucyxcbiAgdXNlQXdzUnVtLFxuICB1c2VDcm1BY3Rpb25zLFxuICB1c2VFdmVudEFjdGlvbnMsXG4gIHVzZUdyb3VwQWN0aW9ucyxcbiAgdXNlSW1hZ2VBY3Rpb25zLFxuICB1c2VMb2NhdGlvbkFjdGlvbnMsXG4gIHVzZU1lc3NhZ2VBY3Rpb25zLCB1c2VNZXRyb3BvbGlzLFxuICB1c2VNZXRyb3BvbGlzQ29uZmlnLFxuICB1c2VNZXRyb3BvbGlzRmx1eCwgdXNlUG9zdEFjdGlvbnMsXG4gIHVzZVBlcnNvbmFBY3Rpb25zLFxuICB1c2VSZWFjdGlvbkFjdGlvbnMsXG4gIHVzZVJlc3RBY3Rpb25zLFxuICB1c2VUYWdBY3Rpb25zLFxuICB1c2VUcmFuc2xhdGlvbkFjdGlvbnMsXG4gIHVzZVVzZXJBY3Rpb25zLFxuICB1c2VXZWJzb2NrZXRBY3Rpb25zXG59IGZyb20gJy4vdXRpbHMvdXNlTWV0cm9wb2xpcy5qcyc7XG5leHBvcnQge3VzZUNvbnZlcnNhdGlvblR5cGluZ30gZnJvbSAnLi91dGlscy91c2VDb252ZXJzYXRpb25UeXBpbmcuanMnO1xuZXhwb3J0IHR5cGUge1xuICBDb252ZXJzYXRpb25UeXBpbmdPcHRpb25zLFxuICBVc2VDb252ZXJzYXRpb25UeXBpbmdPcHRpb25zXG59IGZyb20gJy4vdXRpbHMvdXNlQ29udmVyc2F0aW9uVHlwaW5nLmpzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZVZhbGlkYXRvckZhY3RvcnksXG4gIGNyZWF0ZVZhbGlkYXRvck1hbmFnZXJcbn0gZnJvbSAnLi91dGlscy92YWxpZGF0b3JGYWN0b3J5LmpzJztcblxuZXhwb3J0IHR5cGUge1xuICBBY3Rpb25PcHRpb25zLFxuICBBY3Rpb25SZXR1cm5UeXBlLFxuICBBY3Rpb25UeXBlLFxuICBBY3Rpb25UeXBlc1xufSBmcm9tICcuL3V0aWxzL2FjdGlvbkZhY3RvcnkuanMnO1xuZXhwb3J0IHR5cGUge0Jhc2VBY3Rpb25PcHRpb25zfSBmcm9tICcuL3V0aWxzL2Jhc2VBY3Rpb25GYWN0b3J5LmpzJztcbmV4cG9ydCB0eXBlIHtCYXNlQWRhcHRlck9wdGlvbnN9IGZyb20gJy4vdXRpbHMvdmFsaWRhdG9yRmFjdG9yeS5qcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hcHBBY3Rpb25zL2FwcEFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2F3c1J1bUFjdGlvbnMvYXdzUnVtQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvY29ubmVjdGlvbkFjdGlvbnMvY29ubmVjdGlvbkFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2NvbnZlcnNhdGlvbkFjdGlvbnMvY29udmVyc2F0aW9uQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvY3JtQWN0aW9ucy9jcm1BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9yZXN0QWN0aW9ucy9yZXN0QWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy9Db2xsZWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2luZGV4LmpzJztcbiJdLCJuYW1lcyI6WyJ1c2VGbHV4IiwidXNlRmx1eFN0YXRlIiwiaTE4biIsIkRhdGVUaW1lIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkkxOG5leHRQcm92aWRlciIsInN5bmNQZXJzb25hVGFnc1RvU2Vzc2lvbiIsInN5bmNQZXJzb25hVG9TZXNzaW9uIiwicmVzb2x2ZUVudmlyb25tZW50Q29uZmlnIiwiYXBwIiwiZXZlbnRzIiwiaW1hZ2VzIiwibG9jYXRpb25zIiwibWVzc2FnZXMiLCJub3RpZmljYXRpb25zIiwiTk9USUZJQ0FUSU9OX0NPTlNUQU5UUyIsInBlcm1pc3Npb25zIiwiUEVSU09OQV9DT05TVEFOVFMiLCJwb3N0cyIsInN1YnNjcmlwdGlvbnMiLCJUQUdfQ09OU1RBTlRTIiwidGFncyIsIlVTRVJfQ09OU1RBTlRTIiwidXNlcnMiLCJ2aWRlbyIsIndlYnNvY2tldCIsInJlZnJlc2hTZXNzaW9uIiwiZ2V0Q29uZmlnRnJvbUZsdXgiLCJpbml0STE4biIsIk1ldHJvcG9saXNDb250ZXh0IiwiZ2V0UmVmcmVzaFdpbmRvd01pbnV0ZXMiLCJoeWRyYXRlU2Vzc2lvbkZyb21TdG9yYWdlIiwicGFyc2VKd3RFeHBpcnlNcyIsImNyZWF0ZUFjdGlvbiIsIk1ldHJvcG9saXNQcm92aWRlciIsIkdPVEhBTV9BTkFMWVRJQ1NfRVZFTlQiLCJvbkluaXQiLCJmbHV4IiwiZ2V0U3RhdGUiLCJhZGRTdG9yZXMiLCJvbiIsIlNJR05fT1VUX1NVQ0NFU1MiLCJkaXNwYXRjaCIsInR5cGUiLCJDTEVBUl9JVEVNUyIsIkFERF9JVEVNX1NVQ0NFU1MiLCJwZXJzb25hIiwicGVyc29uYUlkIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiVVBEQVRFX0lURU1fU1VDQ0VTUyIsIkFERF9QRVJTT05BX1NVQ0NFU1MiLCJ0YWciLCJjdXJyZW50U2Vzc2lvbiIsImN1cnJlbnRUYWdzIiwibmV4dFRhZ0lkIiwidGFnSWQiLCJ0cmltIiwibWVyZ2VkVGFncyIsImZpbHRlciIsIml0ZW0iLCJzb3J0IiwibGVmdCIsInJpZ2h0IiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJuZXh0U2Vzc2lvbiIsInNldFN0YXRlIiwiVVBEQVRFX1NFU1NJT05fU1VDQ0VTUyIsInVzZXIiLCJSRU1PVkVfUEVSU09OQV9TVUNDRVNTIiwibmV4dFRhZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRva2VuIiwic2Vzc2lvbiIsImNvbmZpZyIsInRva2VuRXhwaXJlc0F0Iiwic2Vzc2lvbkxpZmV0aW1lTWludXRlcyIsIk1hdGgiLCJyb3VuZCIsIk51bWJlciIsImV4cGlyZXMiLCJpc3N1ZWQiLCJyZWZyZXNoV2luZG93TWludXRlcyIsInJlZnJlc2hFeHBpcmVzTWludXRlcyIsIm1heCIsIm1heE1pbnV0ZXMiLCJleHBpcmVzQXQiLCJEYXRlIiwibm93IiwibWludXRlc1VudGlsRXhwaXJ5IiwiZnJvbU1pbGxpcyIsImRpZmYiLCJsb2NhbCIsInRvT2JqZWN0IiwibWludXRlcyIsImFwcE11dGF0aW9uIiwiYXBwUXVlcnkiLCJwdWJsaWNNdXRhdGlvbiIsInB1YmxpY1F1ZXJ5IiwicnVtTXV0YXRpb24iLCJyZXNvbHZlUmVzdEVuZHBvaW50IiwicmVzdFJlcXVlc3QiLCJ1cGxvYWRJbWFnZSIsIk1ldHJvcG9saXMiLCJhZGFwdGVycyIsImNoaWxkcmVuIiwidHJhbnNsYXRpb25zIiwicmVzb2x2ZWRDb25maWciLCJtZXJnZWRBZGFwdGVycyIsInJ1bU9wdGlvbnMiLCJydW0iLCJhcHBJZCIsInNlc3Npb25QZXJzb25hSWQiLCJzZXNzaW9uVG9rZW4iLCJzZXNzaW9uSHlkcmF0ZWQiLCJCb29sZWFuIiwibm90aWZpY2F0aW9uTGlzdCIsImNvbnZlcnNhdGlvbk1hcCIsIk9iamVjdCIsInZhbHVlcyIsImZsYXQiLCJ3ZWJzb2NrZXRzUmVmIiwiY3VycmVudCIsIndlYnNvY2tldHMiLCJhd3NSdW0iLCJnbG9iYWxUaGlzIiwid2luZG93Iiwib25Hb3RoYW1BbmFseXRpY3MiLCJldmVudCIsImRldGFpbCIsInRyYWNrIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkZXN0cm95IiwiaXNBY3RpdmUiLCJ3c0Nsb3NlIiwid3NJbml0IiwiaXNBdXRoIiwic2Vzc2lvblN0YXRlIiwidXNlckFjdGl2ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1cGRhdGVNZXNzYWdlIiwidXBkYXRlTm90aWZpY2F0aW9uIiwic2VuZE5vdGlmaWNhdGlvbiIsInVzZVRyYW5zbGF0aW9uIiwiY3JlYXRlQWN0aW9ucyIsImNyZWF0ZUFsbEFjdGlvbnMiLCJjcmVhdGVCYXNlQWN0aW9ucyIsInVzZUNvbnRlbnRBY3Rpb25zIiwidXNlQXdzUnVtIiwidXNlQ3JtQWN0aW9ucyIsInVzZUV2ZW50QWN0aW9ucyIsInVzZUdyb3VwQWN0aW9ucyIsInVzZUltYWdlQWN0aW9ucyIsInVzZUxvY2F0aW9uQWN0aW9ucyIsInVzZU1lc3NhZ2VBY3Rpb25zIiwidXNlTWV0cm9wb2xpcyIsInVzZU1ldHJvcG9saXNDb25maWciLCJ1c2VNZXRyb3BvbGlzRmx1eCIsInVzZVBvc3RBY3Rpb25zIiwidXNlUGVyc29uYUFjdGlvbnMiLCJ1c2VSZWFjdGlvbkFjdGlvbnMiLCJ1c2VSZXN0QWN0aW9ucyIsInVzZVRhZ0FjdGlvbnMiLCJ1c2VUcmFuc2xhdGlvbkFjdGlvbnMiLCJ1c2VVc2VyQWN0aW9ucyIsInVzZVdlYnNvY2tldEFjdGlvbnMiLCJ1c2VDb252ZXJzYXRpb25UeXBpbmciLCJjcmVhdGVWYWxpZGF0b3JGYWN0b3J5IiwiY3JlYXRlVmFsaWRhdG9yTWFuYWdlciJdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLE9BQU8sRUFBRUMsWUFBWSxRQUFPLDhCQUE4QjtBQUNsRSxPQUFPQyxVQUFVLFVBQVU7QUFDM0IsU0FBUUMsUUFBUSxRQUFPLFFBQVE7QUFDL0IsU0FBUUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBTyxRQUFRO0FBQ2pELFNBQVFDLGVBQWUsUUFBTyxnQkFBZ0I7QUFJOUMsU0FBUUMsd0JBQXdCLEVBQUVDLG9CQUFvQixRQUFPLDZDQUE2QztBQUMxRyxTQUFRQyx3QkFBd0IsUUFBTyxvQkFBb0I7QUFDM0QsU0FDRUMsR0FBRyxFQUNIQyxNQUFNLEVBQ05DLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxRQUFRLEVBQ1JDLGFBQWEsRUFDYkMsc0JBQXNCLEVBQ3RCQyxXQUFXLEVBQ1hDLGlCQUFpQixFQUNqQkMsS0FBSyxFQUNMQyxhQUFhLEVBQ2JDLGFBQWEsRUFDYkMsSUFBSSxFQUNKQyxjQUFj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
|
package/lib/stores/appStore.d.ts
CHANGED
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/
|
|
5
5
|
export declare const APP_CONSTANTS: {
|
|
6
|
-
readonly ADD_ITEM_ERROR:
|
|
7
|
-
readonly ADD_ITEM_SUCCESS:
|
|
8
|
-
readonly API_NETWORK_ERROR:
|
|
9
|
-
readonly API_NETWORK_SUCCESS:
|
|
10
|
-
readonly GET_ITEM_ERROR:
|
|
11
|
-
readonly GET_ITEM_SUCCESS:
|
|
12
|
-
readonly GET_LIST_ERROR:
|
|
13
|
-
readonly GET_LIST_SUCCESS:
|
|
14
|
-
readonly REMOVE_ITEM_ERROR:
|
|
15
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
16
|
-
readonly UPDATE_ITEM_ERROR:
|
|
17
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
6
|
+
readonly ADD_ITEM_ERROR: 'APP_ADD_ITEM_ERROR';
|
|
7
|
+
readonly ADD_ITEM_SUCCESS: 'APP_ADD_ITEM_SUCCESS';
|
|
8
|
+
readonly API_NETWORK_ERROR: 'APP_API_NETWORK_ERROR';
|
|
9
|
+
readonly API_NETWORK_SUCCESS: 'APP_API_NETWORK_SUCCESS';
|
|
10
|
+
readonly GET_ITEM_ERROR: 'APP_GET_ITEM_ERROR';
|
|
11
|
+
readonly GET_ITEM_SUCCESS: 'APP_GET_ITEM_SUCCESS';
|
|
12
|
+
readonly GET_LIST_ERROR: 'APP_GET_LIST_ERROR';
|
|
13
|
+
readonly GET_LIST_SUCCESS: 'APP_GET_LIST_SUCCESS';
|
|
14
|
+
readonly REMOVE_ITEM_ERROR: 'APP_REMOVE_ITEM_ERROR';
|
|
15
|
+
readonly REMOVE_ITEM_SUCCESS: 'APP_REMOVE_ITEM_SUCCESS';
|
|
16
|
+
readonly UPDATE_ITEM_ERROR: 'APP_UPDATE_ITEM_ERROR';
|
|
17
|
+
readonly UPDATE_ITEM_SUCCESS: 'APP_UPDATE_ITEM_SUCCESS';
|
|
18
18
|
};
|
|
19
19
|
interface AppState {
|
|
20
20
|
network?: {
|
|
@@ -25,9 +25,8 @@ interface AppState {
|
|
|
25
25
|
export declare const defaultValues: AppState;
|
|
26
26
|
export declare const appStore: (type: string, data: Partial<AppState>, state?: AppState) => AppState;
|
|
27
27
|
export declare const app: {
|
|
28
|
-
action:
|
|
28
|
+
action: typeof appStore;
|
|
29
29
|
initialState: AppState;
|
|
30
30
|
name: string;
|
|
31
31
|
};
|
|
32
32
|
export {};
|
|
33
|
-
//# sourceMappingURL=appStore.d.ts.map
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { ContentType } from '../adapters/contentAdapter/contentAdapter.js';
|
|
6
6
|
export declare const CONTENT_CONSTANTS: {
|
|
7
|
-
readonly ADD_ITEM_ERROR:
|
|
8
|
-
readonly ADD_ITEM_SUCCESS:
|
|
9
|
-
readonly GET_ITEM_ERROR:
|
|
10
|
-
readonly GET_ITEM_SUCCESS:
|
|
11
|
-
readonly GET_LIST_ERROR:
|
|
12
|
-
readonly GET_LIST_SUCCESS:
|
|
13
|
-
readonly REMOVE_ITEM_ERROR:
|
|
14
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
15
|
-
readonly UPDATE_ITEM_ERROR:
|
|
16
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
7
|
+
readonly ADD_ITEM_ERROR: 'CONTENT_ADD_ITEM_ERROR';
|
|
8
|
+
readonly ADD_ITEM_SUCCESS: 'CONTENT_ADD_ITEM_SUCCESS';
|
|
9
|
+
readonly GET_ITEM_ERROR: 'CONTENT_GET_ITEM_ERROR';
|
|
10
|
+
readonly GET_ITEM_SUCCESS: 'CONTENT_GET_ITEM_SUCCESS';
|
|
11
|
+
readonly GET_LIST_ERROR: 'CONTENT_GET_LIST_ERROR';
|
|
12
|
+
readonly GET_LIST_SUCCESS: 'CONTENT_GET_LIST_SUCCESS';
|
|
13
|
+
readonly REMOVE_ITEM_ERROR: 'CONTENT_REMOVE_ITEM_ERROR';
|
|
14
|
+
readonly REMOVE_ITEM_SUCCESS: 'CONTENT_REMOVE_ITEM_SUCCESS';
|
|
15
|
+
readonly UPDATE_ITEM_ERROR: 'CONTENT_UPDATE_ITEM_ERROR';
|
|
16
|
+
readonly UPDATE_ITEM_SUCCESS: 'CONTENT_UPDATE_ITEM_SUCCESS';
|
|
17
17
|
};
|
|
18
18
|
export type ContentConstantsType = typeof CONTENT_CONSTANTS[keyof typeof CONTENT_CONSTANTS];
|
|
19
19
|
interface ContentState {
|
|
@@ -28,9 +28,8 @@ interface ContentData {
|
|
|
28
28
|
}
|
|
29
29
|
export declare const contentStore: (type: string, data: ContentData, state?: ContentState) => ContentState;
|
|
30
30
|
export declare const contents: {
|
|
31
|
-
action:
|
|
31
|
+
action: typeof contentStore;
|
|
32
32
|
initialState: ContentState;
|
|
33
33
|
name: string;
|
|
34
34
|
};
|
|
35
35
|
export {};
|
|
36
|
-
//# sourceMappingURL=contentStore.d.ts.map
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/
|
|
5
5
|
export declare const CONVERSATION_CONSTANTS: {
|
|
6
|
-
readonly ADD_ITEM_ERROR:
|
|
7
|
-
readonly ADD_ITEM_SUCCESS:
|
|
8
|
-
readonly GET_ITEM_ERROR:
|
|
9
|
-
readonly GET_ITEM_SUCCESS:
|
|
10
|
-
readonly GET_LIST_ERROR:
|
|
11
|
-
readonly GET_LIST_SUCCESS:
|
|
12
|
-
readonly REMOVE_ITEM_ERROR:
|
|
13
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
14
|
-
readonly UPDATE_ITEM_ERROR:
|
|
15
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
6
|
+
readonly ADD_ITEM_ERROR: 'CONVERSATION_ADD_ITEM_ERROR';
|
|
7
|
+
readonly ADD_ITEM_SUCCESS: 'CONVERSATION_ADD_ITEM_SUCCESS';
|
|
8
|
+
readonly GET_ITEM_ERROR: 'CONVERSATION_GET_ITEM_ERROR';
|
|
9
|
+
readonly GET_ITEM_SUCCESS: 'CONVERSATION_GET_ITEM_SUCCESS';
|
|
10
|
+
readonly GET_LIST_ERROR: 'CONVERSATION_GET_LIST_ERROR';
|
|
11
|
+
readonly GET_LIST_SUCCESS: 'CONVERSATION_GET_LIST_SUCCESS';
|
|
12
|
+
readonly REMOVE_ITEM_ERROR: 'CONVERSATION_REMOVE_ITEM_ERROR';
|
|
13
|
+
readonly REMOVE_ITEM_SUCCESS: 'CONVERSATION_REMOVE_ITEM_SUCCESS';
|
|
14
|
+
readonly UPDATE_ITEM_ERROR: 'CONVERSATION_UPDATE_ITEM_ERROR';
|
|
15
|
+
readonly UPDATE_ITEM_SUCCESS: 'CONVERSATION_UPDATE_ITEM_SUCCESS';
|
|
16
16
|
};
|
|
17
17
|
export type ConversationConstantsType = typeof CONVERSATION_CONSTANTS[keyof typeof CONVERSATION_CONSTANTS];
|
|
18
18
|
interface ConversationState {
|
|
@@ -30,9 +30,8 @@ interface ConversationData {
|
|
|
30
30
|
}
|
|
31
31
|
export declare const conversationStore: (type: string, data: ConversationData, state?: ConversationState) => ConversationState;
|
|
32
32
|
export declare const conversation: {
|
|
33
|
-
action:
|
|
33
|
+
action: typeof conversationStore;
|
|
34
34
|
initialState: ConversationState;
|
|
35
35
|
name: string;
|
|
36
36
|
};
|
|
37
37
|
export {};
|
|
38
|
-
//# sourceMappingURL=conversationStore.d.ts.map
|
|
@@ -4,18 +4,18 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { EventType } from '../adapters/eventAdapter/eventAdapter.js';
|
|
6
6
|
export declare const EVENT_CONSTANTS: {
|
|
7
|
-
readonly ADD_ITEM_ERROR:
|
|
8
|
-
readonly ADD_ITEM_SUCCESS:
|
|
9
|
-
readonly GET_ITEM_ERROR:
|
|
10
|
-
readonly GET_ITEM_SUCCESS:
|
|
11
|
-
readonly GET_LIST_ERROR:
|
|
12
|
-
readonly GET_LIST_SUCCESS:
|
|
13
|
-
readonly REMOVE_ITEM_ERROR:
|
|
14
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
15
|
-
readonly RSVP_ITEM_ERROR:
|
|
16
|
-
readonly RSVP_ITEM_SUCCESS:
|
|
17
|
-
readonly UPDATE_ITEM_ERROR:
|
|
18
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
7
|
+
readonly ADD_ITEM_ERROR: 'EVENT_ADD_ITEM_ERROR';
|
|
8
|
+
readonly ADD_ITEM_SUCCESS: 'EVENT_ADD_ITEM_SUCCESS';
|
|
9
|
+
readonly GET_ITEM_ERROR: 'EVENT_GET_ITEM_ERROR';
|
|
10
|
+
readonly GET_ITEM_SUCCESS: 'EVENT_GET_ITEM_SUCCESS';
|
|
11
|
+
readonly GET_LIST_ERROR: 'EVENT_GET_LIST_ERROR';
|
|
12
|
+
readonly GET_LIST_SUCCESS: 'EVENT_GET_LIST_SUCCESS';
|
|
13
|
+
readonly REMOVE_ITEM_ERROR: 'EVENT_REMOVE_ITEM_ERROR';
|
|
14
|
+
readonly REMOVE_ITEM_SUCCESS: 'EVENT_REMOVE_ITEM_SUCCESS';
|
|
15
|
+
readonly RSVP_ITEM_ERROR: 'EVENT_RSVP_ITEM_ERROR';
|
|
16
|
+
readonly RSVP_ITEM_SUCCESS: 'EVENT_RSVP_ITEM_SUCCESS';
|
|
17
|
+
readonly UPDATE_ITEM_ERROR: 'EVENT_UPDATE_ITEM_ERROR';
|
|
18
|
+
readonly UPDATE_ITEM_SUCCESS: 'EVENT_UPDATE_ITEM_SUCCESS';
|
|
19
19
|
};
|
|
20
20
|
interface EventState {
|
|
21
21
|
lists: Record<string, Record<string, unknown>[]>;
|
|
@@ -26,12 +26,8 @@ export declare const eventStore: (type: string, data: {
|
|
|
26
26
|
type?: string;
|
|
27
27
|
}, state?: EventState) => EventState;
|
|
28
28
|
export declare const events: {
|
|
29
|
-
action:
|
|
30
|
-
list?: EventType[];
|
|
31
|
-
type?: string;
|
|
32
|
-
}, state?: EventState) => EventState;
|
|
29
|
+
action: typeof eventStore;
|
|
33
30
|
initialState: EventState;
|
|
34
31
|
name: string;
|
|
35
32
|
};
|
|
36
33
|
export {};
|
|
37
|
-
//# sourceMappingURL=eventStore.d.ts.map
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { GroupType } from '../types/groups.types.js';
|
|
6
6
|
export declare const GROUP_CONSTANTS: {
|
|
7
|
-
readonly ADD_ITEM_ERROR:
|
|
8
|
-
readonly ADD_ITEM_SUCCESS:
|
|
9
|
-
readonly GET_ITEM_ERROR:
|
|
10
|
-
readonly GET_ITEM_SUCCESS:
|
|
11
|
-
readonly GET_LIST_ERROR:
|
|
12
|
-
readonly GET_LIST_SUCCESS:
|
|
13
|
-
readonly REMOVE_ITEM_ERROR:
|
|
14
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
15
|
-
readonly UPDATE_ITEM_ERROR:
|
|
16
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
7
|
+
readonly ADD_ITEM_ERROR: 'GROUP_ADD_ITEM_ERROR';
|
|
8
|
+
readonly ADD_ITEM_SUCCESS: 'GROUP_ADD_ITEM_SUCCESS';
|
|
9
|
+
readonly GET_ITEM_ERROR: 'GROUP_GET_ITEM_ERROR';
|
|
10
|
+
readonly GET_ITEM_SUCCESS: 'GROUP_GET_ITEM_SUCCESS';
|
|
11
|
+
readonly GET_LIST_ERROR: 'GROUP_GET_LIST_ERROR';
|
|
12
|
+
readonly GET_LIST_SUCCESS: 'GROUP_GET_LIST_SUCCESS';
|
|
13
|
+
readonly REMOVE_ITEM_ERROR: 'GROUP_REMOVE_ITEM_ERROR';
|
|
14
|
+
readonly REMOVE_ITEM_SUCCESS: 'GROUP_REMOVE_ITEM_SUCCESS';
|
|
15
|
+
readonly UPDATE_ITEM_ERROR: 'GROUP_UPDATE_ITEM_ERROR';
|
|
16
|
+
readonly UPDATE_ITEM_SUCCESS: 'GROUP_UPDATE_ITEM_SUCCESS';
|
|
17
17
|
};
|
|
18
18
|
export type GroupConstantsType = typeof GROUP_CONSTANTS[keyof typeof GROUP_CONSTANTS];
|
|
19
19
|
interface GroupState {
|
|
@@ -26,12 +26,8 @@ export declare const groupStore: (type: string, data: {
|
|
|
26
26
|
list?: GroupType[];
|
|
27
27
|
}, state?: GroupState) => GroupState;
|
|
28
28
|
export declare const groups: {
|
|
29
|
-
action:
|
|
30
|
-
group?: GroupType;
|
|
31
|
-
list?: GroupType[];
|
|
32
|
-
}, state?: GroupState) => GroupState;
|
|
29
|
+
action: typeof groupStore;
|
|
33
30
|
initialState: GroupState;
|
|
34
31
|
name: string;
|
|
35
32
|
};
|
|
36
33
|
export {};
|
|
37
|
-
//# sourceMappingURL=groupStore.d.ts.map
|
|
@@ -4,21 +4,21 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { ImageType } from '../adapters/imageAdapter/imageAdapter.js';
|
|
6
6
|
export declare const IMAGE_CONSTANTS: {
|
|
7
|
-
readonly ADD_ITEM_ERROR:
|
|
8
|
-
readonly ADD_ITEM_SUCCESS:
|
|
9
|
-
readonly GET_COUNT_ERROR:
|
|
10
|
-
readonly GET_COUNT_SUCCESS:
|
|
11
|
-
readonly GET_ITEM_ERROR:
|
|
12
|
-
readonly GET_ITEM_SUCCESS:
|
|
13
|
-
readonly GET_LIST_ERROR:
|
|
14
|
-
readonly GET_LIST_SUCCESS:
|
|
15
|
-
readonly OPEN:
|
|
16
|
-
readonly REMOVE_ITEM_ERROR:
|
|
17
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
18
|
-
readonly UPDATE_ITEM_ERROR:
|
|
19
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
20
|
-
readonly UPLOAD_ITEM_ERROR:
|
|
21
|
-
readonly UPLOAD_ITEM_SUCCESS:
|
|
7
|
+
readonly ADD_ITEM_ERROR: 'IMAGE_ADD_ITEM_ERROR';
|
|
8
|
+
readonly ADD_ITEM_SUCCESS: 'IMAGE_ADD_ITEM_SUCCESS';
|
|
9
|
+
readonly GET_COUNT_ERROR: 'IMAGE_GET_COUNT_ERROR';
|
|
10
|
+
readonly GET_COUNT_SUCCESS: 'IMAGE_GET_COUNT_SUCCESS';
|
|
11
|
+
readonly GET_ITEM_ERROR: 'IMAGE_GET_ITEM_ERROR';
|
|
12
|
+
readonly GET_ITEM_SUCCESS: 'IMAGE_GET_ITEM_SUCCESS';
|
|
13
|
+
readonly GET_LIST_ERROR: 'IMAGE_GET_LIST_ERROR';
|
|
14
|
+
readonly GET_LIST_SUCCESS: 'IMAGE_GET_LIST_SUCCESS';
|
|
15
|
+
readonly OPEN: 'IMAGE_OPEN';
|
|
16
|
+
readonly REMOVE_ITEM_ERROR: 'IMAGE_REMOVE_ITEM_ERROR';
|
|
17
|
+
readonly REMOVE_ITEM_SUCCESS: 'IMAGE_REMOVE_ITEM_SUCCESS';
|
|
18
|
+
readonly UPDATE_ITEM_ERROR: 'IMAGE_UPDATE_ITEM_ERROR';
|
|
19
|
+
readonly UPDATE_ITEM_SUCCESS: 'IMAGE_UPDATE_ITEM_SUCCESS';
|
|
20
|
+
readonly UPLOAD_ITEM_ERROR: 'IMAGE_UPLOAD_ITEM_ERROR';
|
|
21
|
+
readonly UPLOAD_ITEM_SUCCESS: 'IMAGE_UPLOAD_ITEM_SUCCESS';
|
|
22
22
|
};
|
|
23
23
|
interface ImageState {
|
|
24
24
|
lists: Record<string, ImageType[]>;
|
|
@@ -29,12 +29,8 @@ export declare const imageStore: (type: string, data: {
|
|
|
29
29
|
itemId?: string;
|
|
30
30
|
}, state?: ImageState) => ImageState;
|
|
31
31
|
export declare const images: {
|
|
32
|
-
action:
|
|
33
|
-
list?: ImageType[];
|
|
34
|
-
itemId?: string;
|
|
35
|
-
}, state?: ImageState) => ImageState;
|
|
32
|
+
action: typeof imageStore;
|
|
36
33
|
initialState: ImageState;
|
|
37
34
|
name: string;
|
|
38
35
|
};
|
|
39
36
|
export {};
|
|
40
|
-
//# sourceMappingURL=imageStore.d.ts.map
|
package/lib/stores/index.d.ts
CHANGED
|
@@ -21,4 +21,3 @@ export { TRANSLATION_CONSTANTS, translations } from './translationStore.js';
|
|
|
21
21
|
export { USER_CONSTANTS, users } from './userStore.js';
|
|
22
22
|
export { video, VIDEO_CONSTANTS } from './videoStore.js';
|
|
23
23
|
export { websocket, WEBSOCKET_CONSTANTS } from './websocketStore.js';
|
|
24
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -4,17 +4,17 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { LocationType } from '../adapters/locationAdapter/locationAdapter.js';
|
|
6
6
|
export declare const LOCATION_CONSTANTS: {
|
|
7
|
-
readonly ADD_ITEM_ERROR:
|
|
8
|
-
readonly ADD_ITEM_SUCCESS:
|
|
9
|
-
readonly GET_ITEM_ERROR:
|
|
10
|
-
readonly GET_ITEM_SUCCESS:
|
|
11
|
-
readonly GET_LIST_ERROR:
|
|
12
|
-
readonly GET_LIST_SUCCESS:
|
|
13
|
-
readonly REMOVE_ITEM_ERROR:
|
|
14
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
15
|
-
readonly SET_CURRENT:
|
|
16
|
-
readonly UPDATE_ITEM_ERROR:
|
|
17
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
7
|
+
readonly ADD_ITEM_ERROR: 'LOCATION_ADD_ITEM_ERROR';
|
|
8
|
+
readonly ADD_ITEM_SUCCESS: 'LOCATION_ADD_ITEM_SUCCESS';
|
|
9
|
+
readonly GET_ITEM_ERROR: 'LOCATION_GET_ITEM_ERROR';
|
|
10
|
+
readonly GET_ITEM_SUCCESS: 'LOCATION_GET_ITEM_SUCCESS';
|
|
11
|
+
readonly GET_LIST_ERROR: 'LOCATION_GET_LIST_ERROR';
|
|
12
|
+
readonly GET_LIST_SUCCESS: 'LOCATION_GET_LIST_SUCCESS';
|
|
13
|
+
readonly REMOVE_ITEM_ERROR: 'LOCATION_REMOVE_ITEM_ERROR';
|
|
14
|
+
readonly REMOVE_ITEM_SUCCESS: 'LOCATION_REMOVE_ITEM_SUCCESS';
|
|
15
|
+
readonly SET_CURRENT: 'LOCATION_SET_CURRENT';
|
|
16
|
+
readonly UPDATE_ITEM_ERROR: 'LOCATION_UPDATE_ITEM_ERROR';
|
|
17
|
+
readonly UPDATE_ITEM_SUCCESS: 'LOCATION_UPDATE_ITEM_SUCCESS';
|
|
18
18
|
};
|
|
19
19
|
interface LocationState {
|
|
20
20
|
current: LocationType | null;
|
|
@@ -24,11 +24,8 @@ export declare const locationStore: (type: string, data: {
|
|
|
24
24
|
current?: LocationType;
|
|
25
25
|
}, state?: LocationState) => LocationState;
|
|
26
26
|
export declare const locations: {
|
|
27
|
-
action:
|
|
28
|
-
current?: LocationType;
|
|
29
|
-
}, state?: LocationState) => LocationState;
|
|
27
|
+
action: typeof locationStore;
|
|
30
28
|
initialState: LocationState;
|
|
31
29
|
name: string;
|
|
32
30
|
};
|
|
33
31
|
export {};
|
|
34
|
-
//# sourceMappingURL=locationStore.d.ts.map
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { MessageType } from '../adapters/messageAdapter/messageAdapter.js';
|
|
6
6
|
export declare const MESSAGE_CONSTANTS: {
|
|
7
|
-
readonly ADD_ITEM_ERROR:
|
|
8
|
-
readonly ADD_ITEM_SUCCESS:
|
|
9
|
-
readonly GET_CONVO_LIST_ERROR:
|
|
10
|
-
readonly GET_CONVO_LIST_SUCCESS:
|
|
11
|
-
readonly GET_ITEM_ERROR:
|
|
12
|
-
readonly GET_ITEM_SUCCESS:
|
|
13
|
-
readonly GET_LIST_ERROR:
|
|
14
|
-
readonly GET_LIST_SUCCESS:
|
|
15
|
-
readonly REMOVE_ITEM_ERROR:
|
|
16
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
17
|
-
readonly TYPING_STATUS_UPDATE:
|
|
18
|
-
readonly UPDATE_ITEM_ERROR:
|
|
19
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
7
|
+
readonly ADD_ITEM_ERROR: 'MESSAGE_ADD_ITEM_ERROR';
|
|
8
|
+
readonly ADD_ITEM_SUCCESS: 'MESSAGE_ADD_ITEM_SUCCESS';
|
|
9
|
+
readonly GET_CONVO_LIST_ERROR: 'MESSAGE_GET_CONVO_LIST_ERROR';
|
|
10
|
+
readonly GET_CONVO_LIST_SUCCESS: 'MESSAGE_GET_CONVO_LIST_SUCCESS';
|
|
11
|
+
readonly GET_ITEM_ERROR: 'MESSAGE_GET_ITEM_ERROR';
|
|
12
|
+
readonly GET_ITEM_SUCCESS: 'MESSAGE_GET_ITEM_SUCCESS';
|
|
13
|
+
readonly GET_LIST_ERROR: 'MESSAGE_GET_LIST_ERROR';
|
|
14
|
+
readonly GET_LIST_SUCCESS: 'MESSAGE_GET_LIST_SUCCESS';
|
|
15
|
+
readonly REMOVE_ITEM_ERROR: 'MESSAGE_REMOVE_ITEM_ERROR';
|
|
16
|
+
readonly REMOVE_ITEM_SUCCESS: 'MESSAGE_REMOVE_ITEM_SUCCESS';
|
|
17
|
+
readonly TYPING_STATUS_UPDATE: 'MESSAGE_TYPING_STATUS_UPDATE';
|
|
18
|
+
readonly UPDATE_ITEM_ERROR: 'MESSAGE_UPDATE_ITEM_ERROR';
|
|
19
|
+
readonly UPDATE_ITEM_SUCCESS: 'MESSAGE_UPDATE_ITEM_SUCCESS';
|
|
20
20
|
};
|
|
21
21
|
export interface MessageTypingStatus {
|
|
22
22
|
readonly conversationId?: string;
|
|
@@ -39,13 +39,7 @@ export declare const messageStore: (type: string, data: {
|
|
|
39
39
|
typing?: MessageTypingStatus;
|
|
40
40
|
}, state?: MessageState) => MessageState;
|
|
41
41
|
export declare const messages: {
|
|
42
|
-
action:
|
|
43
|
-
message?: MessageType;
|
|
44
|
-
list?: MessageType[];
|
|
45
|
-
conversationId?: string;
|
|
46
|
-
typing?: MessageTypingStatus;
|
|
47
|
-
}, state?: MessageState) => MessageState;
|
|
42
|
+
action: typeof messageStore;
|
|
48
43
|
initialState: MessageState;
|
|
49
44
|
name: string;
|
|
50
45
|
};
|
|
51
|
-
//# sourceMappingURL=messageStore.d.ts.map
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/
|
|
5
5
|
export declare const NOTIFICATION_CONSTANTS: {
|
|
6
|
-
readonly ADD_ITEM_SUCCESS:
|
|
7
|
-
readonly CLEAR_ITEMS:
|
|
6
|
+
readonly ADD_ITEM_SUCCESS: 'NOTIFICATION_ADD_ITEM_SUCCESS';
|
|
7
|
+
readonly CLEAR_ITEMS: 'NOTIFICATION_CLEAR_ITEMS';
|
|
8
8
|
};
|
|
9
9
|
export type NotificationType = Record<string, unknown> & {
|
|
10
10
|
readonly added?: number;
|
|
@@ -24,10 +24,7 @@ export declare const notificationStore: (type: string, data: {
|
|
|
24
24
|
notification?: NotificationType;
|
|
25
25
|
}, state?: NotificationState) => NotificationState;
|
|
26
26
|
export declare const notifications: {
|
|
27
|
-
action:
|
|
28
|
-
notification?: NotificationType;
|
|
29
|
-
}, state?: NotificationState) => NotificationState;
|
|
27
|
+
action: typeof notificationStore;
|
|
30
28
|
initialState: NotificationState;
|
|
31
29
|
name: string;
|
|
32
30
|
};
|
|
33
|
-
//# sourceMappingURL=notificationStore.d.ts.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { Permission } from '../adapters/permissionAdapter/permissionAdapter.js';
|
|
2
2
|
export declare const PERMISSION_CONSTANTS: {
|
|
3
|
-
readonly ADD_ITEM_ERROR:
|
|
4
|
-
readonly ADD_ITEM_SUCCESS:
|
|
5
|
-
readonly CHECK_PERMISSION_ERROR:
|
|
6
|
-
readonly CHECK_PERMISSION_SUCCESS:
|
|
7
|
-
readonly GET_ITEM_ERROR:
|
|
8
|
-
readonly GET_ITEM_SUCCESS:
|
|
9
|
-
readonly GET_LIST_ERROR:
|
|
10
|
-
readonly GET_LIST_SUCCESS:
|
|
11
|
-
readonly REMOVE_ITEM_ERROR:
|
|
12
|
-
readonly REMOVE_ITEM_SUCCESS:
|
|
13
|
-
readonly UPDATE_ITEM_ERROR:
|
|
14
|
-
readonly UPDATE_ITEM_SUCCESS:
|
|
3
|
+
readonly ADD_ITEM_ERROR: 'PERMISSION_ADD_ITEM_ERROR';
|
|
4
|
+
readonly ADD_ITEM_SUCCESS: 'PERMISSION_ADD_ITEM_SUCCESS';
|
|
5
|
+
readonly CHECK_PERMISSION_ERROR: 'PERMISSION_CHECK_PERMISSION_ERROR';
|
|
6
|
+
readonly CHECK_PERMISSION_SUCCESS: 'PERMISSION_CHECK_PERMISSION_SUCCESS';
|
|
7
|
+
readonly GET_ITEM_ERROR: 'PERMISSION_GET_ITEM_ERROR';
|
|
8
|
+
readonly GET_ITEM_SUCCESS: 'PERMISSION_GET_ITEM_SUCCESS';
|
|
9
|
+
readonly GET_LIST_ERROR: 'PERMISSION_GET_LIST_ERROR';
|
|
10
|
+
readonly GET_LIST_SUCCESS: 'PERMISSION_GET_LIST_SUCCESS';
|
|
11
|
+
readonly REMOVE_ITEM_ERROR: 'PERMISSION_REMOVE_ITEM_ERROR';
|
|
12
|
+
readonly REMOVE_ITEM_SUCCESS: 'PERMISSION_REMOVE_ITEM_SUCCESS';
|
|
13
|
+
readonly UPDATE_ITEM_ERROR: 'PERMISSION_UPDATE_ITEM_ERROR';
|
|
14
|
+
readonly UPDATE_ITEM_SUCCESS: 'PERMISSION_UPDATE_ITEM_SUCCESS';
|
|
15
15
|
};
|
|
16
16
|
export type PermissionConstantsType = typeof PERMISSION_CONSTANTS[keyof typeof PERMISSION_CONSTANTS];
|
|
17
17
|
interface PermissionState {
|
|
@@ -29,9 +29,8 @@ interface PermissionData {
|
|
|
29
29
|
}
|
|
30
30
|
export declare const permissionStore: (type: string, data: PermissionData, state?: PermissionState) => PermissionState;
|
|
31
31
|
export declare const permissions: {
|
|
32
|
-
action:
|
|
32
|
+
action: typeof permissionStore;
|
|
33
33
|
initialState: PermissionState;
|
|
34
34
|
name: string;
|
|
35
35
|
};
|
|
36
36
|
export {};
|
|
37
|
-
//# sourceMappingURL=permissionStore.d.ts.map
|
|
@@ -19,8 +19,7 @@ export interface PersonaState {
|
|
|
19
19
|
export declare const initialPersonaState: PersonaState;
|
|
20
20
|
export declare const personaStore: (state?: PersonaState, action?: {}, _next?: {}) => PersonaState;
|
|
21
21
|
export declare const personas: {
|
|
22
|
-
action:
|
|
22
|
+
action: typeof personaStore;
|
|
23
23
|
initialState: PersonaState;
|
|
24
24
|
name: string;
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=personaStore.d.ts.map
|